• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
problem z kodem
#1
Siema,
Jestem całkiem świeży w środowisku Arduino i mam pytanie odnośnie mojego kodu:

Program pobiera liczbę od użytkownika i ją wypisuje, problem polega na tym, że jak np wpisuje liczbę 1 to w terminalu wypisuje dwie liczby: 49 oraz pod nią 10. Nie wiem na czym polega błąd prosiłbym o pomoc Smile

tutaj kodzik:
//zmienna liczbowa do przechowywania danych odebranych przez port szeregowy
int x = 0;
 
void setup()
{
   Serial.begin(9600);
}
 
void loop() {
 
        // sprawdzanie czy są dostępne nowe dane do odczytania
        if (Serial.available() > 0) {
                //przypisywanie do zmiennej odczytanego bajtu
                x = Serial.read();
 
                // wypipsywanie otrzymanych danych
                Serial.print("Otrzymano: ");
                //wypisanie przelanych danych
                Serial.println(x);
        }
}
 
Odpowiedź
#2
Powinieneś umówić się z samym sobą na odbieranie linii tekstu, złożyć z niej napis i wydrukować. Poczytaj o kodach ASCII, ich odwzorowaniu w bajtach, co się stanie jeśli liczbę wielkości bajta zapiszesz do zmiennej int i wydrukujesz? Raczej nie będzie to literka. Literkę wysyłasz, odbierasz jako liczbę i wysyłasz z powrotem jako liczbę.
Tymczasem ten program robi dokładnie to co mu kazałeś.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
#3
49 to w ASCII właśnie 1, a 10 to LF - line feed/nowa linia.
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości