collapse

* Posts Recentes

Amplificador - Rockboard HA 1 In-Ear por almamater
[27 de Março de 2024, 19:13]


O que é isto ? por KammutierSpule
[26 de Março de 2024, 19:35]


Bateria - Portátil por almamater
[25 de Março de 2024, 22:14]


Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]

Autor Tópico: exemplo serial read  (Lida 2264 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline dio123

  • Mini Robot
  • *
  • Mensagens: 1.032
exemplo serial read
« em: 05 de Março de 2013, 17:16 »
boa tarde,
tenho aqui uma pequena duvida.
No exemplo do arduino serial read  se escrever 5 devia aparecer  I received: 5 se escrever 7  I received:7.
É porque  escrevo 5 aparece I received: 55 e escrevo 7 aparece I received 53.
Exprimentei tambem assim e acontece a mesma coisa. Serial.println(incomingByte);
o que está aqui mal?
Citar
int incomingByte = 0; 
void setup() {
        Serial.begin(9600);   
}
void loop() {

        if (Serial.available() > 0) {
                 incomingByte = Serial.read();
     Serial.print("I received: ");
                Serial.println(incomingByte, DEC);
        }
}
 

Offline senso

  • Global Moderator
  • Mini Robot
  • *****
  • Mensagens: 9.733
  • Helpdesk do sitio
Re: exemplo serial read
« Responder #1 em: 05 de Março de 2013, 17:29 »
Estás a tranformar o que ele recebe no serial.
Basicamente estás a ver o código ascii do caracter e não o caracter em si.
Tens de fazer serial.write e não println, se não ele pega no byte que recebe e transforma para caracteres.
Como podes ver aqui nesta tabela ascii 5 é o código ascii 53, ou seja o valor binário 53 em ascii é o caracter 5, mas como o println está a ler esse valor sem pensar que é um valor ascii imprime o valor do registo/variavel directamente, dai teres 53.
http://www.asciitable.com/
Avr fanboy