Trä Gear Clock med Stepper Motor Drive (17 / 19 steg)
Steg 17: Elektronik för nya stegmotor
Elektroniska ingredienserna är följande:
- Arduino Uno R3, faktiskt en DCcduino Uno, ~ $6
- Adafruit stegmotor NEMA 17-200 steg/varv - 12V 350mA, $14
- Adafruit Motor/Stepper/Servo sköld v2 Kit - v2.3, $20
- Plug-in strömförsörjning 7.5VDC 400 ma oreglerad, $5
- ChronoDot Real rimfrost klocka - v.1 (Adafruit), $18
- Amerikanska 0,96" I2C IIC seriell 128 X 64 LED OLED LCD uppvisning modul för Arduino vit (Amazon), $14
- 9 mini tryckknappar (eBay), $1
- 1k Potentiometer
- Piezo Speaker
- Plast-projektet Box 6 x 4 x 2,5 inches (MPJA), $5
Sammanfattning av Arduino skiss funktioner:
Den första delen av skiss definierar många globala variabler och definierar strukturer för RTC klockan, stepper föraren, OLED-skärm.
RTC klockan, stepper sköld och OLED skärm all användning I2C för kommunikation. Det innebär att endast fyra sladdar behövs för att var och en av dessa delar.
Användaren kan styra flera driftslägen med 9 tryckknappar.
När skissen startar och om den är ansluten till en dator USB-port, synkroniserar det RTC klockan med datorklocka. Det bör vara klart, att det är vettigt att först kontrollera att datorklocka är anpassad till en tid sever som NIST. När klockan är inställd, måste den tillhörande koden inaktiveras så skissen kan köra frånkopplad från datorn.
Därefter träder skissa en kodavsnittet i slingan används för att registrera de faktiska hand positionerna. Den mekaniska klockan körs inte vid denna tid. Det kommer aldrig köra av sig själv efter en start (kan orsakas av ett strömavbrott). En tryckknapp som används för att placera typ av en markör på OLED display under en timme, minut eller sekund. En annan knapp avancerar värdet för timme, minut och sekund som läst från faktiska hand positioner.
För att slippa slå "advance" knappen massor av gånger, jag brukar slå den andra handen manuellt till klockan 12 position eller hålla vrida den tills jag får ett litet värde för minuten.
När siffrorna är inställda, en tredje knapp (märkt 'Gå') avslutas den del av koden och utför engångs synkroniseringen av händerna till RTC klockan
Detta görs genom att beräkna antalet steg mekaniska klockan måste vara avancerat eller efterbliven och kör motorn i en snabb (och bullriga) läge för steg som krävs. Observera att detta kan ta flera minuter att göra justeringen inte helt korrekt. Hur som helst, den totala träningstiden för justeringen mäts och en andra justeringen. Igen, genomförandetid mäts och en tredje justering som körs. Med andra ord, tar den slutliga justeringen hänsyn till att det tar tid att göra saker.
Efter detta stadium, kommer klocka händer att synkroniseras med RTC klockan.
RTC klockan, kan samtidigt som det förmodligen är korrekt att inom en minut per år, så småningom drift. 2 Tryck-knappar används för att avancera eller fördröja RTC klockan en timme (förmodligen bara användas när vi ändrar från standard till sommartid tid eller vice versa. 2 mer knappar gör detsamma för minuten. 2 knappar för sekunder beter sig olika. Uppsättningar en sekunder till noll för aktuell minut, andra anger sekunder till noll men avancerar i minuten. Det borde vara uppenbart att mekaniska händerna kan också behöva återställas. Därför efter RTC klockan var ändras, bör en stanna klockan av cykling makt och går om installationen igen.
Den normala kör avsnitt av slingan skickar ett antal steg en gång per sekund till för den andra axeln 6 grader. Två foto vakuumbrytarna, en ser på en enda hål i skaftet encoder disk, den andra söker 60 hål, utlösa två avbrott. Dessa antingen återställa "position räkna" till noll eller avancera räkningen varje sekund. Detta kallas en inkrementell axel kodare.
En en minut, på 30-andra varumärket, det värde som erhölls från axeln kodaren är jämfört med RTC klockan och motorn är långsammare eller påskyndas bara för denna andra. Detta hand tar om några mindre felaktigheter av engångs synkroniseringen som kan bero på ett fel som du spelade in hand positioner. Vara medveten om, att den slutliga justeringen endast kan ta hand om den andra handen.
Skulle det vara möjligt att göra sig av med ganska inblandade installation och justering förfaranden? svaret är ja. Anta att vi utrustat alla tre skaft för sekund, minut och timme med absoluta axel pulsgivare (inte stegvis). Vänligen inse att detta en helt annan design från en upp här. Sådan axel kodare behöver 6 bitar varje sekund och minut och 4 bitar för timmen. Enkel foto vakuumbrytarna kunde inte användas. Man skulle behöva mer komplexa optisk eller magnetiska system med totalt 16 kanaler. Eftersom den Arduino Uno inte har som många matas in stift, måste man använda en Arduino Mega eller förbehandla encoder signalerna med, till exempel digital till analog omvandlare.
Genom att kasta massor av hårdvara på problemet, skulle Arduino koden vara mycket enkelt. Koden skulle nu de faktiska hand positionerna i alla tider, även efter ett strömavbrott och kunde hålla den mekaniska klocka synkroniserad med RTC klockan, oavsett vad.
Tja, kan detta vara föremål för en framtida klocka design.
De inkluderade filerna innehåller Arduino skiss och den associerade bibliotek samlingen.
Anteckningar om nedladdning av Arduino skiss filen nedan:
När du sparar den till din dator, visas det i mappen downloads med ett konstigt namn med massor av bokstäver och en fil förlängning av ".ino". Döp om den till vad någonsin du vill men lämna förlängningen intakt.
Om du öppnar filen med programmet Arduino IDE, det klaga och be er om du vill skapa en ny skiss mapp och flytta filen där. Acceptera detta. Tyvärr blir inte också den nya skiss mappen i mappen download. Flytta det till där du brukar hålla dina skisser. Fortfarande, skissa är sannolikt inte att köra sedan bibliotek är saknade.
Öppna filen skiss (ino) med Windows WordPad (inte anteckningar). Du se fem bibliotek överst i skissen. Två första är inneboende till Arduino programvaran. De återstående tre måste installeras i mappen Bibliotek
I så fall också ladda ner (spara) filen ClockLibaries.zip. Igen, namnet kommer att innehålla en massa brev. Du kan ignorera det och bara extrahera de tre mapparna. Då, flytta dessa mappar till mappen bibliotek av du Arduino huvudmapp.
Skissen ska nu köra bra.
Skissen innehåller ett stort antal kommentarer förklarar syftet med kodrad. Jag gör rutinmässigt i alla mina skisser inte bara för att denna uppskrivning. Det verkar självklart vid utformningen kan vara förbryllande om du se över koden ett år senare.
Sketchen skrevs, redigerad och köra med hjälp av Arduino IDE Version 1.6.2. Det testades också med version 1.6.8 och verkar köra bra. Om du är bekant med Arduinos egenheter, vet du hur man hanterar bibliotek och var du lägger dina skisser. Jag använder en något oortodox setup där både skisser och extra biblioteken hålls på en filserver. Samma sak gäller för alla datafiler som är associerade med CorelDraw, VCarve Pro och CNC verktygsbanor. Att filen server säkerhetskopieras dagligen på externa enheter. Detta sätt mitt arbete bevaras bör de viktigaste dator skadas.