Arduino födelsedagstårta (4 / 4 steg)
Steg 4: Koden
Här är koden för projektet.
Det visar en födelsedagstårta med ljus på UTFT och spelar "Happy birthday" med talare. Tårtan är gjord med rektanglar.
Detta program kräver UTFT biblioteket.
#include < utft.h >
extern uint8_t BigFont [];
ändra dessa värden enligt din skärm modell
UTFT myGLCD(ITDB28,A5,A4,A3,A2);
int melodi [] = {196,196,220,196,262,247,196,196,220,196,294,262,196,196,392,330,262,247,220,349,349,330,262,294,262}.
int noteDurations [] = {8,8,4,4,4,2,8,8,4,4,4,2,8,8,4,4,4,4,3,8,8,4,4,4,2}.
int val = 0;
void setup() {
myGLCD.InitLCD();
myGLCD.setFont(BigFont);
myGLCD.fillScr (20, 200, 150); blå bakgrund
myGLCD.setColor (200, 125, 50); brun tårta
myGLCD.fillRect (100, 90, 220, 160);
myGLCD.setColor (255,255, 255); vit glasyr
myGLCD.fillRect (100, 90, 220, 105);
myGLCD.setColor (255,50, 50); röda linjer
myGLCD.fillRect (100, 120, 220, 123);
myGLCD.fillRect (100, 140, 220, 143);
myGLCD.setColor (255,255, 0); gula linjen
myGLCD.fillRect (100, 130, 220, 133);
myGLCD.setColor(255,170,255); rosa ljus
myGLCD.fillRect (128, 70, 132, 90);
myGLCD.fillRect (158, 70, 162, 90);
myGLCD.fillRect (188, 70, 192, 90);
myGLCD.setColor(255,255,0); avfyrar av ljusen
myGLCD.fillCircle (130, 62, 5);
myGLCD.fillCircle (160, 62, 5);
myGLCD.fillCircle (190, 62, 5);
myGLCD.setColor(0,255,0); Grattis på födelsedagen meddelande
myGLCD.print ("Grattis!", CENTER, 200);
för (int thisNote = 0; thisNote < 26; thisNote ++) {//plays melodin
int noteDuration = 1000/noteDurations [thisNote];
tonen (40, melody[thisNote],noteDuration);
int pauseBetweenNotes = noteDuration * 1.60;
Delay(pauseBetweenNotes);
noTone(40);
}
}
void loop() {
Val = analogRead(10); När du blåser på mikrofonen
om (val > 100) {
myGLCD.setColor (20, 200, 150); släcks ljusen
myGLCD.fillCircle (130, 62, 5);
myGLCD.fillCircle (160, 62, 5);
myGLCD.fillCircle (190, 62, 5);
myGLCD.setColor(255,255,255); och visar "Grattis" meddelande
myGLCD.print ("Grattis!", CENTER, 10);
Delay(10000);
myGLCD.clrScr(); Rensa skärmen efter 10s
}
}