Πίνακας περιεχομένων:

Τούρτα γενεθλίων Arduino: 4 βήματα
Τούρτα γενεθλίων Arduino: 4 βήματα

Βίντεο: Τούρτα γενεθλίων Arduino: 4 βήματα

Βίντεο: Τούρτα γενεθλίων Arduino: 4 βήματα
Βίντεο: Τούρτα Γενεθλίων σε 10' - Vanilla Birthday Cake in 10' 2024, Ιούλιος
Anonim

Σε αυτό το διδακτικό, θα κάνω ένα πολύ απλό και βασικό έργο arduino: μια τούρτα γενεθλίων!

Μια τούρτα γενεθλίων εμφανίζεται στην ασπίδα οθόνης UTFT στο arduino και ένα ηχείο παίζει τη μουσική "Χρόνια πολλά".

Όταν φυσάτε το μικρόφωνο, τα κεριά σβήνουν.

Βήμα 1: Υλικά

Υλικά
Υλικά
Υλικά
Υλικά
Υλικά
Υλικά
Υλικά
Υλικά

Για αυτό το απλό έργο, θα χρειαστείτε:

- ένα arduino MEGA

- ηχείο ή βομβητή

- μονάδα μικροφώνου

- ασπίδα arduino οθόνης UTFT

Αποφάσισα να χρησιμοποιήσω έναν πίνακα arduino MEGA για αυτό το έργο για δύο λόγους: έχει πολλή μνήμη και έχει πολλές καρφίτσες.

Δεν μπορείτε να χρησιμοποιήσετε ένα arduino UNO για αυτό το έργο, επειδή όταν η οθόνη UTFT είναι συνδεδεμένη σε αυτήν, όλες οι ακίδες είναι κρυμμένες (δεν υπάρχουν πλέον διαθέσιμες για το μικρόφωνο και το ηχείο) και δεν έχει αρκετή μνήμη (η βιβλιοθήκη UTFT είναι πολύ μεγάλο).

Βήμα 2: Καλωδίωση

Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση
Καλωδίωση

Το ηχείο συνδέει τις ακίδες D40 και GND του arduino.

Το μικρόφωνο συνδέει τις ακίδες GND ("G"), 5V ("+") και A10 ("A0").

Η οθόνη UTFT συνδέεται σαν κανονική ασπίδα.

Η ασπίδα οθόνης UTFT δεν είναι πλήρως συμβατή με το arduino MEGA: το βύσμα USB της πλακέτας arduino είναι πολύ μεγάλο

Για να διορθώσω αυτό το πρόβλημα, συνδέσα την οθόνη UTFT σε μια άλλη ασπίδα arduino (με μακρύτερες ακίδες), έπειτα συνδέσα και τα δύο στο arduino.

Βήμα 3: Βαθμονομήστε το μικρόφωνο

Βαθμονομήστε το μικρόφωνο
Βαθμονομήστε το μικρόφωνο
Βαθμονομήστε το μικρόφωνο
Βαθμονομήστε το μικρόφωνο

Για να βαθμονομήσετε το μικρόφωνο, θα χρειαστείτε ένα κατσαβίδι και τον υπολογιστή σας.

Αρχικά, ανεβάστε τον ακόλουθο κώδικα στο arduino σας:

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 μελωδία = {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 δευτ.}}

Συνιστάται: