2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
W tej instrukcji zrobię bardzo prosty i podstawowy projekt arduino: tort urodzinowy!
Na ekranie UTFT na arduino wyświetlany jest tort urodzinowy, a głośnik odtwarza muzykę z okazji urodzin.
Kiedy dmuchasz w mikrofon, świece gasną.
Krok 1: Materiały
Do tego prostego projektu potrzebujesz:
- arduino MEGA
- głośnik lub brzęczyk
- moduł mikrofonowy
- osłona arduino ekranu UTFT
Zdecydowałem się użyć do tego projektu płytki arduino MEGA z dwóch powodów: ma dużo pamięci i ma dużo pinów.
Do tego projektu nie można użyć arduino UNO, ponieważ po podłączeniu do niego ekranu UTFT wszystkie piny są schowane (nie ma już dostępnych dla mikrofonu i głośnika) i nie ma wystarczającej ilości pamięci (biblioteka UTFT jest bardzo duży).
Krok 2: Okablowanie
Głośnik wpina się na piny D40 i GND arduino.
Mikrofon wpina się na piny GND („G”), 5V („+”) i A10 („A0”).
Ekran UTFT podłącza się jak zwykły ekran.
Osłona ekranu UTFT nie jest w pełni kompatybilna z arduino MEGA: wtyczka USB płyty arduino jest za duża
Aby rozwiązać ten problem, podłączyłem ekran UTFT do innego nakładki arduino (z dłuższymi pinami), a następnie podłączyłem oba na arduino.
Krok 3: Skalibruj mikrofon
Aby skalibrować mikrofon, potrzebujesz śrubokręta i komputera.
Najpierw prześlij następujący kod do swojego arduino:
wewn wart = 0;
void setup() { Serial.begin(9600); } void loop() { val = analogRead(10); Serial.println(val); opóźnienie (100); }
Następnie przejdź do monitora szeregowego i skalibruj mikrofon obracając potencjometr śrubokrętem, gdy nie ma dźwięku, wartość musi wynosić około 30~40.
Kiedy dmuchasz w mikrofon, wartość musi być wyższa niż 100.
Upewnij się, że wartość jest mniejsza niż 100, gdy mówisz (nawet głośno).
Krok 4: Kodeks
Oto kod projektu.
Wyświetla tort urodzinowy ze świeczkami na UTFT i odtwarza z głośnika „Wszystkiego najlepszego”. Ciasto składa się z prostokątów.
Ten program wymaga biblioteki UTFT.
#włączać
extern uint8_t BigFont; //zmień te wartości zgodnie z Twoim modelem ekranu 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 noteCzas trwania = {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}; wewn wart = 0; void setup() { myGLCD. InitLCD(); mójGLCD.setFont(BigFont); mójGLCD.fillScr(20, 200, 150); //niebieskie tło myGLCD.setColor(200, 125, 50); //brązowe ciasto myGLCD.fillRect(100, 90, 220, 160); mójGLCD.setColor(255, 255, 255); //biały lukier myGLCD.fillRect(100, 90, 220, 105); mójGLCD.setColor(255, 50, 50); //czerwone linie myGLCD.fillRect(100, 120, 220, 123); mójGLCD.fillRect(100, 140, 220, 143); mójGLCD.setColor(255, 255, 0); //żółta linia myGLCD.fillRect(100, 130, 220, 133); mójGLCD.setColor(255, 170, 255); //różowe świece myGLCD.fillRect(128, 70, 132, 90); mójGLCD.fillRect(158, 70, 162, 90); mójGLCD.fillRect(188, 70, 192, 90); mójGLCD.setColor(255, 255, 0); //pożar świec myGLCD.fillCircle(130, 62, 5); myGLCD.fillCircle(160, 62, 5); myGLCD.fillCircle(190, 62, 5); mójGLCD.setColor(0, 255, 0); //wiadomość z okazji urodzin myGLCD.print("WSZYSTKIEGO NAJLEPSZEGO !", CENTRUM, 200); for (int thisNote = 0; thisNote 100) { myGLCD.setColor(20, 200, 150); //wyłącza świece myGLCD.fillCircle(130, 62, 5); myGLCD.fillCircle(160, 62, 5); myGLCD.fillCircle(190, 62, 5); mójGLCD.setColor(255, 255, 255); //i wyświetla komunikat "gratulacje" myGLCD.print("GRATULACJE !!!", CENTRUM, 10); opóźnienie (10000); mójGLCD.clrScr(); //wyczyść ekran po 10s } }