Hola amigos,
tengo un arduino uno + Placa ethernet + Placa de 8 Relés 5 y me gustaría poder hacer lo mismo que hace esta placa que os envio en el enlace.
La comunicación se realizaría mediante el protocolo RS-232 (9600, n, 8, 1).
Y cada vez que recibamos uno nuevo byte por el puerto RS232 , actualice el estado de relés de la placa.
Y me gustaría que cuando le mando los siguiente datos me active los Relés.
Data received: 00000001 Activa Relé 1
Data received: 00000010 Activa Relé 2
Data received: 00000100 Activa Relé 3
Data received: 00001000 Activa Rele 4
Data received: 00010000 Activa Relé 5
Data received: 00100000 Activa Relé 6
Data received: 01000000 Activa Relé 7
Data received: 10000000 Activa Relé 8
Y a la inversa los cierra.
¿Alguien me ayuda en su programación?
Las entradas de la placa no las necesito, solo las salidas de relés y la recepción de datos del puerto serie.
void ActivarRele(int puerto)
{
digitalWrite(puerto+1,HIGH); //para que arranque en el pin2 sumar 1
}
void ApagarRele(int puerto)
{
digitalWrite(puerto+1,LOW); //para que arranque en el pin2 sumar 1
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (Serial.available() > 0)
{
// read the incoming byte:
byte valor = Serial.read();
byte valorApagar= not valor;
if( valor && 128)
ActivarRele(8);
if( valor && 64)
ActivarRele(7);
if( valor && 32)
ActivarRele(6);
if( valor && 16)
ActivarRele(5);
if( valor && 8)
ActivarRele(4);
if( valor && 4)
ActivarRele(3);
if( valor && 2)
ActivarRele(2);
if( valor && 1)
ActivarRele(1);