Sommario:

Metronomo basato su microcontrollore: 5 passaggi
Metronomo basato su microcontrollore: 5 passaggi

Video: Metronomo basato su microcontrollore: 5 passaggi

Video: Metronomo basato su microcontrollore: 5 passaggi
Video: 555 Timers - Astable Multivibrator Configuration 2024, Novembre
Anonim
Image
Image

Un metronomo è un dispositivo di temporizzazione utilizzato dai musicisti per tenere traccia dei battiti nelle canzoni e per sviluppare un senso del tempo tra i principianti che stanno imparando un nuovo strumento. Aiuta a mantenere un senso del ritmo che è cruciale nella musica.

Questo metronomo costruito qui può essere utilizzato per impostare il numero di battute per misura e le battute al minuto. Una volta inseriti questi dati di configurazione, emette un segnale acustico in base ai dati accompagnato da un'illuminazione appropriata tramite LED. I dati di configurazione vengono visualizzati su uno schermo LCD.

Passaggio 1: componenti richiesti:

·

  • Microcontrollore Atmega8A
  • · Display LCD 16*2
  • · Cicalino piezoelettrico
  • · LED (verde, rosso)
  • · Resistori (220e, 330e, 1k, 5.6k)
  • · Pulsanti (2* antibloccaggio, 1* bloccante)
  • · Batteria a bottone CR2032 3V (*2)
  • Portabatterie a moneta (*2)
  • · Connettore Relimate (polarizzato) a 6 pin

Passaggio 2: realizzare il circuito

Effettuare i collegamenti del circuito come mostrato nell'immagine su una veroboard e saldare i collegamenti correttamente

Passaggio 3: caratteristiche del metronomo

L'interfaccia del metronomo è occupata principalmente dallo schermo lcd. Sopra c'è il microcontrollore da 8A posizionato centralmente con i LED e il buzzer a destra. I tre interruttori e il connettore Relimate sono posizionati in alto.

L'intero progetto è alimentato solo da due batterie a bottone (in serie @6V 220mAh) con un'autonomia stimata da 20 giorni a 1 mese (non continuamente). Quindi è moderatamente efficiente dal punto di vista energetico e ha un fabbisogno di corrente di 3 – 5 mA.

L'interruttore autobloccante è posizionato all'estrema sinistra ed è il pulsante ON/OFF. Il pulsante al centro è il pulsante Setup e il pulsante a destra viene utilizzato per modificare i valori per bpm e battiti (per battuta).

Quando si preme l'interruttore ON/OFF, il lcd si accende e visualizza il valore delle battute per misura. Attende 3 secondi che l'utente modifichi il valore, dopodiché prende il valore risultante come input. Questo valore varia tra 1/4, 2/4, 3/4, 4/4.

Quindi visualizza i battiti al minuto (bpm) e attende nuovamente per 3 secondi che l'utente modifichi il valore, dopodiché imposta il valore particolare. Questo tempo di attesa di 3 secondi viene calibrato dopo che l'utente ha modificato un valore. I valori bpm possono variare da 30 a 240. Premendo il pulsante Setup durante l'impostazione bpm si ripristina il valore a 30 bpm, utile per ridurre la quantità di clic del pulsante. I valori bpm sono multipli di 5.

Al termine della configurazione, la retroilluminazione lcd si spegne per risparmiare la batteria. Il cicalino emette un segnale acustico per ogni battito ei LED lampeggiano uno alla volta alternativamente per ogni battito. Per modificare i valori, si preme il pulsante Setup. Dopo averlo fatto, la retroilluminazione dell'affissione a cristalli liquidi si accende e il prompt dei battiti appare come menzionato prima con la stessa procedura in seguito.

Il microcontrollore Atmega8A è costituito da 500 byte di EEPROM il che significa che qualunque valore di battute e bpm venga inserito, rimane memorizzato anche dopo lo spegnimento del metronomo. Quindi riaccendendolo, lo fa riprendere con gli stessi dati che erano stati inseriti prima.

Il connettore Relimate è in realtà un'intestazione SPI che può essere utilizzata per due scopi. Può essere utilizzato per riprogrammare il microcontrollore Atmega8A per aggiornare il firmware e aggiungere nuove funzionalità al metronomo. In secondo luogo, un alimentatore esterno può essere utilizzato anche per alimentare il metronomo per gli utenti più esigenti. Ma questo alimentatore non deve essere maggiore di 5,5 volt e prevale sull'interruttore ON/OFF. Per motivi di sicurezza, questo interruttore DEVE essere spento in modo che l'alimentazione esterna non vada in cortocircuito con le batterie integrate.

Passaggio 4: descrizione

Questo progetto è realizzato utilizzando il microcontrollore Atmel Atmega8A che è programmato utilizzando l'IDE Arduino tramite un Arduino Uno/Mega/Nano utilizzato come programmatore ISP.

Questo microcontrollore è una versione con caratteristiche inferiori dell'Atmel Atmega328p che è ampiamente utilizzato in Arduino Uno. L'Atmega8A comprende una memoria programmabile da 8Kb con 1Kb di RAM. È un microcontrollore a 8 bit che funziona alla stessa frequenza del 328p, ovvero 16 Mhz.

In questo progetto, poiché il consumo di corrente è un aspetto importante, la frequenza di clock è stata ridotta e viene utilizzato l'oscillatore interno da 1 Mhz. Ciò riduce notevolmente il fabbisogno di corrente a circa 3,5 mA a 3,3 V e 5 mA a 4,5 V.

L'IDE Arduino non ha la possibilità di programmare questo microcontrollore. Quindi è stato installato un pacchetto "Minicore" (plugin) per eseguire l'8A con il suo oscillatore interno utilizzando un bootloader Optiboot. È stato notato che il fabbisogno di potenza del progetto aumenta con l'aumentare della tensione. Quindi, per un utilizzo ottimale della potenza, il microcontrollore è stato impostato per funzionare a 1 MHz con una singola batteria a bottone da 3 V che assorbe solo 3,5 mA. Ma è stato osservato che l'LCD non funzionava correttamente a una tensione così bassa. Quindi la decisione di utilizzare due batterie a bottone in serie è stata applicata per portare la tensione a 6V. Ma ciò significava che il consumo di corrente aumentava a 15 mA, il che rappresentava un enorme svantaggio poiché la durata della batteria sarebbe stata molto scarsa. Inoltre ha superato il limite di tensione di sicurezza di 5,5 V del microcontrollore da 8 A.

Quindi un resistore da 330 ohm è stato collegato in serie con l'alimentatore da 6 V per eliminare questo problema. Il resistore provoca fondamentalmente una caduta di tensione su se stesso per abbassare il livello di tensione entro 5,5 V per eseguire in sicurezza il microcontrollore. Inoltre il valore di 330 è stato scelto prendendo in considerazione vari fattori:

  • · L'obiettivo era far funzionare l'8A al voltaggio più basso possibile per risparmiare energia.
  • · È stato osservato che l'LCD ha smesso di funzionare al di sotto di 3,2 V sebbene il microcontrollore funzionasse ancora
  • · Questo valore di 330 assicura che le cadute di tensione agli estremi siano esattamente precise per sfruttare appieno le batterie a bottone.
  • · Quando le celle a bottone erano al loro picco, la tensione era di circa 6,3 V, con gli 8 A che ricevevano una tensione effettiva di 4,6 – 4,7 V (@ 5 mA). E quando le batterie erano quasi esaurite, la tensione era di circa 4 V con gli 8 A e l'LCD che riceveva appena una tensione sufficiente, ovvero 3,2 V per funzionare correttamente. (@3.5mA)
  • · Al di sotto del livello di 4v delle batterie, erano effettivamente inutili senza alcun succo rimasto per alimentare qualsiasi cosa. La caduta di tensione attraverso il resistore varia per tutto il tempo poiché il consumo di corrente del microcontrollore da 8 A e dell'LCD si riduce con la riduzione della tensione che essenzialmente aiuta ad aumentare la durata della batteria.

Il display LCD 16*2 è stato programmato utilizzando la libreria LiquidCrystal integrata dell'IDE Arduino. Utilizza 6 pin dati del microcontrollore 8A. Inoltre, la sua luminosità e il contrasto sono stati controllati utilizzando due pin di dati. Ciò è stato fatto in modo da non utilizzare un componente aggiuntivo, ad esempio un potenziometro. Invece, la funzione PWM del pin dati D9 è stata utilizzata per regolare il contrasto dello schermo. Anche la retroilluminazione dell'affissione a cristalli liquidi doveva essere spenta quando non necessaria, quindi questo non sarebbe stato possibile senza l'utilizzo di un pin dati per alimentarlo. Un resistore da 220 ohm è stato utilizzato per limitare la corrente attraverso il LED di retroilluminazione.

Anche il Buzzer e i LED sono stati collegati ai pin dati dell'8A (uno per ciascuno). È stato utilizzato un resistore da 5,6 k ohm per limitare la corrente attraverso il LED rosso mentre è stato utilizzato un resistore da 1 k ohm per quello verde. I valori dei resistori sono stati scelti acquisendo uno sweet spot tra luminosità e consumo di corrente.

Il pulsante ON/OFF non è collegato a un pin dati ed è semplicemente un interruttore che cambia il progetto. Uno dei suoi terminali si collega alla resistenza da 330 ohm mentre l'altro si collega ai pin Vcc dell'lcd e dell'8A. Gli altri due pulsanti sono collegati a pin dati che vengono tirati internamente per fornire tensione tramite software. Ciò è necessario per il funzionamento degli interruttori.

Inoltre il pin dati, a cui si connette il pulsante Setup, è un pin di interruzione hardware. La sua routine di servizio di interruzione (ISR) è attivata nell'IDE di Arduino. Ciò significa che ogni volta che l'utente desidera eseguire il menu di configurazione, l'8A sospende la sua attuale operazione di funzionamento come metronomo ed esegue l'ISR che sostanzialmente attiva il menu di configurazione. In caso contrario, l'utente non sarebbe in grado di accedere al menu Setup.

L'opzione EEPROM sopra menzionata fa in modo che i dati inseriti rimangano memorizzati anche dopo lo spegnimento della scheda. E l'intestazione SPI comprende 6 pin: Vcc, Gnd, MOSI, MISO, SCK, RST. Questo fa parte del protocollo SPI e, come accennato in precedenza, un programmatore ISP può essere utilizzato per programmare nuovamente l'8A per aggiungere nuove funzionalità o altro. Il pin Vcc è isolato dal terminale positivo della batteria e quindi il Metronome offre la possibilità di utilizzare un alimentatore esterno tenendo conto delle restrizioni menzionate prima.

L'intero progetto è stato realizzato in Veroboard saldando i singoli componenti e gli opportuni collegamenti secondo lo schema elettrico.

Consigliato: