Мазмуну:

Arduino Туулган торту: 4 кадам
Arduino Туулган торту: 4 кадам

Video: Arduino Туулган торту: 4 кадам

Video: Arduino Туулган торту: 4 кадам
Video: Торт ЦИФРА ☆ Абсолютный ТРЕНД 2024, Июль
Anonim

Бул көрсөтмөдө мен абдан жөнөкөй жана негизги arduino долбоорун жасайм: туулган күн торту!

Туулган күнгө арналган торт UTFT экран калканчында көрсөтүлөт жана спикер "Happy Birthday" музыкасын ойнойт.

Микрофонду үйлөгөнүңүздө шамдар өчөт.

1 -кадам: материалдар

Материалдар
Материалдар
Материалдар
Материалдар
Материалдар
Материалдар
Материалдар
Материалдар

Бул жөнөкөй долбоор үчүн сизге керек болот:

- arduino MEGA

- спикер же ызылдак

- микрофон модулу

- UTFT экраны ардуино калканы

Мен бул долбоорго arduino MEGA тактасын эки себептен улам колдонууну чечтим: анын эс тутуму көп жана казыктары көп.

Сиз бул долбоор үчүн arduino UNO колдоно албайсыз, анткени UTFT экраны туташтырылганда, бардык казыктар жашырылган (микрофон жана динамик үчүн мындан ары жеткиликтүү эмес) жана анын эс тутуму жетишсиз (UTFT китепканасы абдан чоң).

2 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

Динамик arduino D40 жана GND казыктарына туташат.

Микрофон GND ("G"), 5V ("+") жана A10 ("A0") төөнөгүчтөрүнө сайылат.

UTFT экраны кадимки калкан сыяктуу сайылат.

UTFT экран калканы arduino MEGA менен толук шайкеш келбейт: arduino тактасынын USB сайгычы өтө чоң

Бул көйгөйдү чечүү үчүн, UTFT экранын башка ардуино калканчына (узун казыктар менен), анан экөөнү ардуиного коштум.

3 -кадам: Микрофонду калибрлөө

Микрофонду калибрлеңиз
Микрофонду калибрлеңиз
Микрофонду калибрлеңиз
Микрофонду калибрлеңиз

Микрофонду калибрлөө үчүн сизге бурагыч жана компьютер керек болот.

Биринчиден, ардуиного төмөнкү кодду жүктөңүз:

int val = 0;

void setup () {Serial.begin (9600); } void loop () {val = analogRead (10); Serial.println (val); кечиктирүү (100); }

Андан кийин сериялык мониторго барыңыз жана үн жок болгондо потенциометрди бурагыч менен буруп микрофонду калибрлеңиз, мааниси болжол менен 30 ~ 40 болушу керек.

Сиз микрофонду үйлөгөнүңүздө, мааниси 100дөн жогору болушу керек.

Сүйлөгөндө (атүгүл катуу) маани 100дөн кичине экенин текшериңиз.

4 -кадам: Код

Бул жерде долбоордун коду.

Бул UTFTде шамдар менен туулган тортту көрсөтөт жана спикер менен "Туулган күнүң менен" ойнойт. Торт тик бурчтуктар менен жасалат.

Бул программа UTFT китепканасын талап кылат.

#кошуу

extern uint8_t BigFont ; // бул баалуулуктарды 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); // көк фон myGLCD.setColor (200, 125, 50); // күрөң торт myGLCD.fillRect (100, 90, 220, 160); myGLCD.setColor (255, 255, 255); // ак глазур myGLCD.fillRect (100, 90, 220, 105); myGLCD.setColor (255, 50, 50); // кызыл сызыктар myGLCD.fillRect (100, 120, 220, 123); myGLCD.fillRect (100, 140, 220, 143); myGLCD.setColor (255, 255, 0); // сары сызык myGLCD.fillRect (100, 130, 220, 133); myGLCD.setColor (255, 170, 255); // кызгылт шамдар myGLCD.fillRect (128, 70, 132, 90); myGLCD.fillRect (158, 70, 162, 90); myGLCD.fillRect (188, 70, 192, 90); myGLCD.setColor (255, 255, 0); // шамдардын оту myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (0, 255, 0); // бактылуу туулган кабар myGLCD.print ("ТУУЛГАН КҮНҮҢ МЕНЕН!", БОРБОРУ, 200); үчүн (int thisNote = 0; thisNote 100) {myGLCD.setColor (20, 200, 150); // шамдарды өчүрөт myGLCD.fillCircle (130, 62, 5); myGLCD.fillCircle (160, 62, 5); myGLCD.fillCircle (190, 62, 5); myGLCD.setColor (255, 255, 255); // жана "куттуктоолор" билдирүүсүн көрсөтөт myGLCD.print ("КУТТУКТОО !!!", БОРБОРУ, 10); кечигүү (10000); myGLCD.clrScr (); // экранды 10 секунддан кийин тазалаңыз}}

Сунушталууда: