Boa noite garagistas, estou tentando fazer um código para enviar por porta serial o valor 0 ou 1, e em seguida o arduino envia esses valores pelo emissor RF, por sua vez o outro arduino recebe o sinal e acende ou apaga um LED ( para 0 ele apaga, para 1 ele acende). Tentei adaptar o código do tutorial do próprio Lab, contudo esse código não está funcionando, o LED não acende, qual é o erro? alguma dica?

Obs: Uso o receptor e transmissor RF 433Mhz.

Código do receptor:

#include <VirtualWire.h>
int ledPin = 9;
void setup() {
vw_setup(200);
vw_set_rx_pin(8);
vw_rx_start();
pinMode (ledPin, OUTPUT);
}
void loop() {
uint8_t buf[VW_MAX_MESSAGE_LEN];
uint8_t buflen = VW_MAX_MESSAGE_LEN;
if(vw_get_message(buf, &buflen)) {
digitalWrite(ledPin, buf[0]);
}
}

Código do transmissor:

#include <VirtualWire.h>
char *data = "0";
void setup() {
Serial.begin (9600);
vw_set_tx_pin(8);
vw_setup(2000);
}
void loop() {
if (Serial.available()) {
data[0] = Serial.read();
vw_send((uint8_t *)data, strlen(data));
vw_wait_tx();
}
Serial.flush();
}

Exibições: 237

Responder esta

Respostas a este tópico

Tenho quase certeza que o problema é com o código do receptor, mas por favor, que souber, da uma olhada aí e me fala onde ta o erro!

Amigo. Talvez seja apenas um erro de digitação, mais verifica uma coisa que me chamou a atenção.

Você chamou o método vw_setup com valores diferentes um está 200 e outro 2000.

Pode ser apenas um erro de digitação.

Nossa, de fato, está diferente! Não sei se isso faria não funcionar, contudo testarei e postarei se funcionou!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço