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

Μετρονόμος βασισμένος σε μικροελεγκτή: 5 βήματα
Μετρονόμος βασισμένος σε μικροελεγκτή: 5 βήματα

Βίντεο: Μετρονόμος βασισμένος σε μικροελεγκτή: 5 βήματα

Βίντεο: Μετρονόμος βασισμένος σε μικροελεγκτή: 5 βήματα
Βίντεο: Δόξα Καγιούλη & Κώστας Παρίσσης - Σπασμένη (Official Animated Video) 2024, Ιούλιος
Anonim
Image
Image

Ο μετρονόμος είναι μια συσκευή χρονισμού που χρησιμοποιείται από τους μουσικούς για να παρακολουθούν τους ρυθμούς των τραγουδιών και να αναπτύσσουν μια αίσθηση χρονισμού μεταξύ των αρχάριων που μαθαίνουν ένα νέο όργανο. Βοηθά στη διατήρηση της αίσθησης του ρυθμού που είναι ζωτικής σημασίας στη μουσική.

Αυτός ο μετρονόμος που χτίστηκε εδώ μπορεί να χρησιμοποιηθεί για τον καθορισμό του αριθμού των παλμών ανά μπαρ και των παλμών ανά λεπτό. Μόλις εισαχθούν αυτά τα δεδομένα ρύθμισης, ηχεί σύμφωνα με τα δεδομένα που συνοδεύονται από κατάλληλο φωτισμό χρησιμοποιώντας LED. Τα δεδομένα εγκατάστασης εμφανίζονται σε μια οθόνη LCD.

Βήμα 1: Απαιτούμενα εξαρτήματα:

·

  • Μικροελεγκτής Atmega8A
  • · Οθόνη 16*2 LCD
  • · Piezo Buzzer
  • · LED (πράσινο, κόκκινο)
  • · Αντιστάσεις (220e, 330e, 1k, 5,6k)
  • · Κουμπιά (2* αντικλείδωμα, 1* κλείδωμα)
  • · Μπαταρία 3V CR2032 Coin Cell Battery (*2)
  • Κάτοχος μπαταρίας νομισμάτων (*2)
  • · Συνδετήρας 6pin Relimate (πολωμένος)

Βήμα 2: Κάνοντας το κύκλωμα

Πραγματοποιήστε τις συνδέσεις κυκλώματος όπως φαίνεται στην εικόνα σε ένα veroboard και κολλήστε σωστά τις συνδέσεις

Βήμα 3: Χαρακτηριστικά του Μετρονόμου

Η διεπαφή του μετρονόμου καταλαμβάνεται κυρίως από την οθόνη LCD. Πάνω από αυτό είναι ο μικροελεγκτής 8Α τοποθετημένος κεντρικά με τα LED και το βομβητή στα δεξιά. Οι τρεις διακόπτες και ο σύνδεσμος Relimate τοποθετούνται στο επάνω μέρος.

Όλο το έργο τροφοδοτείται από δύο μπαταρίες σε σχήμα νομίσματος μόνο (σε σειρά @6V 220mAh) με εκτιμώμενο χρόνο λειτουργίας 20 ημέρες έως 1 μήνα (όχι συνεχώς). Ως εκ τούτου, είναι μέτρια ενεργειακά αποδοτική και έχει τρέχουσα απαίτηση 3 - 5 mA.

Ο διακόπτης αυτόματου κλειδώματος τοποθετείται στο αριστερό άκρο και είναι το κουμπί ON/OFF. Το κουμπί στη μέση είναι το κουμπί Setup και το κουμπί στα δεξιά χρησιμοποιείται για την αλλαγή των τιμών για τα bpm και τα beats (ανά γραμμή).

Όταν πατήσετε το διακόπτη ON/OFF, το lcd ενεργοποιείται και εμφανίζει την τιμή των παλμών ανά γραμμή. Περιμένει 3 δευτερόλεπτα για να αλλάξει ο χρήστης την τιμή μετά την οποία λαμβάνει την τιμή που προκύπτει ως είσοδο. Αυτή η τιμή κυμαίνεται μεταξύ 1/4, 2/4, 3/4, 4/4.

