Płyta i terminal prawdopodobnie nie używają tej samej prędkości transmisji. Sprawdź prawy dolny róg terminala szeregowego Arduino i upewnij się, że jest ustawiony na 9600.
Dane szeregowe
Komunikacja szeregowa polega na wysyłaniu całego strumienia danych po jednym bicie. Jest to w przeciwieństwie do standardowego portu równoległego, który wysyła jeden bajt na raz. Oba urządzenia muszą wiedzieć, z jaką prędkością wysyłane są dane. Ponadto oba urządzenia muszą działać z tą samą prędkością. Nazywa się to szybkością transmisji.
Szybkość transmisji
Baud tak naprawdę oznacza tylko liczbę impulsów na sekundę. W kontekście komunikacji szeregowej oznacza to, ile bitów jest przesyłanych na sekundę. Jedną z najczęstszych wartości jest 9600, ale są też inne, które są współczynnikami lub wielokrotnościami 9600. Nie ma to jednak znaczenia, o ile oba urządzenia działają z tą samą prędkością.
Jeśli wysyłam Ci wiadomości szybciej niż je otrzymujesz, tracisz dane. Jeśli wysyłam ci wiadomości wolniej niż je otrzymujesz, masz bzdury pomieszane z tym, co ci wysłałem.
Dane, parzystość, bity stopu
Jeśli spojrzysz na dokumentację begin(), zobaczysz, że może ona przyjąć dwa parametry:
Serial.begin(speed)
Serial.begin(speed, config)
Mamy nadzieję, że rozumiesz teraz szybkość, to są bity na sekundę, z którymi Arduino będzie się komunikować.
Drugi parametr, configpozwala skonfigurować kilka innych rzeczy na temat szeregowej transmisji danych. Są to bity Data, Parzystość i Stop. Zobaczysz na stronie to wartości takie jak 5N1, 6N1iSERIAL_8N1 (the default)
Pierwsza liczba reprezentuje liczbę bitów danych. Drugi znak mówi ci, jaki jest rodzaj bitu parzystości. Edla parzystości parzystej, Oparzystej nieparzystej lub Nbez parzystości. Trzecia liczba mówi, ile bitów stopu.
Tak naprawdę, przy 8N1 mamy 10 bitów wysyłanych na każde 8 bitów „twoich” danych. 1 bit startowy, 8 bitów danych i 1 bit stopu.
W każdym razie obie strony muszą uzgodnić te informacje, a także prędkość. Terminal szeregowy Arduino nie daje możliwości zmiany tych ustawień, ale robią to inni, więc musisz upewnić się, że wszystkie ustawienia konfiguracji są takie same.
Więcej informacji na wiki: Asynchroniczna komunikacja szeregowa