728x90

728x90

Saturday, April 25, 2020

ATMega32 how to set and reset relay via digital buttons

In this example, I use digital inputs outputs of ATMega32 to control a relay. Relay has an advantage of driving alternative that the microcontroller could do that directly.

The CPU clocks at 16 MHz, supplied at +5 V DC.

Simulation Schematic, The system controlled by ATMega32 AVR

PC0 of PortC is a digital output, driving a relay. The relay coil work at +5V. You can choose another voltage rating.
PA0 is an input, connected to a push button sw1. When the button is pressed, PC0 become set.
PA7 is an input, connected to a push button sw2. When the button is pressed, PC0 become reset.
Source code is written in Atmel Studio 7 with AVR GCC.


/*
 * setResetButton.c
 *
 * Created: 4/25/2020 5:23:29 PM
 * Author : balangKash
 */ 
#include <avr/io.h>
#define setButton (PINA&0x01)
#define resetButton (PINA&0x80)
int main(void)
{
    DDRA=0x7E; //PA0 and PA7 are input
    PORTA=0x81; //Set PA0 and PA7 High
    DDRC=0xFF;
    /* Replace with your application code */
    while (1) 
    {
        if (setButton==0) PORTC=0x01;
        if (resetButton==0)    PORTC=0x00;
    }
}

Back to main tutorial page ATMega32 tutorials in C with Atmel Studio 7.

No comments:

Post a Comment

320x50

Search This Blog

tyro-728x90