Ogni volta che andiamo a votare per le elezioni, vediamo macchine per il voto elettronico. In questo progetto progetteremo e svilupperemo una semplice macchina per il voto utilizzando il microcontrollore ATmega32A. Anche se possiamo usare il controller per avere più di 32 dispositivi di voto, per mantenere tutto semplice creeremo un sistema di voto per una dimensione di quattro persone.Avremo quattro pulsanti per quattro persone e ogni volta che un pulsante viene premuto, un il voto vale per la persona corrispondente e il numero di voti che ogni persona ottiene sul display LCD.
Componenti richiesti
Hardware:
ATMEGA32
Alimentazione (5v)
PROGRAMMATORE AVR-ISP
JHD_162ALCD (LCD 16x2)
Condensatore 100nF (cinque pezzi), condensatore 100uF (collegato attraverso l'alimentazione)
pulsante (cinque pezzi), Resistenza da 10KΩ (cinque pezzi).
Software:
Atmel studio 6.1
progisp o magia flash.
Schema del circuito e spiegazione del funzionamento
Come mostrato nel circuito della macchina per il voto elettronico sopra , PORTA del microcontrollore ATMEGA32 è collegato alla porta dati dell'LCD 16x2. Qui bisogna ricordarsi di disabilitare la comunicazione JTAG nel PORTC di ATMEGA modificando i fuse bytes, se si vuole usare il PORTC come una normale porta di comunicazione. In 16x2 LCD, ci sono 16 pin in tutto se c'è una retroilluminazione, se non c'è retroilluminazione ci saranno 14 pin. Si può alimentare o lasciare i perni della retroilluminazione. Ora nei 14 pin ci sono 8 pin dati (7-14 o D0-D7), 2 pin di alimentazione (1 & 2 o VSS & VDD o gnd & + 5v), 3 ° pin per il controllo del contrasto (VEE-controlla quanto dovrebbero essere spessi i caratteri mostrato), 3 pin di controllo (RS & RW & E).
Nel circuito, puoi osservare che ho preso solo due pin di controllo in quanto questo dà la flessibilità di una migliore comprensione. Il bit di contrasto e READ / WRITE non sono usati spesso, quindi possono essere cortocircuitati a massa. Questo mette l'LCD nel più alto contrasto e modalità di lettura. Abbiamo solo bisogno di controllare i pin ENABLE e RS per inviare caratteri e dati di conseguenza.
Di seguito sono riportati i collegamenti effettuati per l'LCD:
PIN1 o VSS - massa
PIN2 o VDD o VCC - alimentazione + 5v
PIN3 o VEE - terra (offre il massimo contrasto migliore per un principiante)
PIN4 o RS (selezione registro) - PD6 di uC
PIN5 o RW (lettura / scrittura) - massa (mette l'LCD in modalità di lettura facilita la comunicazione per l'utente)
PIN6 o E (Abilita) - PD5 di uC
PIN7 o D0 - PA0 di uC
PIN8 o D1 - PA1 di uC
PIN9 o D2 - PA2 di uC
PIN10 o D3 - PA3 di uC
PIN11 o D4 - PA4 di uC
PIN12 o D5 - PA5 di uC
PIN13 o D6 - PA6 di uC
PIN14 o D7-- PA7 di uC
Nel circuito puoi vedere che abbiamo usato la comunicazione a 8 bit (D0-D7), tuttavia questo non è obbligatorio. Possiamo usare la comunicazione a 4 bit (D4-D7) ma con la comunicazione a 4 bit il programma diventa un po 'complesso, quindi sono andato con la comunicazione a 8 bit.
Quindi dalla semplice osservazione della tabella sopra stiamo collegando 10 pin dell'LCD al controller in cui 8 pin sono pin dati e 2 pin per il controllo. Ci sono cinque pulsanti qui presenti, quattro per aumentare i voti dei candidati e il quinto per azzerare i voti del candidato.
I condensatori qui presenti servono ad annullare l'effetto di rimbalzo dei pulsanti. Se vengono rimossi, il controller potrebbe contare più di uno ogni volta che viene premuto il pulsante. Le resistenze collegate per i pin servono per limitare la corrente, quando il pulsante viene premuto per abbassare il pin a terra.
Ogni volta che si preme un pulsante, il pin corrispondente del controller viene abbassato a terra e quindi il controller riconosce che un determinato pulsante è stato premuto e l'azione corrispondente da intraprendere, potrebbe aumentare i voti candidati o reimpostare i voti a seconda del pulsante premuto.
Quando viene premuto il pulsante che rappresenta una persona corrispondente, il controller lo seleziona e incrementa il numero della persona corrispondente all'interno della sua memoria dopo l'incremento mostra il punteggio della persona corrispondente sul display LCD 16x2.
Il funzionamento di questa macchina per il voto elettronico basata su microcontrollore è spiegato passo dopo passo del codice C in basso,