sábado, 17 de março de 2012

ReleShield para Arduíno


Releshield é um módulo construido com 2 Relés miniaturas de potência, com 1 contato reversível, com capacidade de acionar cargas de até 7A/ 220VAC, foi construido para se integrar ao Arduino sem a necessidade de conexões via jumpers, somente sendo necessário encaixar o Shield direto no Arduino e ligar os equipamentos a ser controlado nos conectores instalados na parte traseira do Shield (figura 1), isto permite de uma maneira fácil criar aplicações de controle de cargas externas como:
Luminárias, Ventiladores, Eletrodomésticos, Portões de garagem, entre outros.
O Releshield é controlado diretamente pelo Arduino através de 2 pinos IOs , Pinos Digitais 7 e 8 em seu circuito á dois Leds que indicam o estado dos Reles.
Led aceso = Rele Ligado
Obs. Os Pinos Digitais 7 e 8 não poderão ser utilizados por outro periférico.
A alimentação do Shield é feita através de 5VDC vindo da placa do Arduino.
Obs. Caso esteja utilizando outros periféricos alimentados pelo Arduino talvez seja necessário utilizar uma fonte externa.

Este Releshield pode ser usado em robótica, controle industrial, casas inteligentes, etc.
Compatível com o Arduino ONU e Duemilanove.
Para acionar os reles deve se colocar o pino referente ao Rele desejável em High como descrito abaixo.
void setup(){ pinMode(Rele1,OUTPUT); }
void loop(){ digitalWrite(Rele2, HIGH); }

Exemplo 1
Exemplo Blink Lâmpada:

#define Rele1 7 // Define pino de saida para rele 1
#define Rele2 8 // Define pino de saida para rele 2
void setup(){
pinMode(Rele1,OUTPUT);
pinMode(Rele2,OUTPUT);
}
void loop(){
digitalWrite(Rele2, HIGH);
delay(1000);
digitalWrite(Rele2, LOW);
delay(1000);
}


Exemplo 2:

Acionamento através da porta serial utilizando VB 2010.


/*
RelayShield V.01
Acionamento de Reles através de vindo da porta serial.
Este exemplo é de domínio publico.
Por: Mauricio Ortega
mauortega@gmail.com
*/
#define rele1 7
#define rele2 8
int dados[3], IDbyte, i, rele ,cmd;
void setup() {
//Define reles como saida
pinMode(rele1, OUTPUT);
pinMode(rele2, OUTPUT);
// Inicia serial, 9600 baud
Serial.begin(9600);
}
void loop() {
// Aguarda dados pela serial (min 3 bytes)
if (Serial.available() > 2) {
// Lê o Primeiro byte
IDbyte = Serial.read();
// Se for (254) ...
if (IDbyte == 254) {
// ... então carrega os dois bytes seguintes
for ( i = 0; i < 2; i++) {
dados[i] = Serial.read();
}
rele = dados[0]; // Atribui valor do 2º byte na varial rele
cmd = dados[1]; // Atribui valor do 2º byte na varial cmd
switch (rele) {
case 1:
digitalWrite(rele1, cmd); //Atribui valor de cmd no pino referente ao rele 1
break;
case 2:
digitalWrite(rele2, cmd); //Atribui valor de cmd no pino referente ao rele 1
break;
cmd = 0;
}
}
}
}





Este ReleShield esta disponível na loja do Laboratório de Garagem.