Chaque fois que nous allons voter pour des élections, nous venons voir des machines à voter électroniques. Dans ce projet, nous allons concevoir et développer une machine à voter simple en utilisant le microcontrôleur ATmega32A. Bien que nous puissions utiliser le contrôleur pour obtenir une machine à voter plus de 32 personnes, pour que tout soit simple, nous allons créer un système de vote pour une taille de quatre personnes.Nous aurons quatre boutons pour quatre personnes et chaque fois qu'un bouton est enfoncé, un le vote va pour la personne correspondante et le nombre de votes que chaque personne obtient affiché sur l'écran LCD.
Composants requis
Matériel:
ATMEGA32
Alimentation (5v)
PROGRAMMATEUR AVR-ISP
JHD_162ALCD (écran LCD 16x2)
Condensateur 100nF (cinq pièces), condensateur 100uF (connecté à travers l'alimentation)
bouton (cinq pièces), Résistance 10KΩ (cinq pièces).
Logiciel:
Atmel Studio 6.1
progisp ou flash magic.
Schéma de circuit et explication de fonctionnement
Comme le montre le circuit de la machine de vote électronique ci-dessus , le microcontrôleur PORTA du ATMEGA32 est connecté au port de données de l'écran LCD 16x2. Ici, il faut se rappeler de désactiver la communication JTAG dans PORTC d'ATMEGA en changeant les octets de fusible, si l'on veut utiliser le PORTC comme port de communication normal. Dans l'écran LCD 16x2, il y a 16 broches sur tout s'il y a un rétro-éclairage, s'il n'y a pas de rétro-éclairage, il y aura 14 broches. On peut alimenter ou laisser les broches du rétroéclairage. Or, dans les 14 broches, il y a 8 broches de données (7-14 ou D0-D7), 2 broches d'alimentation en énergie (1 et 2 ou VSS et VDD ou GND et + 5v), 3 ème broches de la commande de contraste (VEE-contrôle l'épaisseur des caractères doivent être illustré), 3 broches de commande (RS & RW & E).
Dans le circuit, vous pouvez observer que je n'ai pris que deux broches de contrôle car cela donne la flexibilité d'une meilleure compréhension. Le bit de contraste et READ / WRITE ne sont pas souvent utilisés afin qu'ils puissent être court-circuités à la masse. Cela met l'écran LCD en mode de contraste et de lecture le plus élevé. Nous avons juste besoin de contrôler les broches ENABLE et RS pour envoyer des caractères et des données en conséquence.
Les connexions effectuées pour l'écran LCD sont indiquées ci-dessous:
PIN1 ou VSS - masse
PIN2 ou VDD ou VCC - alimentation + 5v
PIN3 ou VEE - masse (donne le meilleur contraste pour un débutant)
PIN4 ou RS (sélection de registre) - PD6 de uC
PIN5 ou RW (lecture / écriture) - masse (met l'écran LCD en mode lecture facilite la communication pour l'utilisateur)
PIN6 ou E (Activer) - PD5 de uC
PIN7 ou D0 - PA0 de uC
PIN8 ou D1 - PA1 de uC
PIN9 ou D2 - PA2 de uC
PIN10 ou D3 - PA3 de uC
PIN11 ou D4 - PA4 de uC
PIN12 ou D5 - PA5 de uC
PIN13 ou D6 - PA6 de uC
PIN14 ou D7 - PA7 de uC
Dans le circuit, vous pouvez voir que nous avons utilisé une communication 8 bits (D0-D7) mais ce n'est pas obligatoire. Nous pouvons utiliser la communication 4 bits (D4-D7), mais avec le programme de communication 4 bits, cela devient un peu complexe, je suis donc allé avec une communication 8 bits.
Donc, à partir de la simple observation du tableau ci-dessus, nous connectons 10 broches de l'écran LCD au contrôleur dans lequel 8 broches sont des broches de données et 2 broches pour le contrôle. Il y a cinq boutons présents ici, quatre pour incrémenter les votes des candidats et le cinquième pour remettre les votes du candidat à zéro.
Les condensateurs présents ici sont destinés à annuler l'effet de rebond des boutons. S'ils sont retirés, le contrôleur peut en compter plus d'un à chaque fois que le bouton est enfoncé. Les résistances connectées pour les broches servent à limiter le courant, lorsque le bouton est enfoncé pour tirer la broche vers le sol.
Chaque fois qu'un bouton est enfoncé, la broche correspondante du contrôleur est abaissée au sol et ainsi le contrôleur reconnaît qu'un certain bouton est enfoncé et que l'action correspondante doit être entreprise, il peut augmenter les votes des candidats ou réinitialiser les votes en fonction du bouton enfoncé.
Lorsque le bouton représentant une personne correspondante est enfoncé, le contrôleur le sélectionne et incrémente le numéro de personne correspondant dans sa mémoire après l'incrémentation, il affiche le score des personnes correspondantes sur l'écran LCD 16x2.
Le fonctionnement de cette machine à voter électronique basée sur un microcontrôleur est expliqué étape par étape du code C ci-dessous,