boa noite pessoal estou com um problema em uma interpretação de programa.
tenho esse loop que funciona certinho
void loop() {
while (LORA.available()) {
int c = LORA.read();
Serial.println(c);
if (c == ‘101 0 1 1 255 255 255’){
digitalWrite(led, HIGH);
LORA.print(“vis p1,0”);
LORA.print("\xFF\xFF\xFF");
mas quando aperto no botao da ihm ela manda os valores assim pra mim que estao em DEC , mas preciso deles em HEXA.
20:55:43.057 → 101
20:55:43.057 → 0
20:55:43.057 → 1
20:55:43.057 → 1 @ tenho que saber receber esse valor e jogar no proximo if para acender o led
20:55:43.057 → 255
20:55:43.101 → 255
20:55:43.101 → 255
e o byte mais importante e o que coloquei o @, o if que fiz tem que reconhecer esse byte para dar o comando
if (c == ‘101 0 1 (1) 255 255 255’){
101 0 1 1 255 255 255
Tags:
Boa noite,
Simples assim:
https://www.arduino.cc/reference/pt/language/functions/communicatio...
Serial.println(c,HEX);
Não entendi isso, explique
if (c == ‘101 0 1 (1) 255 255 255’){
101 0 1 1 255 255 255
20:55:43.057 → 101
20:55:43.057 → 0
20:55:43.057 → 1
20:55:43.057 → 1
20:55:43.057 → 255
20:55:43.101 → 255
20:55:43.101 → 255
recebo os dados acima, e o que me interessa é o quarto que esta sublinhado, caso ele seja 1 ele ligara o led
if (c == ‘igual o quarto fazer abaixo’){
digitalWrite(led, HIGH);
LORA.print("vis p1,0");
LORA.print("\xFF\xFF\xFF");
Na terceira linha o resultado é o mesmo. Qual a diferença?
20:55:43.057 → 1
20:55:43.057 → 1
Bom dia Sr. RDC, (se não gosta que te chame pelas iniciais, avise),
o Sr. define a variável "C" como o tipo int e lê os dados vindo do LORA. na sequencia imprime os dados.
e então testa "C" contra um caractere (símbolo ‘ ) ‘101 0 1 1 255 255 255’.
Um caractere é do tamanho de um byte e ‘101 0 1 1 255 255 255’ tem 21 bytes.
O valor de C na função if que o Sr. usou está errada, pois ‘101 0 1 1 255 255 255’ não é um caractere
e nem um int.
Estou inferindo que o Sr. está usando a IDE do arduino.
Se estiver usando a plataforma arduino, a definição do tipo "int" estabelece que a variável poderá
receber valores no intervalo de -32.768 a 32.767.
Todos valores recebidos e testados na plataforma IDE do arduino estão em formato Hexadecimal, a forma de apresentação (impressão ) é que aparentemente muda o formato.
Testa o arquivo que está abaixo e depois conta pra gente o resultado.
RV
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por