Tartalomjegyzék:

Arduino születésnapi torta: 4 lépés
Arduino születésnapi torta: 4 lépés

Videó: Arduino születésnapi torta: 4 lépés

Videó: Arduino születésnapi torta: 4 lépés
Videó: Мальчик или девочка? 👩‍👧‍👦 #гендерпати #торт 2024, November
Anonim

Ebben a tanulságosban egy nagyon egyszerű és alapvető arduino projektet készítek: születésnapi torta!

A születésnapi torta megjelenik az arduino UTFT képernyővédőjén, és egy hangszóró játssza le a "Happy birthday" zenét.

Amikor a mikrofont fújja, a gyertyák kialszanak.

1. lépés: Anyagok

Anyagok
Anyagok
Anyagok
Anyagok
Anyagok
Anyagok
Anyagok
Anyagok

Ehhez az egyszerű projekthez szüksége lesz:

- arduino MEGA

- hangszóró vagy hangjelző

- mikrofon modul

- UTFT képernyő arduino pajzs

Két okból döntöttem úgy, hogy arduino MEGA táblát használok ehhez a projekthez: sok memóriával és sok tűvel.

Ehhez a projekthez nem használhat arduino UNO -t, mert amikor az UTFT képernyő csatlakoztatva van, az összes érintkező el van rejtve (nincs több elérhető a mikrofonhoz és a hangszóróhoz), és nincs elegendő memóriája (az UTFT könyvtár nagyon nagy).

2. lépés: Kábelezés

Vezeték
Vezeték
Vezeték
Vezeték
Vezeték
Vezeték
Vezeték
Vezeték

A hangszóró csatlakoztatva van az arduino D40 és GND csapjaihoz.

A mikrofon a GND ("G"), 5V ("+") és A10 ("A0") érintkezőkhöz csatlakozik.

Az UTFT képernyő olyan, mint egy normál pajzs.

Az UTFT képernyővédő nem teljesen kompatibilis az arduino MEGA -val: az arduino kártya USB -csatlakozója túl nagy

A probléma megoldásához csatlakoztattam az UTFT képernyőt egy másik arduino pajzshoz (hosszabb tűkkel), majd mindkettőt az arduino -hoz.

3. lépés: Kalibrálja a mikrofont

Kalibrálja a mikrofont
Kalibrálja a mikrofont
Kalibrálja a mikrofont
Kalibrálja a mikrofont

A mikrofon kalibrálásához csavarhúzóra és számítógépre van szüksége.

Először töltse fel az alábbi kódot arduino -jába:

int val = 0;

void setup () {Serial.begin (9600); } void loop () {val = analogRead (10); Soros.println (val); késleltetés (100); }

Ezután lépjen a soros monitorhoz, és kalibrálja a mikrofont a potenciométer csavarhúzóval történő elforgatásával, amikor nincs hang, az értéknek körülbelül 30-40 között kell lennie.

Amikor a mikrofont fújja, az értéknek 100 -nál magasabbnak kell lennie.

Győződjön meg arról, hogy az érték kisebb, mint 100, amikor beszél (még hangosan is).

4. lépés: A kód

Itt a projekt kódja.

Az UTFT -n gyertyákkal ellátott születésnapi tortát jelenít meg, és a hangszóróval "Boldog születésnapot" játszik le. A torta téglalapokkal készült.

Ehhez a programhoz UTFT könyvtár szükséges.

#befoglalni

extern uint8_t BigFont ; // módosítsa ezeket az értékeket a képernyőmodelljének megfelelően UTFT myGLCD (ITDB28, A5, A4, A3, A2); int dallam = {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 noteDurrations = {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); // kék háttér myGLCD.setColor (200, 125, 50); // barna torta myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // fehér jegesedés myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // piros vonalak myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // sárga vonal myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // rózsaszín gyertyák myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // a gyertyák tüze myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // boldog születésnapot üzenet myGLCD.print ("HAPPY BIRTHDAY!", CENTER, 200); for (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // kikapcsolja a gyertyákat myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // és megjeleníti a "gratulálok" üzenetet a myGLCD.print ("GRATULÁLOK !!!", CENTER, 10); késleltetés (10000); myGLCD.clrScr (); // képernyő törlése 10 másodperc után}}

Ajánlott: