Comunicação serial entre dois Arduinos

Podemos precisar a qualquer momento nos comunicar com outros dispositivos, no caso outros Arduinos.

Comunicação serial por fio

Configurando os pinos RX/TX do Arduino por fio:

No Arduino emissor teremos um potenciometro, do qual é lido o valor e mandado via serial.

No receptor teremos um LED que irá mudar o seu brilho conforme o valor do potencimetro.

Faça agora as seguintes conexões:

TX_ARDUINO#1 – – – – RX_ARDUINO#2

RX_ARDUINO#2 – – – – TX_ARDUINO#1


NOTA: QUANDO FOR PASSAR O CÓDIGO PARA O ARDUINO, DESCONECTAR OS FIOS DE TX E RX DE AMBOS OS LADOS!

Código Emissor:

int analogValue5, val5;

void setup() {
// Habilita porta Serial
Serial.begin(19200);
}

void loop() {
// Le pino analogico 5
analogValue5 = analogRead(5);

// Mapeia os valores para 0 – 255
val5 = map(analogValue5, 0, 1023, 0, 255);

// envia o valor via serial em modo binário
Serial.println(val5, BYTE);

}

Código Receptor:

byte incomingByte;

void setup() {
// Habilita comunicação serial
Serial.begin(19200);

// declara pin 11 como output, este é o LED
pinMode (11, OUTPUT);
}

void loop() {

// Se há bytes livres vindo da porta serial
if (Serial.available()) {

// Seta o valor para a variavel ‘incomingByte’
incomingByte = Serial.read();

// Escreve o valor no pino 11
analogWrite(11, int(incomingByte));

}
}

Anúncios

C# e Arduino, programa básico

Download aplicação C#: http://ozhan.org/_dosyalar/icerik/C_Arduino_LedFading.zip
Código Arduino:

int Led = 13;
int PwmLed = 11;
int Csharp;
void setup() {
  Serial.begin(9600); // opens serial port, sets data rate to 9600 bps
  pinMode(Led, OUTPUT);
}
void loop() {
  if (Serial.available() > 0) {
    Csharp = Serial.read();
    Serial.println(Csharp, DEC);
    analogWrite(PwmLed, Csharp);
  }
}

O que o programa faz?

image

O Arduino toma a decisão de acender ou não um LED a partir do protocolo vindo pela serial. O mesmo pode ter controle de brilho do LED alterando-se o PWM.

Aqui está um vídeo demonstração:

Controle de um LED no Arduino feito em C#, PC

Disponivel em: http://www.ozhan.org/index.php?kat_id=19#Arduino
Qualquer dúvida me mandem um e-mail.

Att, denadai.