Inside-out Clock (8 / 9 steg)
Steg 8: Ladda ner koden och testa elektronik
Ladda ner koden till datorn
Den första sak att göra är få Arduino skiss för en-stjärna.
- Ladda ner koden till datorn från här.
- Injicera kod till din favorit IDE.
- Kontrollera att koden kompileras i din IDE.
- [Frivilligt på denna punkt] Hämta koden till en-stjärna.
Skissen har två huvudsakliga filer. desk_clock.ino och stepper.cpp. Den senare har en tillhörande stepper.h.
Switch hantering
desk_clock.ino naturligtvis innehåller funktionerna setup() och loop(), men det är primärt ansvarig för att göra med växeln, debouncing, och timing och räkna pressar och utgåvor att tolka "användardata" göras via växeln. Switch tolkningen är lite svårbegripliga.
Klockan kan vara i två större stater: kör och stannade. Om växeln är nere medan stannade, startar klockan omedelbart.
Om brytaren trycks medan du kör, stannar klockan omedelbart. Om det pressen varar mindre än "fördröjningstiden" (inställd på 2000 millisekunder), då klockan bara stopp. Om det trycker på varar längre än "fördröjningstiden", går klockan också in i "Ställ in läge" sub tillstånd. Två pressmeddelande/cykler måste råka lämna inställda läge. Observera att klockan stoppas när den kommer in inställda läge och resterna stoppas efter att ha lämnat inställda läge.
Längden på både pressar i två pressmeddelande/cykler under inställda läge är viktigt. Om en press varar än"gräns" (set på 1000 millisekunder), är det en "prick". Om pressen varar längre, är det ett "streck". De fyra kombinationerna av punkt-streck tillåter en att ställa in hastighet och riktning av klocka rörelse via stegmotor, eller stänga av en stegmotor. Tolkningar:
- prick/prick--normal hastighet (den andra handen roterar på 1 RPM) och medurs
- punkt/streck--24 X normal hastighet och medurs
- Dash/dot--24 X normal hastighet och moturs
- Dash/dash - inaktivera drivrutinen, således stänga av stepper motor
Kombination 1 kan uppenbarligen klockan för att hålla tiden. 2 gör ställa klockan framåt, till exempel för att flytta från normaltid till sommartid. 3 gör ställa klockan bakåt, till exempel för att flytta till normaltid till sommartid. Kombination 4 tillåter manuell inställning antingen framåt eller bakåt; samma sak kan vara åstadkomma genom att dra ur klockan.
Obs: När min klocka körs i inställda hastigheten (24 X) i antingen framåt eller bakåt, finns en bit av redskap buller när den andra handen är på en viss plats. Detta är normalt på grund av den högre hastigheten och gears "klädd i". Du bör inte hör några ljud alls, från motorn eller redskap, i normal hastighet. Om du gör är något allvarligt fel.
Du kunde verkligen genomföra en annan tolkning av switch pressar/utgåvor. Jag är i själva verket, vissa bättre system finns. Dessutom kan du välja en annan i/o pin att läsa växeln; naturligtvis, skulle kretsen behöva ändras för att återspegla en annan PIN-kod.
Stepper motorstyrning
Stepper.* filerna styr SilentStepStick, som driver stegmotor. Det är tur att SilentStepStick är exakt vad som behövs. Det finns alltså bara tre styrsignaler behövs.
- Enable: aktiverar eller inaktiverar föraren; Det finns ingen makt tillämpas på motorn när oduglig
- Riktning: bestämmer riktningen av rotation; för klockan betyder medurs eller moturs
- Steg: berättar motorn till steg (du kan läsa om den resulterande mikro-stepping i dokumentationen till SilentStepStick)
Den bara intressanta aspekten av kontroll är generation av steg signalen. Frekvensen av signalen måste vara mycket exakt, åtminstone under rimlig tid, att säkerställa klockans noggrannhet. Det finns sannolikt många sätt att göra detta korrekt. Jag valde att generera steg signalen använder ATmega32U4 Timer 3, som kan mata en "PWM" signal till digital stift 5. Läs ATmega32U4 dokumentation, avsnitt 14.8.3, för detaljer.
Medan stift 5 för steg signalen har mandat genom användning av Timer 3, kunde andra två styrsignaler vara någon annan kan digital i/o pin. Du kan använda alternativ om så önskas.
Testa elektroniken
Du kan nu göra det som ofta kallas "integration tester". En möjlighet är att avsluta installationen av elektronik, tillämpa makt, och... gå. Detta leder ofta till katastrof. Jag rekommenderar en mer konservativ strategi, dvs testa en sak i taget, och sedan kombinationer, tills allt är integrerat i hela.
Till exempel, skulle jag rekommendera som följer "testa" skisser från den ursprungliga skissen:
- Man kunde testa bara en switch och statliga förvaltning. Debug uttalanden i den ursprungliga skissen kan du se vad som händer. Du skulle bara behöver koppla in strömbrytare församlingen på kretskortet och bifoga din dator via USB till en-stjärna.
- Man kunde testa bara förmågan att generera de lämpliga steg signal frekvenserna. Du skulle behöva ett oscilloskop att verifiera frekvenserna. Du skulle bara behöva bifoga din dator via USB till en-stjärna.
Uppenbarligen någon gång måste du testa hela systemet. Detta ganska lätt att göra innan slutmontering. Har du sladdar dinglande, så det kan hjälpa för att ha stöd för kretskort och switch. Att testa
- Ladda ner desk_clock skissen till den en-stjärnan.
- Koppla bort USB.
- Anslut den makt församlingen på kretskortet.
- Anslut den switch församlingen på kretskortet.
- Koppla in stegmotor på kretskortet. VIKTIGT: Den svarta kabeln bör vara närmast till USB-kontakten på en-stjärna.
- Anslut nätadaptern till power församlingen.
När du tillämpar makt, du kan höra eller se något händer klockan rörlighet. Dock mindre än en sekund efter applicering makt, du bör höra någonting, och händerna bör inte gå. Att testa allt
- Tryck på och släpp knappen. Händerna bör köra med normal hastighet medurs.
- Tryck och snabbt släpper knappen. Händerna bör stoppa när du trycker på knappen.
- Tryck på och släpp knappen för att starta händerna igen.
- Tryck och håll knappen intryckt i minst två sekunder (om du inte har ändrat "fördröjningstiden"). Händerna ska sluta omedelbart på pressen och lång pressen sätter klockan i "set mode".
- Tryck och snabbt släpper knappen.
- Tryck och håll knappen i minst en sekund (om du inte har ändrat "gränsen tiden").
- Tryck på och släpp knappen. Händerna bör köra på 24 X normal hastighet medurs.
- Tryck och håll knappen intryckt i minst två sekunder. Detta stannar klockan och placerar det i "set mode".
- Tryck och håll knappen i minst en sekund.
- Tryck på och släpp knappen.
- Tryck på och släpp knappen. Händerna bör köra på 24 X normal hastighet i en moturs.
- Tryck och håll knappen intryckt i minst två sekunder. Detta stannar klockan och placerar det i "set mode".
- Tryck på och släpp knappen.
- Tryck på och släpp knappen.
- Tryck på och släpp knappen. Händerna bör köra med normal hastighet medurs.
- Tryck och håll knappen intryckt i minst två sekunder. Detta stannar klockan och placerar det i "set mode".
- Tryck och håll knappen i minst en sekund.
- Tryck och håll knappen i minst en sekund. Du bör kunna röra den andra handen fritt, eftersom det bör finnas någon makt motorn.
- Tryck på och släpp knappen. Händerna bör köra med normal hastighet medurs.
Du kan, om du är som mig, har lite problem med väntetider för knappen. Om du inte lyckas vid första, prova, prova igen. Om du hittar emellertid att du inte kan få den rätta beteendet, det kan vara något fel med växeln, eller det kan vara hämtat du den fel kod.