Stap 9: programmeren
Dus is de laatste stap om het programma af, en uploaden op de geassembleerde boom. Het programma heeft 4 belangrijke onderdelen: initialisatie, onderbreken voor de knoop van de aanraking, hoofdlus te knipperen van de LED's, en een heleboel kleinere functies voor het berekenen van de verschillende patronen voor de boom. Ik heb enkele opmerkingen in de code dat het verklaart een beetje hoe het werkt.
Ik stel een interrupt met behulp van de TimerOne bibliotheek die elke 0,1 controleert s als de sensor is aangeraakt. Als het is, zal het het patroon wijzigen of wakker van de boom worden, als het was in stand-by. Als geen touch geval recorder voor 10 is s, als het patroon automatisch willekeurig zal veranderen. Geen touch geval geval voor 3 minuten zal het terug naar standby gaat. Het programma controleert ook de sensor te houden gedurende 3 seconden, wanneer dat gebeurt, de boom gaat naar woedend willekeurig knipperen.
Voor het uploaden van het programma, eerst hebt om te branden van de bootloader op de ATmega-chip, die zal ook configureren voor het gebruik van de interne klok van 8 MHz. Dit kan worden gedaan met behulp van een Arduino, zoals ik al in stap 4. Om dit te doen, volg de instructies op de website van Arduino voor de "minimale Circuit". Dit houdt in principe de hardware configuratiebestand downloaden en aansluiten van de ATmega aan de Arduino.
Voordat u kunt doorgaan met de programmering, moet de Arduino zelf echter hebben de Arduino als ISP programma geüpload naar, omdat dit zal worden gebruikt om het verzenden van het programma via naar de kerstboom. Nadat dit is gedaan, sluit u de 3,3 V en GND van de Arduino aan de 3.3 V en GND van de boom. Sluit vervolgens Arduino pin 10 te resetten, pin 11 tot en met MOSI, pin 12 tot en met MISO en pin 13 tot SCK. Hebt u een Arduino Uno, ook verbinding maken met een condensator 10 µF tussen RESET en GND pin van de Arduino, zodat het gewoon eigenlijk gereset zelf.
Nadat u de Arduino als ISP geüpload, en alle verbindingen hebt, omzetten in de programmeur in de Arduino IDE Arduino als ISP, en het targetbord aan ATmega328 op breadboard (8 MHz interne klok). Nu, kunt u de bootloader branden. Nadat dit is voltooid, opent u de pcb_xmas_tree.ino in de Arduino IDE, en Selekteer Upload met behulp van de programmeur. Dit duurt een paar seconden, maar je weet dat het is klaar als de LED naast de touch sensor zal langzaam knipperen.