Innholdsfortegnelse:

Arduino bursdagskake: 4 trinn
Arduino bursdagskake: 4 trinn

Video: Arduino bursdagskake: 4 trinn

Video: Arduino bursdagskake: 4 trinn
Video: Использование драйвера шагового двигателя L298N Для управления 4-проводным шаговым двигателем 2024, Juli
Anonim

I denne instruksen vil jeg lage et veldig enkelt og grunnleggende arduino -prosjekt: en bursdagskake!

En bursdagskake vises på UTFT -skjermen på arduinoen, og en høyttaler spiller musikken "Happy birthday".

Når du blåser på mikrofonen, slås lysene av.

Trinn 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

For dette enkle prosjektet trenger du:

- en arduino MEGA

- en høyttaler eller en summer

- en mikrofonmodul

- et UTFT skjerm arduino skjold

Jeg bestemte meg for å bruke et arduino MEGA -kort til dette prosjektet av to grunner: det har mye minne og det har mange pinner.

Du kan ikke bruke en arduino UNO til dette prosjektet, for når UTFT -skjermen er plugget på, er alle pinnene skjult (ikke flere er tilgjengelige for mikrofonen og høyttaleren), og den har ikke nok minne (UTFT -biblioteket er veldig stor).

Trinn 2: Kabling

Kabling
Kabling
Kabling
Kabling
Kabling
Kabling
Kabling
Kabling

Høyttaleren plugger på pinne D40 og GND på arduinoen.

Mikrofonen plugges på pinnene GND ("G"), 5V ("+") og A10 ("A0").

UTFT -skjermen plugger som et vanlig skjold.

UTFT -skjermskjermen er ikke fullt kompatibel med arduino MEGA: USB -kontakten på arduino -kortet er for stor

For å fikse dette problemet, plugget jeg UTFT -skjermen på et annet arduino -skjold (med lengre pinner), deretter plugget jeg begge på arduinoen.

Trinn 3: Kalibrer mikrofonen

Kalibrer mikrofonen
Kalibrer mikrofonen
Kalibrer mikrofonen
Kalibrer mikrofonen

For å kalibrere mikrofonen trenger du en skrutrekker og datamaskinen.

Last først opp følgende kode til din arduino:

int val = 0;

ugyldig oppsett () {Serial.begin (9600); } void loop () {val = analogRead (10); Serial.println (val); forsinkelse (100); }

Gå deretter til den serielle skjermen og kalibrer mikrofonen ved å dreie potensiometeret med skrutrekkeren når det ikke er lyd, verdien må være omtrent 30 ~ 40.

Når du blåser på mikrofonen, må verdien være høyere enn 100.

Sørg for at verdien er mindre enn 100 når du snakker (til og med høyt).

Trinn 4: Koden

Her er koden til prosjektet.

Den viser en bursdagskake med stearinlys på UTFT og spiller "Gratulerer med dagen" med høyttaleren. Kaken er laget med rektangler.

Dette programmet krever UTFT -biblioteket.

#inkludere

ekstern uint8_t BigFont ; // endre disse verdiene i henhold til skjermmodellen 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; ugyldig oppsett () {myGLCD. InitLCD (); myGLCD.setFont (BigFont); myGLCD.fillScr (20, 200, 150); // blå bakgrunn myGLCD.setColor (200, 125, 50); // brun kake myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // hvit glasur myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // røde linjer myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // gul linje myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // rosa lys myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // ild av lysene myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // gratulerer med dagen i meldingen myGLCD.print ("HAPPY BIRTHDAY!", CENTER, 200); for (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // slår av lysene myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // og viser "gratulerer" -melding myGLCD.print ("GRATULERER !!!", SENTRUM, 10); forsinkelse (10000); myGLCD.clrScr (); // tøm skjermen etter 10 sekunder}}

Anbefalt: