Sisukord:

Arduino sünnipäevatort: 4 sammu
Arduino sünnipäevatort: 4 sammu

Video: Arduino sünnipäevatort: 4 sammu

Video: Arduino sünnipäevatort: 4 sammu
Video: How to use 4 channel Relay to control AC load with Arduino code 2024, November
Anonim

Selles juhendis teen ma väga lihtsa ja elementaarse arduino projekti: sünnipäevatort!

Arduino UTFT ekraanikilbil kuvatakse sünnipäevatort ja kõlar mängib muusikat "Palju õnne sünnipäevaks".

Kui puhute mikrofoni, lülitatakse küünlad välja.

Samm: materjalid

Materjalid
Materjalid
Materjalid
Materjalid
Materjalid
Materjalid
Materjalid
Materjalid

Selle lihtsa projekti jaoks vajate:

- arduino MEGA

- kõlar või helisignaal

- mikrofoni moodul

- UTFT ekraaniga arduino kilp

Otsustasin selle projekti jaoks kasutada arduino MEGA tahvlit kahel põhjusel: sellel on palju mälu ja sellel on palju nööpnõelu.

Selle projekti jaoks ei saa kasutada arduino UNO -d, sest kui UTFT -ekraan on selle külge ühendatud, on kõik nööpnõelad peidetud (enam pole mikrofoni ja kõlari jaoks saadaval) ning sellel pole piisavalt mälu (UTFT -teek on väga suur).

2. samm: juhtmestik

Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik

Kõlar ühendatakse arduino tihvtidega D40 ja GND.

Mikrofon ühendatakse tihvtide GND ("G"), 5V ("+") ja A10 ("A0") külge.

UTFT ekraan ühendub nagu tavaline kilp.

UTFT ekraanikilp ei ühildu täielikult arduino MEGA -ga: arduino plaadi USB -pistik on liiga suur

Selle probleemi lahendamiseks ühendasin UTFT ekraani teise arduino kilbiga (pikemate tihvtidega), seejärel ühendasin mõlemad arduinoga.

Samm: kalibreerige mikrofon

Kalibreerige mikrofon
Kalibreerige mikrofon
Kalibreerige mikrofon
Kalibreerige mikrofon

Mikrofoni kalibreerimiseks vajate kruvikeerajat ja arvutit.

Esmalt laadige oma arduino alla järgmine kood:

int val = 0;

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

Seejärel minge jadamonitori juurde ja kalibreerige mikrofon, keerates potentsiomeetrit kruvikeerajaga, kui heli ei kostu, väärtus peab olema umbes 30 ~ 40.

Mikrofonile puhudes peab väärtus olema suurem kui 100.

Veenduge, et kõne ajal (isegi valjusti) on väärtus väiksem kui 100.

4. samm: kood

Siin on projekti kood.

See kuvab UTFT -l küünladega sünnipäevatordi ja esitab kõlariga "Palju õnne sünnipäevaks". Kook on valmistatud ristkülikutega.

See programm nõuab UTFT teeki.

#kaasake

extern uint8_t BigFont ; // muutke neid väärtusi vastavalt oma ekraanimudelile UTFT myGLCD (ITDB28, A5, A4, A3, A2); int meloodia = {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); // sinine taust myGLCD.setColor (200, 125, 50); // pruun kook myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // valge glasuur myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // punased jooned myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // kollane joon myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // roosad küünlad myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // küünlate tuli myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // palju õnne sünnipäevaks sõnum myGLCD.print ("HAPPY BIRTHDAY!", CENTER, 200); for (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // lülitab küünlad välja myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // ja kuvab "õnnitlused" sõnumi myGLCD.print ("PALJU ÕNNE !!!", CENTER, 10); viivitus (10000); myGLCD.clrScr (); // tühjenda ekraan 10 sekundi pärast}}

Soovitan: