LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado por: Magnun Serpas em 29 de Janeiro de 2013, 21:19
-
Olá, venho tentando ver se tal código funciona, entretanto não consegui êxito nas tentativas, não consegui alterar o brilho de led, nem sequer ele acendeu, peço a ajuda de todos aqui:
http://lusorobotica.com/index.php?topic=319.0 (http://lusorobotica.com/index.php?topic=319.0)
// SENDER
int analogValue2, analogValue5, val2, val5;
void setup()
{
// start serial port at 19200 bps
Serial.begin(19200);
}
void loop()
{
// read analog input
analogValue2 = analogRead(2);
analogValue5 = analogRead(5);
val2 = map(analogValue2, 0, 1023, 253, 0); // 254 and 255 for SYNC
val5 = map(analogValue5, 0, 1023, 253, 0);
Serial.print(254, BYTE); //SYNC char
Serial.print(val2, BYTE);
Serial.print(255, BYTE); //SYNC char
Serial.print(val5, BYTE);
delay(150);
}
/ RECIEVER
byte incomingByte, sensor1, sensor2;
void setup() {
// start serial port at 19200 bps
Serial.begin(19200);
Serial.println(”Ready!”);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
delay(1000);
}
void loop() {
if (Serial.available()) {
incomingByte = Serial.read();
Serial.print(int(incomingByte));
if ((int(incomingByte) == 254)) {
sensor1 = Serial.read();
Serial.print(”Sensor 1 = “);
Serial.print(int(sensor1));
}
if ((int(incomingByte) == 255)) {
sensor2 = Serial.read();
Serial.print(” Sensor 2 = “);
Serial.print(int(sensor2));
}
}
analogWrite (5, sensor1);
analogWrite (6, sensor2);
}
Só estou a querer acender apenas um led.
-
Boas ja os configuras-te aos dois??Com o +++,o AT.....
-
Configurei ambos...
-
Boas.
Acho que primeiro deverias tentar perceber se é um problema do Arduino ou dos xbees...
Eu ligaria os dois arduinos por cabos cruzados (ligar os TX's de cada arduino com os RX do outro), e ligar tb um GND comum se eles tiverem com alimentações separadas.
Se eles comunicarem, então já sabes que o problema tem a ver com a parte wireless. Se mesmo assim não funcionarem, entao há algum problema no código do arduino.
Para testares os Xbees à parte (assumindo que tens um adaptador pala ligar o xbee ao pc) podes fazer um teste de echo... Ligas um xbee ao pc, no outro ligas directamente o TX ao RX, abres o serial monitor com a velocidade certa (que tem de ser a mesma que usaste no Serial.begin() nos arduinos) e tudo o que escreveres deveria ser enviado de volta. Se isso não acontecer, ou a velocidade está mal configurada ou eles não estão bem configurados para falar um com o outro....
-
Já fiz tudo isso, mas de nada adiantou, tenho o adaptador, e fiz esses testes aí, tenho para mim, que o problema está no código.
-
Mas o 1º teste que te foi indicado (sem os XBees) funcionou?
-
Funcionou sim, sem problemas!
-
Mas e tambem fizeste o 2º teste? Tens a certeza que os dois xbees estão a comunicar um com o outro? E a 19200baud?
Se os arduinos comunicam directamente um com o outro, então tambem deveriam comunicar bem atraves dos xbees (assumindo que estes estejam bem configurados e ligados). O arduino não sabe, nem precisa de saber por onde é que os dados vão, apenas a que velocidade tem de os enviar. Por isso de dizes que está tudo a funcionar bem ligando as cabos directamente, tem de dar para colocar tudo a funcionar sem mudar nada no código dos arduinos...
-
Está tudo configurado da maneira correta, mas não sei a causa/razão de não estarem funcionando. Tudo bem! Vou abrir outro tópico e tentar fazer do meu jeito, daí vocês vão me ajudando.