Postanowiłem rozbudować mój program o możliwość wymuszenia wyświetlanej cyfry z klawiatury komputera.
Oto kod:
int incomingByte = 0; int timer = 500; int numbers[]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09,0x61}; void setup() { Serial.begin(9600); for (int i=6;i<14;i++) { pinMode(i,OUTPUT); } } void loop() { if (Serial.available() > 0) { incomingByte = Serial.read(); if((incomingByte > 47) && (incomingByte < 58)) { displayNum(incomingByte - 48); Serial.print("odczytano cyfre "); Serial.println(incomingByte,BYTE); } else { displayNum(10); Serial.println("odczytano inny znak"); } } } void displayNum(int num) { for (int i=0; i<8; i++) { digitalWrite(i+6, bitRead(numbers[num],7-i)); } }
Do testowania wykorzystałem HyperTerminal. Należy wybrać port COM, pod którym widoczny jest Arduino (USB Serial Port w Menadżerze urządzeń) oraz skonfigurować odpowiednio:
Liczba bitów na sekundę: 9600 - zgodnie z ustawieniami portu w programie
Bity danych: 8
Parzystość: Brak
Bity stopu: 1
Sterowanie przepływem: Brak
Przy okazji uświadomiłem sobie, że funkcje dostarczane w IDE nie pozwalają na ustawienie takich parametrów jak bity danych, parzystość czy bit stopu. Można tylko ustawić liczbę bitów (baud rate). Być może w przyszłości będzie nam to potrzebne. Jeżeli komuś jednak bardzo zależy na tym teraz, tutaj może znaleźć kilka przydatnych informacji.
Z poziomu konsoli wpisujemy odpowiednie znaki. Jeśli są to cyfry od 0 do 9, to są one wyświetlane na wyświetlaczu. Każdy inny znak wyświetlany jest jako E.
Dodatkowo na konsoli szeregowej pojawia się informacja o naciśniętym znaku.
Rezultat:
Komentarze
Prześlij komentarz