Turinys:

„Arduino“gimtadienio tortas: 4 žingsniai
„Arduino“gimtadienio tortas: 4 žingsniai

Video: „Arduino“gimtadienio tortas: 4 žingsniai

Video: „Arduino“gimtadienio tortas: 4 žingsniai
Video: Riley’s 5th birthday cake. Knight Rider KITT Arduino ATtiny project 2024, Liepa
Anonim

Šioje pamokoje aš padarysiu labai paprastą ir pagrindinį arduino projektą: gimtadienio tortą!

Gimtadienio tortas rodomas ant arduino UTFT ekrano skydo, o garsiakalbis groja muziką „Su gimtadieniu“.

Kai pučiate mikrofoną, žvakės užgęsta.

1 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos

Šiam paprastam projektui jums reikės:

- arduino MEGA

- garsiakalbis arba garsinis signalas

- mikrofono modulis

- UTFT ekrano arduino skydas

Šiam projektui nusprendžiau naudoti „arduino MEGA“plokštę dėl dviejų priežasčių: ji turi daug atminties ir turi daug kaiščių.

Šiam projektui negalite naudoti „arduino UNO“, nes kai prie jo prijungtas UTFT ekranas, visi smeigtukai yra paslėpti (mikrofonui ir garsiakalbiui daugiau nėra), o atminties nepakanka (UTFT biblioteka yra labai didelis).

2 žingsnis: laidų prijungimas

Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai
Laidai

Garsiakalbis prijungiamas prie arduino kaiščių D40 ir GND.

Mikrofonas prijungiamas prie GND ("G"), 5V ("+") ir A10 ("A0") kaiščių.

UTFT ekranas jungiasi kaip įprastas skydas.

UTFT ekrano skydas nėra visiškai suderinamas su arduino MEGA: arduino plokštės USB kištukas yra per didelis

Norėdami išspręsti šią problemą, prijungiau UTFT ekraną prie kito „arduino“skydo (su ilgesniais kaiščiais), tada prijungiau abu prie „arduino“.

3 žingsnis: Kalibruokite mikrofoną

Kalibruokite mikrofoną
Kalibruokite mikrofoną
Kalibruokite mikrofoną
Kalibruokite mikrofoną

Norėdami sukalibruoti mikrofoną, jums reikės atsuktuvo ir kompiuterio.

Pirmiausia į „arduino“įkelkite šį kodą:

int val = 0;

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

Tada eikite į nuoseklųjį monitorių ir kalibruokite mikrofoną, sukdami potenciometrą atsuktuvu, kai nėra garso, vertė turi būti maždaug 30–40.

Kai pučiate mikrofoną, vertė turi būti didesnė nei 100.

Kai kalbate (net garsiai), įsitikinkite, kad vertė yra mažesnė nei 100.

4 žingsnis: Kodas

Čia yra projekto kodas.

Jame UTFT rodomas gimtadienio tortas su žvakėmis ir su garsiakalbiu groja „Su gimtadieniu“. Tortas pagamintas iš stačiakampių.

Šiai programai reikalinga UTFT biblioteka.

#įtraukti

extern uint8_t BigFont ; // keisti šias reikšmes pagal savo ekrano modelį UTFT myGLCD (ITDB28, A5, A4, A3, A2); int melodija = {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); // mėlynas fonas myGLCD.setColor (200, 125, 50); // rudas pyragas myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // balta glazūra myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // raudonos linijos myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // geltona linija myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // rožinės žvakės myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // žvakių ugnis myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // su gimtadieniu žinutė myGLCD.print ("LAIMINGO GIMTADIENIO!", CENTRAS, 200); for (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // išjungia žvakes myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // ir parodo pranešimą „sveikinu“myGLCD.print („SVEIKINAME !!!“, CENTRAS, 10); vėlavimas (10000); myGLCD.clrScr (); // išvalyti ekraną po 10 sekundžių}}

Rekomenduojamas: