Innehållsförteckning:

Arduino födelsedagstårta: 4 steg
Arduino födelsedagstårta: 4 steg

Video: Arduino födelsedagstårta: 4 steg

Video: Arduino födelsedagstårta: 4 steg
Video: Glad påsk från anna_cool1 del 1 av 4 2024, November
Anonim

I denna instruerbara kommer jag att göra ett mycket enkelt och grundläggande arduino -projekt: en födelsedagstårta!

En födelsedagstårta visas på UTFT -skärmen på arduinoen och en högtalare spelar musiken "Grattis på födelsedagen".

När du blåser på mikrofonen släcks ljusen.

Steg 1: Material

Material
Material
Material
Material
Material
Material
Material
Material

För detta enkla projekt behöver du:

- en arduino MEGA

- en högtalare eller en summer

- en mikrofonmodul

- en UTFT skärm arduino sköld

Jag bestämde mig för att använda ett arduino MEGA -kort för detta projekt av två skäl: det har mycket minne och det har många stift.

Du kan inte använda en arduino UNO för detta projekt, för när UTFT -skärmen är ansluten till den är alla stift dolda (det finns inte fler tillgängliga för mikrofonen och högtalaren), och det har inte tillräckligt med minne (UTFT -biblioteket är väldigt stor).

Steg 2: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

Högtalaren ansluter stiften D40 och GND på arduino.

Mikrofonen ansluts till stiften GND ("G"), 5V ("+") och A10 ("A0").

UTFT -skärmen ansluts som en vanlig skärm.

UTFT -skärmen är inte helt kompatibel med arduino MEGA: USB -kontakten på arduino -kortet är för stor

För att åtgärda detta problem kopplade jag UTFT -skärmen till en annan arduino -skärm (med längre stift), sedan pluggade jag in båda på arduinoen.

Steg 3: Kalibrera mikrofonen

Kalibrera mikrofonen
Kalibrera mikrofonen
Kalibrera mikrofonen
Kalibrera mikrofonen

För att kalibrera mikrofonen behöver du en skruvmejsel och din dator.

Ladda först upp följande kod till din arduino:

int val = 0;

void setup () {Serial.begin (9600); } void loop () {val = analogRead (10); Serial.println (val); fördröjning (100); }

Gå sedan till den seriella bildskärmen och kalibrera mikrofonen genom att vrida potentiometern med skruvmejseln när det inte hörs något, värdet måste vara cirka 30 ~ 40.

När du blåser på mikrofonen måste värdet vara högre än 100.

Se till att värdet är mindre än 100 när du talar (även högt).

Steg 4: Koden

Här är koden för projektet.

Den visar en födelsedagstårta med ljus på UTFT och spelar "Grattis på födelsedagen" med högtalaren. Kakan är gjord med rektanglar.

Detta program kräver UTFT -biblioteket.

#omfatta

extern uint8_t BigFont ; // ändra dessa värden enligt din skärmmodell 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; void setup () {myGLCD. InitLCD (); myGLCD.setFont (BigFont); myGLCD.fillScr (20, 200, 150); // blå bakgrund myGLCD.setColor (200, 125, 50); // brun tårta myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // vit glasyr myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // röda 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 ljus myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // eld av ljusen myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // grattis på födelsedagen myGLCD.print ("GRATTIS på födelsedagen!", CENTER, 200); för (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // stänger av ljusen myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // och visar "grattis" -meddelandet myGLCD.print ("GRATTIS !!!", CENTRUM, 10); fördröjning (10000); myGLCD.clrScr (); // rensa skärmen efter 10s}}

Rekommenderad: