LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado por: Magnun Serpas em 31 de Janeiro de 2013, 02:00
-
Olá a todos. Estou tentando usar 2 arduinos e 2 xbee pra alterar o brilho de um led remotamente.
No arduino 1, estou usando um potenciômetro ligado a porta analógica 2, para ler os valores e mandar via serial pelo módudo xbee 1 ( série s1).
Segue o código:
int valoranalog = 0, val1=0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
valoranalog = analogRead(2);
val1 = map(valoranalog, 0, 1023, 0, 255);
Serial.print(val1);
delay(150);
}
No Ardunio 2, tenho um led ligado ao pino 11 ( resistor em série de 200 ohns), e um módulo xbee 2 ( série s1).
Segue o código:
int valorrecebido=0;
void setup()
{
Serial.begin(9600);
Serial.flush();
pinMode(11, OUTPUT);
}
void loop()
{
if(Serial.available())
{
valorrecebido=Serial.read();
analogWrite(11,valorrecebido);
}
}
Ambos os xbee foram configurados com o adaptador corretamente. Entretanto não estou conseguindo alterar o brilho usando a pwm no pino 11. Aguardo algum ajuda de vocês.
-
Huh? Não percebi porque é que decidiste fazer outro post exactamete com a mesma pergunta... Quem vir este post vai provávelmente perguntar-te as mesmas coisas do outro...
Anyways, eu sugeria-te tentares testar os dois em separado, para confirmar se está tudo a funcionar bem na comunicação.
Por exemplo, podes usar só o arduino que envia os dados, e ligar o receptor ao PC e abrir o Serial Monitor ligado ao Xbee, e ver se recebes alguma coisa. Depois podes fazer algo parecido tambem para enviar os dados.
-
Se vc observar os códigos são completamente diferentes, e os arduinos e os xbees já foram testados!
-
Sim ok o código é diferente mas pelo que disseste no outro post, o outro código estava a funcionar, por isso é que tinha sugerido testares os dois arduinos em separado. Se eles funcionavam bem ligados directamente, então o problema não era do código... Quando muito, seria por estares a usar uma baud rate trocada ou não suportada (no Serial.begin).
No outro código estavas a usar 19200, neste estás a usar 9600. Mudaste as velocidades dos dois xbees tb quando mudaste o código nos arduinos? Quando eu comecei a trabalhar com xbees, qdo as coisas não funcionavam muitas vezes era por me esquecer de trocar a velocidade num dos lados ;)
O código que colocaste neste post é que não funciona mesmo, porque estás a enviar:
Serial.print(val1);
que envia os valores em texto, e do outro lado estás a ler em binário, assimas coisas não batem certo... Tens que usar Serial.write(valor) ou Serial.print(valor, BYTE);
-
Para além de que o serial.print mete ai um /n ou /n/r ou um /r, sei que ele mete mais tralha no fim da linha, e depois é um bocado mais chato de ler os dados.
-
Opa amigo, as velocidades são as mesmo de 9600, vou tentar usar o Serial.write, aí se caso der certo eu posto aqui, se não der, voltamos a conversar, devo colocar aqui ainda hoje os resultados da averiguação.
-
Que configuração fizeste aos XBees?