Como faço para comunicar diferentes variáveis através do TX/ RX
tenho o valors destas variáveis para enviar,
int str1 = 0;
int str2 = 0;
int str3 = 0;
int str4 = 0;
e tenho estas para receber respectivamente;
unsigned char CH1, CH2, CH3, CH4;
achei este cod. para 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);
}
e este para o 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));
}
}
vc´s acham que dá pra fazer ?
Tags:
fiz assim..
no tx....
declaro
int transf01 = 0; // recebe variával a ser transmitida para o arduino receptor
int transf02 = 0;
int transf03 = 0;
int transf04 = 0;
no setup
Serial.begin(19200);
no loop;
// o str1 (2,3 e 4) são variáveis globais que recebe valores do programa RX..
transf01 = map(str1, 0, 1023, 0, 255);// Mapeia os valores para 0 – 255
transf02 = map(str2, 0, 1023, 0, 255);// Mapeia os valores para 0 – 255
transf03 = map(str3, 0, 1023, 0, 255);// Mapeia os valores para 0 – 255
transf04 = map(str4, 0, 1023, 0, 255);// Mapeia os valores para 0 – 255
Serial.println(transf01, HEX );
Serial.println(transf02, HEX );
Serial.println(transf03, HEX );
Serial.println(transf04, HEX );
no rx,,
void loop() {
if (Serial.available() > 0) // Verifica se tem dados disponiveis na serial
{
CH1 = Serial.parseInt();
delay(delay_time);
}
}
não sei como colocar as outras variáveis.
Verifique a taxa da serial, ela está errada.
aki esta 190200
Serial.begin(19200);
Eu tive um problema exatamente assim que você descreveu, porém a minha comunicação era entre um Attiny85 e um Arduino Nano (e usando SoftwareSerial)
A comunicação estava dando retornando estes garbages no Serial Monitor, independentemente dos Bauds que eu definia.
Tente fazer o seguinte, suba o baud ou diminua mais , teste com vários para ver se começa a marcar direito
Apesar de eu ter feito o teste de subir / descer os Bauds, não foi assim que resolvi meu problema, meu problema estava no Arduino Nano que por algum motivo não fazia a recepção correta do Attiny...
A minha solução foi que sem querer conectei o Attiny no Arduino Uno que tinha aqui em casa e passou a dar certo, sem ter que alterar nenhum Baud ou algo do tipo. Ou seja, o mesmo número de baud e programação através do Arduino Nano que não funcionava, funcionou no UNO.
Não sei as causas, sei que deu certo e consegui ver o que eu precisava e fechei a caixa.
Abs
Gilmar, o Flavio esta lhe informando que a console da IDE do Arduino esta com a taxa de transmissão incorreta, por isso os carateres inválidos.
Clique na opção (barra inferior da janela) para 19200. Na tela que enviou esta a 9600 !
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por