Siempre que vamos a votar para las elecciones venimos a ver máquinas de votación electrónica. En este proyecto vamos a diseñar y desarrollar una máquina de votación simple usando el microcontrolador ATmega32A. Aunque podemos usar el controlador para conseguir que más de 32 personas voten en la máquina, para simplificar todo vamos a hacer un sistema de votación para un tamaño de cuatro personas, tendremos cuatro botones para cuatro personas y siempre que se presione un botón, el voto va para la persona correspondiente y el número de votos que obtiene cada persona se muestra en la pantalla LCD.
Componentes requeridos
Hardware:
ATMEGA32
Fuente de alimentación (5v)
PROGRAMADOR AVR-ISP
JHD_162ALCD (LCD de 16x2)
Condensador de 100 nF (cinco piezas), condensador de 100 uF (conectado a través de la fuente de alimentación)
botón (cinco piezas), Resistencia de 10KΩ (cinco piezas).
Software:
Estudio Atmel 6.1
Progisp o magia flash.
Diagrama de circuito y explicación de trabajo
Como se muestra en el circuito de la máquina de votación electrónica anterior , el microcontrolador PORTA del ATMEGA32 está conectado al puerto de datos de la pantalla LCD de 16x2. Aquí uno debe recordar deshabilitar la comunicación JTAG en PORTC de ATMEGA cambiando los bytes del fusible, si se quiere usar el PORTC como un puerto de comunicación normal. En LCD de 16x2, hay 16 pines en total si hay luz de fondo, si no hay luz de fondo, habrá 14 pines. Uno puede encender o dejar los pines de luz de fondo. Ahora en los 14 pines hay 8 pines de datos (7-14 o D0-D7), 2 clavijas de alimentación de alimentación (1 y 2 o VSS y VDD o GND y + 5V), 3 rd pin para el control de contraste (Vee-controla cómo de espesor los caracteres deben estar se muestra), 3 pines de control (RS & RW & E).
En el circuito, puede observar que solo he tomado dos pines de control ya que esto da la flexibilidad de una mejor comprensión. El bit de contraste y READ / WRITE no se utilizan con frecuencia, por lo que pueden cortocircuitarse a tierra. Esto coloca a la pantalla LCD en el modo de mayor contraste y lectura. Solo necesitamos controlar los pines ENABLE y RS para enviar caracteres y datos en consecuencia.
Las conexiones que se realizan para LCD se dan a continuación:
PIN1 o VSS - tierra
PIN2 o VDD o VCC - + 5v de potencia
PIN3 o VEE - tierra (brinda el mejor contraste máximo para un principiante)
PIN4 o RS (Selección de registro) - PD6 de uC
PIN5 o RW (lectura / escritura) - tierra (pone la pantalla LCD en modo lectura facilita la comunicación para el usuario)
PIN6 o E (habilitado) - PD5 de uC
PIN7 o D0 - PA0 de uC
PIN8 o D1 - PA1 de uC
PIN9 o D2 - PA2 de uC
PIN10 o D3 - PA3 de uC
PIN11 o D4 - PA4 de uC
PIN12 o D5 - PA5 de uC
PIN13 o D6 - PA6 de uC
PIN14 o D7-- PA7 de uC
En el circuito puede ver que hemos utilizado comunicación de 8 bits (D0-D7) sin embargo, esto no es obligatorio. Podemos usar la comunicación de 4 bits (D4-D7), pero con la comunicación de 4 bits el programa se vuelve un poco complejo, así que elegí la comunicación de 8 bits.
Por lo tanto, a partir de la mera observación de la tabla anterior, estamos conectando 10 pines de LCD al controlador en el que 8 pines son pines de datos y 2 pines para control. Hay cinco botones presentes aquí, cuatro para incrementar los votos de los candidatos y el quinto para restablecer los votos del candidato a cero.
Los condensadores presentes aquí son para anular el efecto de rebote de los botones. Si se quitan, el controlador puede contar más de uno cada vez que se presiona el botón. Las resistencias conectadas para pines son para limitar la corriente, cuando se presiona el botón para bajar el pin al suelo.
Cada vez que se presiona un botón, el pin correspondiente del controlador se baja al suelo y, por lo tanto, el controlador reconoce que se presiona cierto botón y se debe tomar la acción correspondiente, puede ser incrementar los votos de los candidatos o restablecer los votos dependiendo del botón presionado.
Cuando se presiona el botón que representa a la persona correspondiente, el controlador lo selecciona e incrementa el número de persona correspondiente dentro de su memoria después de incrementarlo muestra la puntuación de la persona correspondiente en la pantalla LCD de 16x2.
El funcionamiento de esta máquina de votación electrónica basada en microcontroladores se explica paso a paso del código C a continuación,