Stap 4: Module 1 - The Arduino / RTC module - overzicht
U kunt deze module of een variant hiervan voor elke toepassing op basis van tijd. We breken uit bijna alle van de nuttige pinnen aan mannelijke headers en het opnieuw kan worden geprogrammeerd door seriële op het bord. Je moet een USB-naar-TTL kabel voor het programmeren van de wekker code of test code (of zelfs voor uw eigen code). Mijne heet "CP2102" gebaseerd en was £4,75 voor twee inclusief levering (e-bay). Ze zijn nu zelfs goedkoper.
Om te programmeren door seriële verbinding moet u een 328 ' met de "Duemilanove" bootloader. U kunt deze chips voorgeprogrammeerd met de bootloader kopen of gebruiken van een ISP-programmeur. Met mijn nieuwe chip op een breadboard volgens deze tutorial gebruikte ik een bestaande Arduino als ISP:
http://Arduino.CC/en/tutorial/ArduinoToBreadboard
Echter, wat dat niet vertellen u is dat u wilt uitschakelen van de automatische reset dus kijk hier:
http://www.Arduino.CC/Playground/code/MegaISP
voor de oplossing. Ik gebruikte een 100 Ohm en 10 Ohm weerstand in serie van de resetpin aan + 5V. Een condensator van 100uF tussen hen werkt even goed.
Als, zoals ik, krijg je een ' 328-PU in plaats van een 328P (ik wist niet dat het verschil maar blijkbaar ze hebben verschillende energiebesparende modi) dan kan je dat de bootloader niet laden omdat deze twee chips de handtekening van een ander apparaat hebben en de software die eigenlijk tegen de programmeur (AVRdude) praat krijgt verward. De snelste oplossing hiervoor is het vinden van uw avrdude.conf bestand en in de vermelding onder ATmega328, bewerk de regel:
handtekening 0x1e = 0x95 0x0F;
om te lezen:
handtekening 0x1e = 0x95 0x14;
Dat maakt AVRdude kijken voor een ' 328-PU en alles is goed. Wijzig het bestand .conf terug na (zodra de bootloader is geprogrammeerd). De bootloaded ' 328-PU zal programma vanuit de IDE door seriële met geen enkel probleem en gedraagt zich precies als een normale Arduino.
Het gegevensblad ATMega328 bedraagt: http://www.atmel.com/Images/doc8161.pdf enkel voor het geval u nodig 448 pagina's van licht lezing!
U zult ook zien dat ik liever naar de stad zijn gegaan op de condensators op dit forum (en inderdaad dit project). Misschien vanwege de zware PWM van verschillende versterkers voor LEDs, ik was het vinden van deze klok was een beetje onstabiel en soms zou kraam. Het display ging ook af en toe een beetje gek. Ik neem dan ook de benadering van een 100nf toe te voegen aan elke stroomaansluiting van elke chip, een 100uF op elk bord en een massale 470-1000uF op de Ardu' bestuur en stuurprogramma. Het is waarschijnlijk te veel doden, maar het lijkt te werken. Gebruik uw verstand wat om te vertrekken uit, hebt u een beter begrip van deze dingen dan ik.
Een laatste opmerking: ik heb ook vrouwelijke headers om tijdelijke LEDs op de lijn van de macht en op pin 13. We zijn met behulp van pin 13 voor communicatie en ik wilde echt niet het hele nacht weg te flikkeren. Met een header kan ik in de LED pug, wanneer ik wil iets testen en vervolgens neem het weer na. Als u wilt dat een permanente LED op pin 13 gewoon soldeer het in plaats van de vrouwelijke headers.
Stuklijst voor Module 1:
1 PCB's of Perf Board (X door Y gaten)
1 28-pins DIN aansluiting (optioneel maar aanbevolen)
1 bootloaded 328 ATmega
1 16 MHz kristal
2 22 pf keramische condensatoren
1 1307 RTC **
1 32.768 kHz, 12,5 pF horloge kristal
1 2032 batterijhouder
1 2032 3V lithiumbatterij (niet afgebeeld)
1 voelbare zet (6 x 6 mm)
3 100 nf keramische condensatoren
3 weerstanden van 10K *
2 weerstanden van 1K
1 oranje 3mm LED
1 groen 3mm LED
optioneel - 2 x 2pin vrouwelijke kop.
1 1000 uf elektrolytische GLB (niet afgebeeld)
2 x 7 pins mannelijke header (rechte of 90")
2 x 6 pins mannelijke header (rechte of 90")
1 x 2 pins rechte mannelijke kop
link-up draad als perf halfpension (ik gebruikte sommige oude 3-pair telefoonkabel) gebruikt. Ik neem aan dat dit in alle verdere modules.
* naar het gegevensblad ** de RTC moeten waarschijnlijk 2.5K pullups maar 10K schijnt om boete te werken.
http://www.Sparkfun.com/datasheets/Components/DS1307.PDF