Witajcie przyjaciele, mam nadzieję, że wszyscy macie się dobrze.
Co to jest port szeregowy?
Napisałem już o tym szczegółowy tutorial, który możesz przeczytać na tej stronie.
Port szeregowy jest używany do komunikacji pomiędzy dwoma modułami elektronicznymi.
Port szeregowy posiada 9 pinów używanych do różnych celów.
Dwa z tych pinów najczęściej używane są jako TX (nadajnik) i RX (odbiornik).
Tak więc, używając tych dwóch pinów przesyłamy nasze dane z jednego miejsca do drugiego.
Port szeregowy w Arduino
Prawie wszystkie płytki Arduino obsługują port szeregowy.
Jeśli mówimy o Arduino UNO, ma ono jeden port szeregowy i jest on zlokalizowany na pinach 0 i 1.
Jeśli przyjrzysz się dokładnie płytce Arduino UNO, możesz zobaczyć, że na pinie nr 1 jest napisane TX, a na pinie nr 0 jest napisane RX, jak pokazano na poniższym rysunku:
Jak odczytywać dane z portu szeregowego ?
Załóżmy, że masz jakiś moduł szeregowy, powiedzmy moduł GPS (większość modułów GPS działa na porcie szeregowym).
Kiedy łączysz moduł GPS z Arduino, musisz połączyć pin TX GPS z pinem RX Arduino.
Pin TX GPS będzie wysyłał dane, a ponieważ ten pin jest połączony z pinem RX Arduino, Arduino będzie odbierać dane.
Wiemy jak dane przychodzą do Arduino, ale trzeba napisać kod, aby odczytać je, a następnie zapisać w jakiejś zmiennej.
W celu odczytania danych, musimy użyć specjalnej funkcji o następującej składni:
char data = Serial.read();
Ważne jest, aby najpierw zainicjować port szeregowy w Arduino, jak pokazano poniżej:
Serial.begin(9600);
Uwaga: Port Arduino USB, który jest wpinany do komputera i służy do wgrywania kodu, działa również na tym samym porcie szeregowym.
Jeśli masz coś podłączonego do pinu # 0 Arduino, nie możesz przesłać kodu w Arduino.
Teraz zaprojektujmy prosty przykład, w którym będziemy odbierać dane z portu szeregowego, a następnie zapisywać je w jakiejś zmiennej.
Podłącz urządzenie szeregowe do płytki Arduino i wgraj poniższy kod do płytki Arduino:
void setup() {
Serial.begin(9600); // inicjalizacja portu
}
void loop() {
if(Serial.available()) // sprawdź dostępność danych do odczytu
{
char data = Serial.read(); // odczyt i zapis w zmiennej
Serial.print(data); // wyświetlenie odczytanych danych
}
}
Teraz należy otworzyć monitor szeregowy Arduino, który jest używany do debugowania.
W ten sposób, za każdym razem gdy piszesz coś na porcie szeregowym, jest to drukowane na monitorze szeregowym.
Tak więc, cokolwiek będziesz otrzymywał na porcie szeregowym, otrzymasz w monitorze szeregowym.
Oto kilka losowych danych z modułu GSM przychodzących na port szeregowy i pokazujących się w monitorze szeregowym:
Jak odczytywać dane z portu szeregowego w Proteusie?
Zaprojektujmy teraz małą symulację Proteusa, w której zobaczymy jak odczytywać dane z portu szeregowego.
Proteus nie ma wbudowanych płytek Arduino, więc musisz najpierw ściągnąć bibliotekę Arduino dla Proteusa i wtedy będziesz mógł symulować swoją płytkę Arduino w Proteusie.
Zbuduj układ, jak pokazano na poniższym rysunku:
Na powyższym rysunku umieściłem wyświetlacz LCD i będę pobierał dane z portu szeregowego, a następnie będę drukował te dane na wyświetlaczu LCD.
Tak więc, najprościej mówiąc, cokolwiek wpiszę do wirtualnego terminala, zostanie wyświetlone na LCD.
Aby uzyskać ten niesamowity wyświetlacz LCD w Proteusie, należy pobrać bibliotekę z tej strony.
Następnie użyj poniższego kodu i pobierz swój plik Hex z oprogramowania Arduino:
#include <LiquidCrystal.h>
// inicjalizacja pinów wyświetlacza LCD
LiquidCrystal lcd(13, 12, 11, 10, 9, 8);
void setup() {
// ustaw liczbę kolumn i wierszy na wyświetlaczu LCD:
lcd.begin(20, 4);
// umieść napis na wyświetlaczu
lcd.setCursor(1,0);
lcd.print("www.TheEngineering");
lcd.setCursor(4,1);
lcd.print("Projects.com");
lcd.setCursor(1,0);
Serial.begin(9600);
}
void loop() {
if(Serial.available()) // sprawdź dostępność danych do odczytu
{
char data = Serial.read(); // odczyt i zapis w zmiennej
Serial.print(data);
lcd.print(data); // wyświetlenie odczytanych danych
}
}
Gdy uruchomisz symulację Proteusa, pierwszy ekran będzie wyglądał tak, jak poniżej:
Cokolwiek wpiszemy do portu szeregowego, pojawi się na wyświetlaczu LCD, jak pokazano na poniższym rysunku:
Możesz pobrać symulację Proteusa i kod Arduino klikając przycisk podany na początku tego postu. Tak więc, to jest jak możesz używać polecenia Arduino Serial Read i możesz wykonać swoje zadanie. To wszystko na dzisiaj. Mam nadzieję, że podobał wam się ten krótki tutorial. Jeśli macie jakieś pytania, to piszcie w komentarzach.