Stap 12: Prototype versie - software
De software is niet ingewikkeld, maar zorg ervoor dat u de meest recente versie van Adafruit eigen Motorshield stuurprogramma. Er is een correctie in het dat belangrijk is voor deze code.De code:
Er is een interne tijdserver vertegenwoordiging, bestaande uit drie ints: currentSeconds, currentMinutes en currentHours. Ditmaal is vooraf ingesteld op start en verhoogd terwijl het programma wordt uitgevoerd.
De hoofdlus van het programma maakt een aantekening van de begintijd, dan continu controleert de huidige tijd om te zien of het is 1000 milliseconden later of niet. Als er, vervolgens de interne klok wanneer (doTick()) verhoogd en raakt van een procedure voor het aanpassen van de positie van de indicatoren op de klok (renderTime()).
De procedure doTick() behandelt verhogen van seconden tot minuten en minuten in uren, en opnieuw instellen van deze waarden wanneer dat nodig is.
De procedure renderTime() behandelt de tijd in H:M:S converteren naar posities op de wijzerplaat, of juister, posities van de stepper. Het programma heeft een concept van de huidige positie van de indicatoren (vooraf is ingesteld op opstarten om 00:00 - de uiterst linkse positie), en gebruik dit eerste startpositie om te beslissen of de stepper vooruit of achteruit.
Het gebruik van de interne tijdwaarneming van de Arduino is vrij dodgy grond (zie dit instructable voor een goede run down over waarom, en een mogelijke oplossing). Er zijn veel manieren rond dit als het is van belang: de belangrijkste Arduino-pagina's hebben een paar manieren om het accuraat, evenals dingen over het gebruik van de bibliotheek van de tijd. Ik ging voor een meer eenvoudige oplossing, gezien het feit dat het is een prototype (Ja, dat is mijn excuus voor elke keer dat ik een hack).
Ik ben met behulp van de AFMotor-bibliotheek voor het besturen van de steppers, want ik ben met behulp van de motorshield van Adafruit. Als u de steppers doorlopen in een ander circuit, kunt u waarschijnlijk de gewone Arduino stepper bibliotheken met minimaal code hakken wordt. Als je de code downloaden, moet het bestand worden opgeslagen met een .pde op het einde. Niet zeker hoe het wijzigen van de bestandsnaam op instructables!