[080] Układamy wiedzę - cz. 6

[080] Układamy wiedzę - cz. 6

W poprzednim artykule opisałem cztery tryby pracy portów: praca dwustanowa i pseudoanalogowa w obie strony. Jednak wybrane piny mogą być portami bardziej zaawansowanymi. Najbardziej popularną i najprostszą realizacją takiego działania jest port szeregowy. Występuje zwykle w parze, jeden pin nadaje, drugi – odbiera i Uno realizuje to sprzętowo na pinie zerowym i pierwszym. Podczas programowania układu tędy przychodzą dane, ale potem można ów port wykorzystać do własnych celów, nie przejmując się koniecznością pisania programowej realizacji transmisji. Będzie to natomiast konieczne, gdybyśmy chcieli mieć więcej takich portów. Oczywiście ten prastary typ portu szeregowego to nie wszystko. Możemy korzystać z nowocześniejszych i szybszych tworów, które są współczesnymi standardami: a więc I2C i SPI, a także inne, które można znaleźć zwłaszcza w nowoczesnych realizacjach płytek.


Skorzystajmy więc z możliwości wykorzystania portu szeregowego, który – ze względu na użycie go do programowania – i tak jest na stałe połączony z komputerem. Arduino IDE ma wbudowany tak zwany terminal, czyli odbiornik i nadajnik komunikatów przychodzących portem z i do Arduino.

Jeśli teraz w programie zainicjujemy użycie takiej komunikacji za pomocą linii Serial.begin(szybkość pracy) będziemy mogli w dowolnych miejscach umieścić linie wysyłające zwyczajne teksty za pomocą portu do komputera, które wyglądają tak: Serial.println("Treści do wyświetlenia w okienku terminala").

Oprócz czysto użytkowej zalety istnienia takiego mechanizmu, przydaje się on przede wszystkim do ustawiania pułapek wysyłających nam komunikaty i wartości różnych zmiennych w różnych miejscach programu, co bywa ogromnie przydatne podczas uruchamiania dużych aplikacji. Gdy już wszystko będzie działać jak należy, linie te można będzie zamienić w komentarze albo po prostu usunąć.

Wspomniana szybkość pracy musi być ustawiona na tę samą wartość zarówno w treści programu jak w parametrach pracy terminala. Oczywiście port szeregowy ma zastosowanie znacznie szersze niż tylko komunikacja z komputerem, ale o tym napiszę przy najbliższej okazji. Na koniec - przykład użycia takiej komunikacji w prostym programie, monitorującym stan przycisku.

byte pstryczek = 8;       // Numer pinu, do którego podłączony jest pstryczek.
byte diodaSwiecaca = 13;  // Numer pinu, do którego podłączona jest dioda świecąca.

void setup() {
  pinMode(pstryczek, INPUT_PULLUP);  // Zadeklaruj port pstryczka jako wejście.
  pinMode(diodaSwiecaca, OUTPUT);    // Zadeklaruj port diody jako wyjście.
  Serial.begin(9600);                // Inicjuj komunikację portem szeregowym.
}

void loop() {
  if (digitalRead(pstryczek) == HIGH) {          // Jeśli pstryczek jest wciśnięty...
    digitalWrite(diodaSwiecaca, HIGH);           // Włącz diodę.
    Serial.println("Przycisk jest wcisniety.");  // Wyślij komunikat na terminal.
  }

  if (digitalRead(pstryczek) == LOW) {           // Jeśli pstryczek jest puszczony...
    digitalWrite(diodaSwiecaca, LOW);            // Wyłącz diodę.
    Serial.println("Przycisk jest puszczony.");  // Wyślij komunikat na terminal.
  }
}
Płytka edukacyjna TME-EDU-ARD-2Płytka edukacyjna TME-EDU-ARD-2Sprawdź tutaj

Przeczytaj również

Nasi partnerzy

TMETech Master EventTME EducationPoweredby
Copyright © 2025 arduino.pl