Sommario:

Torta di compleanno Arduino: 4 passaggi
Torta di compleanno Arduino: 4 passaggi

Video: Torta di compleanno Arduino: 4 passaggi

Video: Torta di compleanno Arduino: 4 passaggi
Video: Quando provi a fare un complimento a una ragazza... 2024, Dicembre
Anonim

In questo tutorial, realizzerò un progetto Arduino molto semplice e di base: una torta di compleanno!

Una torta di compleanno viene visualizzata sullo schermo UTFT dell'arduino e un altoparlante riproduce la musica "Buon compleanno".

Quando soffi nel microfono, le candele si spengono.

Passaggio 1: materiali

Materiali
Materiali
Materiali
Materiali
Materiali
Materiali
Materiali
Materiali

Per questo semplice progetto, avrai bisogno di:

- un arduino MEGA

- un altoparlante o un cicalino

- un modulo microfono

- uno schermo arduino shield UTFT

Ho deciso di utilizzare una scheda arduino MEGA per questo progetto per due motivi: ha molta memoria e ha molti pin.

Non puoi usare un arduino UNO per questo progetto, perché quando lo schermo UTFT è collegato ad esso tutti i pin sono nascosti (non sono più disponibili per il microfono e l'altoparlante) e non ha memoria sufficiente (la libreria UTFT è molto grande).

Passaggio 2: cablaggio

Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio
Cablaggio

L'altoparlante si collega ai pin D40 e GND dell'arduino.

Il microfono si collega ai pin GND ("G"), 5V ("+") e A10 ("A0").

Lo schermo UTFT si collega come un normale schermo.

La protezione dello schermo UTFT non è completamente compatibile con arduino MEGA: la presa USB della scheda arduino è troppo grande

Per risolvere questo problema, ho collegato lo schermo UTFT a un altro shield arduino (con pin più lunghi), quindi ho collegato entrambi all'arduino.

Passaggio 3: calibrare il microfono

Calibrare il microfono
Calibrare il microfono
Calibrare il microfono
Calibrare il microfono

Per calibrare il microfono, avrai bisogno di un cacciavite e del tuo computer.

Innanzitutto, carica il seguente codice sul tuo arduino:

int val = 0;

void setup() { Serial.begin(9600); } void loop() { val = analogRead(10); Serial.println(val); ritardo(100); }

Poi vai al monitor seriale e calibra il microfono ruotando il potenziometro con il cacciavite quando non c'è suono, il valore deve essere circa 30~40.

Quando si soffia sul microfono, il valore deve essere maggiore di 100.

Assicurati che il valore sia inferiore a 100 quando parli (anche a voce alta).

Passaggio 4: il codice

Ecco il codice del progetto.

Visualizza una torta di compleanno con candele sull'UTFT e riproduce "Buon compleanno" con l'altoparlante. La torta è fatta con rettangoli.

Questo programma richiede la libreria UTFT.

#includere

extern uint8_t BigFont; //cambia questi valori in base al tuo modello di schermo UTFT myGLCD(ITDB28, A5, A4, A3, A2); int melody= {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); //sfondo blu myGLCD.setColor(200, 125, 50); //torta marrone myGLCD.fillRect(100, 90, 220, 160); myGLCD.setColor(255, 255, 255); // glassa bianca myGLCD.fillRect(100, 90, 220, 105); myGLCD.setColor(255, 50, 50); //righe rosse myGLCD.fillRect(100, 120, 220, 123); myGLCD.fillRect(100, 140, 220, 143); myGLCD.setColor(255, 255, 0); //linea gialla myGLCD.fillRect(100, 130, 220, 133); myGLCD.setColor(255, 170, 255); //candele rosa myGLCD.fillRect(128, 70, 132, 90); myGLCD.fillRect(158, 70, 162, 90); myGLCD.fillRect(188, 70, 192, 90); myGLCD.setColor(255, 255, 0); //fuoco delle candele myGLCD.fillCircle(130, 62, 5); myGLCD.fillCircle(160, 62, 5); myGLCD.fillCircle(190, 62, 5); myGLCD.setColor(0, 255, 0); //messaggio di buon compleanno myGLCD.print("HAPPY BIRTHDAY !", CENTER, 200); for (int thisNote = 0; thisNote 100) { myGLCD.setColor(20, 200, 150); //spegne le candele myGLCD.fillCircle(130, 62, 5); myGLCD.fillCircle(160, 62, 5); myGLCD.fillCircle(190, 62, 5); myGLCD.setColor(255, 255, 255); //e visualizza il messaggio "congratulazioni" myGLCD.print("CONGRATULAZIONI !!!", CENTER, 10); ritardo (10000); mioGLCD.clrScr(); //cancella lo schermo dopo 10 secondi } }

Consigliato: