Talaan ng mga Nilalaman:

Arduino Birthday Cake: 4 na Hakbang
Arduino Birthday Cake: 4 na Hakbang

Video: Arduino Birthday Cake: 4 na Hakbang

Video: Arduino Birthday Cake: 4 na Hakbang
Video: 4 Levels of Birthday Cake: Amateur to Food Scientist | Epicurious 2024, Nobyembre
Anonim

Sa itinuturo na ito, gagawa ako ng isang napaka-simple at pangunahing proyekto ng arduino: isang cake ng kaarawan!

Ang isang cake ng kaarawan ay ipinapakita sa screen ng UTFT na kalasag sa arduino at ang isang speaker ay tumutugtog ng "Maligayang kaarawan" na musika.

Kapag pumutok ka sa mikropono, patay ang mga kandila.

Hakbang 1: Mga Kagamitan

Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan
Mga Kagamitan

Para sa simpleng proyekto na ito, kakailanganin mo ang:

- isang arduino MEGA

- isang speaker o isang buzzer

- isang module ng mikropono

- isang UTFT screen arduino kalasag

Nagpasya akong gumamit ng isang arduino MEGA board para sa proyektong ito sa dalawang kadahilanan: mayroon itong maraming memorya at mayroon itong maraming mga pin.

Hindi mo maaaring gamitin ang isang arduino UNO para sa proyektong ito, dahil kapag naka-plug dito ang UTFT screen lahat ng mga pin ay nakatago (wala nang magagamit para sa mikropono at speaker), at wala itong sapat na memorya (ang UTFT library ay Napakalaki).

Hakbang 2: Mga kable

Kable
Kable
Kable
Kable
Kable
Kable
Kable
Kable

Ang plug ng speaker sa mga pin na D40 at GND ng arduino.

Ang plugs ng mikropono sa mga pin na GND ("G"), 5V ("+") at A10 ("A0").

Ang UTFT screen plugs tulad ng isang regular na kalasag.

Ang kalasag ng screen ng UTFT ay hindi ganap na katugma sa arduino MEGA: ang USB plug ng arduino board ay masyadong malaki

Upang ayusin ang problemang ito, isinaksak ko ang screen ng UTFT sa iba pang kalasag ng arduino (na may mas mahahabang mga pin), pagkatapos ay isinaksak ko ang pareho sa arduino.

Hakbang 3: I-calibrate ang Mikropono

I-calibrate ang Mikropono
I-calibrate ang Mikropono
I-calibrate ang Mikropono
I-calibrate ang Mikropono

Upang mai-calibrate ang mikropono, kakailanganin mo ng isang distornilyador at ang iyong computer.

Una, i-upload ang sumusunod na code sa iyong arduino:

int val = 0;

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

Pagkatapos ay pumunta sa serial monitor at i-calibrate ang mikropono sa pamamagitan ng pag-on ng potensyomiter gamit ang distornilyador kapag walang tunog, ang halaga ay dapat na humigit-kumulang na 30 ~ 40.

Kapag pumutok ka sa mikropono, ang halaga ay dapat na mas mataas sa 100.

Tiyaking ang halaga ay mas maliit sa 100 kapag nagsasalita ka (kahit na malakas).

Hakbang 4: Ang Code

Narito ang code ng proyekto.

Ipinapakita nito ang isang cake ng kaarawan na may mga kandila sa UTFT at nilalaro ang "Maligayang kaarawan" kasama ang nagsasalita. Ang cake ay gawa sa mga parihaba.

Ang program na ito ay nangangailangan ng UTFT library.

# isama

extern uint8_t BigFont ; // baguhin ang mga halagang ito ayon sa modelo ng iyong screen UTFT myGLCD (ITDB28, A5, A4, A3, A2); int melody = {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); // blue background myGLCD.setColor (200, 125, 50); // brown cake myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // white icing myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // red lines myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // yellow line myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // pink candles myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // sunog ng mga kandila myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // happy birthday message myGLCD.print ("HAPPY BIRTHDAY!", CENTER, 200); para sa (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // pinapatay ang mga kandila myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // at ipinapakita ang "pagbati" na mensahe myGLCD.print ("CONGRATULATIONS !!!", CENTER, 10); pagkaantala (10000); myGLCD.clrScr (); // clear screen pagkalipas ng 10s}}

Inirerekumendang: