Bom galera, estou fazendo uma comunicação serial entre dois arduinos. Porem preciso compara o valor enviado de um arduino para outro, mas não etou conseguindo

estou enviando um valor analogico

//envia
int num = 0;
int sensorPin = A0;
int sensorValue = 0;

void setup(){
Serial.begin(9600);
Serial1.begin(9600);
}

void loop(){

sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
Serial1.println(sensorValue);
}

//recebendo esse valor e comparando

int led = 13;
int inByte;
int Val = 0;

void setup() {
// initialize both serial ports:
Serial.begin(9600);
Serial1.begin(9600);
}

void loop() {
// read from port 1, send to port 0:
if (Serial1.available()) {
inByte = Serial1.read();
Serial.write(inByte);

if (inByte == 1023) {

digitalWrite(led, HIGH);
Serial.println("Desligado");
}

Nao estou comparar este valor recebido. alguem pode me ajudar por favor

Exibições: 432

Responder esta

Respostas a este tópico

Oi LE, boa noite,

qual modelo de arduino você está usando?

Rui

Estou usando dois arduino mega

2 questoes:

1) Como o Rui Viana lembrou, para usar 2 seriais em uma mesma placa vc precisa de uma que tenha 2 seriais, com o Arduino Mega. Caso queira usar em uma mais simples precisa ser uma serial e uma softserial.

https://www.arduino.cc/en/Tutorial/MultiSerialMega <= Para o Mega ou qq placa com mais seriais.

https://www.arduino.cc/en/Reference/SoftwareSerial <= para as mais simples.

2) A função Serial.read() le apenas 1 byte. Vc precisaria de algo como:

https://www.arduino.cc/en/Serial/ReadString

Que vai ler como string, que depois precisa ser convertida para numero.

Sim estou usando o arduino mega, para não utilizar a primeira serial, já que ela tambem é utiizada para a comunicação usb do arduino e pode não funcionar corretamente. Já estou conseguindo enviar o valor analogico de um arduino mega para o outro e imprimir na serial do arduino "escravo" (que recebe este valor), porem não estou conseguindo trabalhar com este valor.

Por Ex. se valor recebido for menor que x, ligar rele. Estou com dificuldade de trabalhar com este valor.

Não dá para saber o que é somente pelo seu comentário, mas recomendo que verifique se todos os tipos estão iguais (int e int, byte e byte) dentro da comparação. Mande o trecho que não está funcionando pra entender.

Ainda, seria interessante vc colocar aqui o codigo que solucionou a questão para que outros que tenham a mesma duvida aproveitem.

A comunicação está ok, confore o codigo citado. O Problema esta em converter está string, para que eu possa comparar este valor a outro numero.

Oi LE,

use esta função pra converter sua string para um inteiro.

https://www.arduino.cc/en/Reference/StringToInt

Rui

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço