Go Down

Topic: Ajuda com envio e recebimento de dados(SERIAL.READ E SERIAL.PRINT) (Read 742 times) previous topic - next topic

guiba2s

Bem, é o seguinte eu gostaria de saber como é que faz para enviar dados via teclado
e aparecer no Serial monitor. Eu utilizo o seguinte código
#include <stdlib.h> 

int incomingByte = 0;   // for incoming serial data

void setup() {
        Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
}

void loop() {

        // send data only when you receive data:
        if (Serial.available() > 0) {
                // read the incoming byte:
                incomingByte = Serial.read();

                // say what you got:
                Serial.print("I received: ");
                Serial.println(incomingByte, DEC);
        }
}

Mas quando eu digito por exemplo 100, o serial monitor imprimi 49. A questão é a seguinte, eu gostaria de digitar um número e este mesmo número seja imprimido na tela. Desde já agradeço

mmoscz

O serial.read(), retorna apenas um caracter por vez, não o número, e você esta usando DEC no Serial.println(incomingByte, DEC);
Tente isso
Code: [Select]

#include <stdlib.h> 

char incomingChar;   // for incoming serial data

void setup() {
        Serial.begin(9600);     // opens serial port, sets data rate to 9600 bps
}

void loop() {

        // send data only when you receive data:
       if (Serial.avalaible()) {
                // say what you got:
                Serial.print("I received: ");
            }
         

        while (Serial.available() > 0) {
                // read the incoming char:
                incomingChar = Serial.read();
                Serial.print(incomingChar);
        }

}
4x Duemilanove (clone)
Uno torrado (clone)
Amiga 1200 40MB
Windows XP

guiba2s

A sim, eu retirei o DEC e mudei o tipo da variavel para char, como no seu código, e funcionol perfeitamente.
Obrigado

Go Up