Stap 4: Programmeren van de Arduino
Eerste programma de Arduino Uno met het StandardFirmata voorbeeld schets geboden door Adafruit.
Ik hebt de bestanden die ik heb gemaakt voor dit project toegevoegd. Zorg ervoor dat de House.h, House.cpp en pitches.h toevoegen als tabbladen in de schets van de Main_Code. De schets moet worden geüpload naar de Arduino Micro.
Ik heb het huis van de bibliotheek, die uit House.h en House.cpp bestaat.
Het headerbestand maakt de klasse door het definiëren van de constructor, de functies moet worden gebruikt in het bestand Main_Code.ino en de variabelen gebruikt in het bestand House.cpp.
De CPP-bestand definieert wat elke functie doet wanneer deze wordt aangeroepen in het Main_Code.ino bestand. Eerst in dit bestand u de duur van de matrices melodie en opmerking ziet, worden deze gebruikt door de functie playtune(). Ik gekopieerd deze functie van garagelab.com, de definities voor de notities zijn in pitches.h. De constructor wordt toegewezen de pinnen voor het apparaat en de uitgang-pins ingesteld als een uitvoer en de invoer pin als input. De functies openDoor() en closeDoor() bepalen de servo gekoppeld aan de deur. De playTune() en silent() bepalen de luidsprekeruitgang.
Ik heb gedefinieerd in de Main_Code.ino, eerst de pinnen voor de deur, zoemer en interrupts. Interrupts zijn gebaseerd op een verandering in spanning op de input pinnen. Deze spanning wordt gewijzigd wanneer u de output van de pin in de Adafruit app. De functie van de deur houdt van de vorige status van de deur invoer pin spanning zo als de deur was eerder gesloten, wijzigt de spanning zal openen de deur en vice versa. De zoemer ook controleren of de zoemer invoer pin spanning dus als de zoemer was eerder af, de melodie speelt en als de zoemer eerder speelde, de zoemer zal zwijgen. Opmerking: De playTune() functie wordt aangeroepen als de vlag prevBuzzer is ingesteld op 1 en de hoofdlus is ingecheckt. Het moet in de hoofdlus zodat de vertragingen bij de playTune() toegepast worden. Vertragingen worden niet uitgevoerd in een interrupt. De verklaringen van de Serial.println() uitmaken voor foutopsporing.