Hand In Hand Skeleton Clock (9 / 11 steg)
Steg 9: Firmware
Gå hit för all information om hur du använder prydnadssak:
https://learn.adafruit.com/Introducing-Trinket/int...
Kontrollera att du har alla drivrutiner och bibliotek installerat för prydnadssak innan blinkande firmware. Prydnadssaker är lite speciell när det gäller programmering dem, men detta kommer med fördelen att de är billiga och små.
I paketet du laddat ner vid utskrift steg, kommer du också hitta den senaste versionen av firmware. Firmware har några lägen som förklaras i nästa steg. Det finns ett läge som är av intresse på denna punkt. Normal klockläge. Detta är där klockan väntar en fördefinierad tid innan det går motorn en fördefinierad mängd framåt.
Hur mycket klockan rör sig framåt definieras. Encoder som mäter växel kan mäta 6 pulser per varv. Utväxlingen till minut hjulet är 13 till 53. Att beräkna fördröjningstiden i sekunder, ta många sekunder per timme (3600) och dividera det med utväxlingsförhållandet och pulser per varv. 3600 / 53 * 13 / 6 = 147.170 sekunder, eller 147170 millisekunder. I efterhand, en rund värde skulle ha varit bättre, men nyckeltalen hade plockats och klockan var tryckt. Det är godtyckligt när det verkligen kommer till kritan.
Anledningen för att berätta detta är detta: The prydnadssak har ingen kristall. Detta innebär att tidtagning med det är faktiskt ganska svårt. Markeras i bilden (delay_time) beräknas fördröjningstiden värdet ovan. Om dina vinster tid under användning, måste det markerade värdet ökas. När klocktiden förluster, det markerade värdet måste minskas.
Praktiska exempel. Låt oss säga din klocka vinster 20 protokollet över en vecka. delay_time kommer att behöva höjas med en viss ersättning. Veckan har 10080 minuter (60 * 24 * 7). Klockan är avstängd med en viss faktor: (10080-20) / 10800. Detta ger 0.99801... Nu delar det aktuella time_delay värdet du har med denna faktor och du får din nya time_delay. I detta fall 147462 millisekunder.
Om din klocka förlorar tid, du kommer att behöva din nuvarande delay_time multipliceras med faktor, att göra 146878 millisekunder.
Jag skulle älska att göra detta enklare, men jag suger på förklaringar.