Στη συνέχεια, εμφανίζει τους ρυθμούς ανά λεπτό (bpm) και περιμένει ξανά για 3 δευτερόλεπτα μέχρι ο χρήστης να αλλάξει την τιμή μετά την οποία ορίζει τη συγκεκριμένη τιμή. Αυτός ο χρόνος αναμονής 3 δευτερολέπτων βαθμονομείται αφού ο χρήστης αλλάξει μια τιμή. Οι τιμές bpm μπορεί να κυμαίνονται από 30 έως 240. Πατώντας το κουμπί Setup κατά τη διάρκεια της ρύθμισης bpm επαναφέρεται η τιμή του στα 30 bpm, κάτι που βοηθά στη μείωση του αριθμού των κλικ κουμπιών. Οι τιμές bpm είναι πολλαπλάσια του 5.

Αφού ολοκληρωθεί η ρύθμιση, ο οπίσθιος φωτισμός LCD απενεργοποιείται για εξοικονόμηση μπαταρίας. Το Buzzer ηχεί μια φορά για κάθε ρυθμό και τα LED αναβοσβήνουν ένα κάθε φορά εναλλάξ για κάθε ρυθμό. Για να αλλάξετε τιμές, πατάτε το κουμπί Setup. Μόλις γίνει αυτό, ενεργοποιείται ο οπίσθιος φωτισμός LCD και εμφανίζεται η ένδειξη beat όπως αναφέρθηκε προηγουμένως με την ίδια διαδικασία στη συνέχεια.

Ο μικροελεγκτής Atmega8A αποτελείται από 500 byte EEPROM, πράγμα που σημαίνει ότι όποιες τιμές των παλμών και bpm εισάγονται, παραμένουν αποθηκευμένες ακόμη και μετά την απενεργοποίηση του μετρονόμου. Επομένως, ενεργοποιώντας το ξανά, το κάνει να συνεχίσει με τα ίδια δεδομένα που είχαν εισαχθεί πριν.

Ο σύνδεσμος Relimate είναι στην πραγματικότητα μια κεφαλίδα SPI που μπορεί να χρησιμοποιηθεί για δύο σκοπούς. Μπορεί να χρησιμοποιηθεί για τον επαναπρογραμματισμό του μικροελεγκτή Atmega8A για την ενημέρωση του υλικολογισμικού του και την προσθήκη νέων δυνατοτήτων στον μετρονόμο. Δεύτερον, ένα εξωτερικό τροφοδοτικό μπορεί επίσης να χρησιμοποιηθεί για την τροφοδοσία του μετρονόμου για σκληροπυρηνικούς χρήστες. Αλλά αυτό το τροφοδοτικό δεν πρέπει να είναι μεγαλύτερο από 5,5 βολτ και υπερισχύει του διακόπτη ON/OFF. Για λόγους ασφαλείας, αυτός ο διακόπτης ΠΡΕΠΕΙ να είναι απενεργοποιημένος έτσι ώστε να μην βραχυκυκλώνει η εξωτερική παροχή με τις ενσωματωμένες μπαταρίες.

Βήμα 4: Περιγραφή

Αυτό το έργο γίνεται χρησιμοποιώντας τον μικροελεγκτή Atmel Atmega8A, ο οποίος προγραμματίζεται χρησιμοποιώντας το Arduino IDE μέσω ενός Arduino Uno/Mega/Nano που χρησιμοποιείται ως προγραμματιστής ISP.

Αυτός ο μικροελεγκτής είναι μια μικρότερη έκδοση του Atmel Atmega328p που χρησιμοποιείται εκτενώς στο Arduino Uno. Το Atmega8A περιλαμβάνει προγραμματιζόμενη μνήμη 8Kb με 1Kb RAM. Είναι ένας μικροελεγκτής 8 bit που λειτουργεί στην ίδια συχνότητα με το 328p, δηλαδή 16Mhz.

Σε αυτό το έργο, καθώς η τρέχουσα κατανάλωση είναι μια σημαντική πτυχή, η συχνότητα του ρολογιού έχει μειωθεί και χρησιμοποιείται ο εσωτερικός ταλαντωτής 1 Mhz. Αυτό μειώνει σημαντικά την τρέχουσα απαίτηση σε περίπου 3,5 mA @3,3V και 5mA @4,5V.

