2025 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2025-01-13 06:58
V tem navodilu bom naredil zelo preprost in osnovni projekt arduino: rojstnodnevno torto!
Rojstnodnevna torta je prikazana na zaslonu UTFT na arduinu, zvočnik pa predvaja glasbo "Happy birthday".
Ko pihate v mikrofon, se sveče ugasnejo.
1. korak: Materiali
Za ta preprost projekt boste potrebovali:
- arduino MEGA
- zvočnik ali zvočni signal
- mikrofonski modul
- arduino ščit za zaslon UTFT
Odločil sem se, da bom za ta projekt uporabil arduino MEGA ploščo iz dveh razlogov: ima veliko pomnilnika in ima veliko zatičev.
Za ta projekt ne morete uporabiti arduino UNO, ker ko je zaslon UTFT priključen, so vsi zatiči skriti (za mikrofon in zvočnik ni več na voljo) in nima dovolj pomnilnika (knjižnica UTFT je zelo velik).
2. korak: Ožičenje
Zvočnik se priključi na nožici D40 in GND arduina.
Mikrofon se priključi na nožice GND ("G"), 5V ("+") in A10 ("A0").
Zaslon UTFT se priklopi kot običajen ščit.
Zaščita zaslona UTFT ni popolnoma združljiva z arduino MEGA: vtič USB na plošči arduino je prevelik
Če želite odpraviti to težavo, sem zaslon UTFT priključil na drug arduino ščit (z daljšimi zatiči), nato pa sem oboje priključil na arduino.
3. korak: Umerite mikrofon
Za umerjanje mikrofona potrebujete izvijač in računalnik.
Najprej naložite naslednjo kodo v svoj arduino:
int val = 0;
void setup () {Serial.begin (9600); } void loop () {val = analogRead (10); Serial.println (val); zamuda (100); }
Nato pojdite na serijski monitor in kalibrirajte mikrofon tako, da z izvijačem zavrtite potenciometer, če ni zvoka, vrednost mora biti približno 30 ~ 40.
Ko pišete v mikrofon, mora biti vrednost višja od 100.
Ko govorite (tudi glasno), se prepričajte, da je vrednost manjša od 100.
4. korak: Koda
Tukaj je koda projekta.
Na UTFT prikazuje rojstnodnevno torto s svečami in z zvočnikom predvaja "Srečen rojstni dan". Torta je narejena iz pravokotnikov.
Ta program zahteva knjižnico UTFT.
#vključi
zunanji uint8_t BigFont ; // spremenite te vrednosti glede na model zaslona 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); // modro ozadje myGLCD.setColor (200, 125, 50); // rjava torta myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // bela glazura myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // rdeče črte myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // rumena črta myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // roza sveče myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // ogenj sveč myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // sporočilo o rojstnem dnevu myGLCD.print ("HAPPY BIRTHDAY!", CENTER, 200); for (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // izklopi sveče myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // in prikaže sporočilo "čestitke" myGLCD.print ("ČESTITAMO !!!", CENTER, 10); zamuda (10000); myGLCD.clrScr (); // po 10 sekundah počisti zaslon}}