Boa noite pessoal,
Eu gostaria de saber, se consigo receber 9 bytes de uma só vez na serial. Eu já consigo ler os valores, mas um de cada:
Por exemplo:
5A
A5
60
0
01
11
11
Teria como recebe-los assim: 5AA5600011111?
Obrigado desde já!!!
Tags:
declarando um char com x posições e depois ler posição por posição
tipo
void loop ()
{
char rx [13] ; tem 13 posições
rx = Serial.read();
if(rx[0] == '5' && rx[1] == 'A' ){
faça o que quer
}
ai vc comparo o 5A de acordo com o que esta no seu post ai , dai vc faz o mesmo para os outros , bem é uma sujestão , faço isso nos microcontroladores PIC , não sei se irá ser aplicado ao arduino mas poderia tentar .
Olá Ilgner, obrigado pela sugestão.
Eu coloquei a estrutura como você fez, mas recebo um erro:
char buffer[9];
buffer = Serial.read();
O IDE diz que "incompatible types in assignment of 'int' to 'char[9]'.
Tem alguma idéia sobre essa inconpatibilidade?
Encontrei o erro, eu tinha que declarar sempre buffer [9], em todos os lugares que precisava inserir este char.
Mas na leitura, ainda nao obtive sucesso
faz um switch case com o buffer
Cara, eu sou um pouco fraco (demais) em programação ainda. A estrutura seria mais ou menos isto:
switch (buffer) {
case ('5AA5600011111'):
digitalWrite(led, HIGH);
break;
}
sim
Cara, pelo método via switch, nao funcionou.
Li aqui no LdG mesmo, que o Serial.read() tem este equeno 'problema'. Ele recebe um byte de vez, e no meu caso, não é interessante.
A solução pra isto seria o uso de Array (String). Mas não entendo e não obtive sucesso no teste que fiz, como o Arduino se comporta recebendo 9 bytes e colocando no Array.
Meu problema é receber os Bytes acima, de uma tela Touch, e a partir do código recebido, realizar alguma função no Arduino (e vice-versa).
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por