Το Arduino IDE δεν έχει τη δυνατότητα να προγραμματίσει αυτόν τον μικροελεγκτή. Ως εκ τούτου, ένα πακέτο "Minicore" (plugin) εγκαταστάθηκε για να τρέξει το 8Α με τον εσωτερικό ταλαντωτή του χρησιμοποιώντας ένα πρόγραμμα εκκίνησης Optiboot. Παρατηρήθηκε ότι η ισχύς του έργου αυξήθηκε με την αύξηση της τάσης. Ως εκ τούτου, για τη βέλτιστη αξιοποίηση της ισχύος, ο μικροελεγκτής ορίστηκε να λειτουργεί στα 1 MHz με μια μπαταρία νομισμάτων 3V να αντλεί μόλις 3,5 mA. Παρατηρήθηκε όμως ότι το LCD δεν λειτουργούσε σωστά σε τόσο χαμηλή τάση. Ως εκ τούτου, η απόφαση χρήσης δύο μπαταριών σε σειρά εφαρμόστηκε για να χτυπήσει την τάση στα 6V. Αλλά αυτό σήμαινε ότι η τρέχουσα κατανάλωση αυξήθηκε στα 15mA που ήταν ένα τεράστιο μειονέκτημα καθώς η διάρκεια ζωής της μπαταρίας θα γινόταν πολύ φτωχή. Επίσης, ξεπέρασε το όριο ασφαλούς τάσης των 5,5V του μικροελεγκτή 8Α.

Ως εκ τούτου, μια αντίσταση 330 ohm συνδέθηκε σε σειρά με το τροφοδοτικό 6V για να απαλλαγούμε από αυτό το πρόβλημα. Η αντίσταση ουσιαστικά προκαλεί πτώση τάσης από μόνη της για να μειώσει το επίπεδο τάσης εντός 5,5V για να λειτουργήσει με ασφάλεια ο μικροελεγκτής. Επιπλέον, η τιμή του 330 επιλέχθηκε λαμβάνοντας υπόψη διάφορους παράγοντες:

  • · Ο στόχος ήταν να λειτουργήσει το 8Α σε όσο το δυνατόν χαμηλότερη τάση για εξοικονόμηση ενέργειας.
  • · Παρατηρήθηκε ότι το lcd σταμάτησε να λειτουργεί κάτω από τα 3.2V αν και ο μικροελεγκτής εξακολουθούσε να λειτουργεί
  • · Αυτή η τιμή 330 διασφαλίζει ότι η πτώση τάσης στα άκρα είναι ακριβώς ακριβής για πλήρη χρήση των μπαταριών νομισμάτων.
  • · Όταν τα κελιά νομισμάτων ήταν στο αποκορύφωμά τους, η τάση ήταν περίπου 6,3V, με το 8Α να λαμβάνει αποτελεσματική τάση 4,6 - 4,7 V (@ 5mA). Και όταν οι μπαταρίες είχαν σχεδόν ξεραθεί, η τάση ήταν γύρω στα 4V με το 8Α και το LCD να δέχεται αρκετή τάση, δηλαδή 3,2V για να λειτουργεί σωστά. (@3.5mA)
  • · Κάτω από το επίπεδο 4v των μπαταριών, ήταν ουσιαστικά άχρηστα χωρίς να αφήνει χυμό για να τροφοδοτήσει τίποτα. Η πτώση τάσης στην αντίσταση ποικίλλει καθ 'όλη τη διάρκεια, καθώς η τρέχουσα κατανάλωση του μικροελεγκτή 8Α και του LCD μειώνεται με τη μείωση της τάσης, η οποία ουσιαστικά βοηθά στην αύξηση της διάρκειας ζωής της μπαταρίας.

