El Relay se encuentra conectado al pin 3 del puerto D, PD3. El led también se encuentra conectado a PD3. Cuando el led está encendido, entonces el relay también lo está. Lo único necesario para usar el relay es cambiar el valor de PD3. En el ejemplo que sigue, se enciende el led al presionar el botón 1, y se apaga al presionar el botón 6.
#include<avr/io.h> int main(void) { volatile unsigned char boton; DDRD |= 1 << DDD3; DDRB |= 1 << DDB5; DDRB &= ~(1 << DDB6 | 1 << DDB7); PORTB &= ~(1 << PB6 | 1 << PB7); PORTB |= 1 << PB5; asm volatile("nop"); //Revisarbotones for(;;) { if(PINB & (1 << PB6) && boton != 1) { boton = 1; PORTD |= 1 << PD3; } else if(PINB & (1 << PB7) && boton != 6) { boton = 6; PORTD &= ~(1 << PD3); } } }
La parte relevante son las líneas en las que se prende el led (relay),
PORTD |= 1 << PD3;
Y la instrucción para apagar el led (relay),
PORTD &= ~(1 << PD3);
El código completo de este ejemplo se encuentra en el archivo Relay.c.