Η οθόνη LCD 16*2 προγραμματίστηκε χρησιμοποιώντας την ενσωματωμένη βιβλιοθήκη LiquidCrystal του Arduino IDE. Χρησιμοποιεί 6 ακίδες δεδομένων του μικροελεγκτή 8Α. Επιπλέον, η φωτεινότητα και η αντίθεση του ελέγχονταν χρησιμοποιώντας δύο ακίδες δεδομένων. Αυτό έγινε έτσι ώστε να μην χρησιμοποιηθεί ένα επιπλέον συστατικό, δηλαδή ένα ποτενσιόμετρο. Αντ 'αυτού, η λειτουργία PWM της ακίδας δεδομένων D9 χρησιμοποιήθηκε για τη ρύθμιση της αντίθεσης της οθόνης. Επίσης, ο οπίσθιος φωτισμός LCD έπρεπε να είναι απενεργοποιημένος όταν δεν απαιτείται, οπότε αυτό δεν θα ήταν δυνατό χωρίς τη χρήση ενός πείρου δεδομένων για την τροφοδοσία του. Χρησιμοποιήθηκε αντίσταση 220 ohm για τον περιορισμό του ρεύματος στο LED οπίσθιου φωτισμού.

Το Buzzer και οι λυχνίες LED συνδέθηκαν επίσης με τις ακίδες δεδομένων του 8Α (μία για κάθε μία). Χρησιμοποιήθηκε αντίσταση 5,6 k ohm για να περιοριστεί το ρεύμα στο κόκκινο LED ενώ ένα 1 ohm χρησιμοποιήθηκε για το πράσινο. Οι τιμές αντίστασης έχουν επιλεγεί αποκτώντας ένα γλυκό σημείο μεταξύ φωτεινότητας και κατανάλωσης ρεύματος.

Το κουμπί ON/OFF δεν είναι συνδεδεμένο με μια καρφίτσα δεδομένων και είναι απλώς ένας διακόπτης που αλλάζει το έργο. Ένας από τους ακροδέκτες του συνδέεται με την αντίσταση 330 ohm ενώ ο άλλος συνδέεται με τις ακίδες Vcc του LCD και του 8A. Τα δύο άλλα κουμπιά συνδέονται με ακίδες δεδομένων που τράβηξαν εσωτερικά για να τροφοδοτήσουν τάση μέσω λογισμικού. Αυτό είναι απαραίτητο για τη λειτουργία των διακοπτών.

Επιπλέον, η καρφίτσα δεδομένων, στο οποίο συνδέεται το κουμπί εγκατάστασης, είναι μια καρφίτσα διακοπής υλικού. Η ρουτίνα υπηρεσιών διακοπής (ISR) είναι ενεργοποιημένη στο Arduino IDE. Αυτό σημαίνει ότι κάθε φορά που ο χρήστης θέλει να εκτελέσει το μενού ρύθμισης, το 8Α αναστέλλει την τρέχουσα λειτουργία του ως μετρονόμος και εκτελεί το ISR το οποίο ουσιαστικά ενεργοποιεί το μενού Setup. Διαφορετικά, ο χρήστης δεν θα μπορεί να έχει πρόσβαση στο μενού Ρύθμιση.

Η επιλογή EEPROM που αναφέρθηκε προηγουμένως διασφαλίζει ότι τα δεδομένα που εισάγονται παραμένουν αποθηκευμένα ακόμη και μετά την απενεργοποίηση της πλακέτας. Και η κεφαλίδα SPI περιλαμβάνει 6 ακίδες - Vcc, Gnd, MOSI, MISO, SCK, RST. Αυτό είναι μέρος του πρωτοκόλλου SPI και όπως αναφέρθηκε προηγουμένως, ένας προγραμματιστής ISP μπορεί να χρησιμοποιηθεί για να προγραμματίσει ξανά το 8Α για την προσθήκη νέων δυνατοτήτων ή οτιδήποτε άλλο. Ο πείρος Vcc είναι απομονωμένος από τον θετικό ακροδέκτη μπαταρίας και ως εκ τούτου ο Μετρονόμος παρέχει την επιλογή χρήσης εξωτερικής τροφοδοσίας λαμβάνοντας υπόψη τους περιορισμούς που αναφέρθηκαν προηγουμένως.

Ολόκληρο το έργο κατασκευάστηκε σε Veroboard με συγκόλληση των επιμέρους εξαρτημάτων και των κατάλληλων συνδέσεων σύμφωνα με το διάγραμμα κυκλώματος.

Συνιστάται: