Funkcje wejściowe/wyjściowe
Istnieje pięć różnych rodzajów funkcji, które są używane w Arduino do konfigurowania jego wejść i wyjść. Następujące funkcje wyjściowe wejściowe są krótko omówione w tym dyskursie:
funkcja pinmode ()
W celu podłączenia urządzeń peryferyjnych z płytą Arduino jego piny są przypisane do każdego urządzenia, które należy podłączyć do płyty Arduino. Numer PIN jest przypisany w kodzie Arduino za pomocą funkcji trybu PIN. Funkcja trybu PIN ma dwa argumenty: jeden to numer pinu, a drugi to tryb pinu. Tryby PIN są dalej podzielone na trzy typy.
WEJŚCIE : Definiuje odpowiedni pin, który będzie używany jako dane wejściowe dla Arduino.
WYJŚCIE : Ten tryb jest używany, gdy instrukcja ma być przekazywana dowolnym podłączonym urządzeniu.
Input_pullup : Ten tryb służy również do przypisania stanu wejściowego do pinu. Korzystając z tego trybu, polaryzacja zostanie odwrócona z podanego wejścia na przykład, jeśli wejście jest wysokie, co oznacza, że urządzenie jest wyłączone, a jeśli wejście jest niskie, oznacza to, że urządzenie jest włączone. Ta funkcja działa z pomocą wewnętrznych rezystorów zbudowanych w Arduino.
Składnia : Aby użyć trybu PIN, należy śledzić następującą składnię:
pinmode (numer pin, tryb pinowy);
Funkcje DigitalRead () i DigitalWrite ()
W Arduino UNO znajduje się 14 styków cyfrowych, które można użyć do funkcji odczytu i zapisu. Gdy status dowolnego konkretnego pinu ma być znany, używana jest funkcja DigitalRead (). Ta funkcja jest funkcją typu return, ponieważ poinformuje o stanie pinu w swoim wyjściu.
Podobnie, gdy stan ma być przypisany do dowolnego pinu, używana jest funkcja DigitalWrite (). Funkcja DigitalWrite () ma dwa argumenty jeden to numer PIN, a drugi to stan, który zostanie zdefiniowany przez użytkownika.
Obie funkcje są typu boolean, więc tylko dwa typy stanów są używane w funkcji cyfrowej zapisu jeden jest wysoki, a drugi jest niski. Aby korzystać z funkcji DigitalRead () i DigitalWrite (), należy użyć następującej składni:
DigitalRead (numer pin);
DigitalWrite (numer pin, stan);
Przykład
W poniższym przykładzie używane są funkcje Pinmode (), DigitalRead () i DigitalWrite ():
int ButtonPin = 2;
int Ledpin = 12;
// Zmienne zmienią się:
int ButtonState;
void setup ()
Seryjny.rozpocząć (9600);
pinmode (LEDPIN, wyjście);
pinmode (przycisk, input_pullup);
void Loop ()
ButtonState = DigitalRead (ButtonPin);
Seryjny.println (ButtonState);
if (buttonState == 1)
// Włącz LED:
DigitalWrite (Ledpin, 1);
w przeciwnym razie
// wyłącz LED:
DigitalWrite (Ledpin, 0);
W przykładowym kodzie jest włączona i wyłączona dioda LED za pomocą funkcji wejściowych i wyjściowych, a także używany przycisk.
Najpierw numer pinu przycisku i LED jest zadeklarowany, a przycisk Input_pullup jest podawany jako jego tryb, a następnie dioda LED jest podawana wyjście jako tryb.
Aby odczytać stan przycisku, musi być w trybie wejściowym Dlatego do przycisku i funkcji konfiguracji Deklarowane piny są przypisane do Arduino i diody LED podawane są przyciski i diody LED.
Podobnie, potem pętla odczytuje stan początkowy przycisku za pomocą funkcji Digitiaryad ().Jeśli stan przycisku jest wysoki, LED otrzyma wysoki stan, co oznacza, że dioda LED włączy się. Jeśli jednak stan przycisku jest niski, stan diody LED będzie niski, oznacza to, że dioda LED się wyłączy.
Ponieważ do przycisku, który wprowadza wejścia przycisku, takie jak zmiana, zmienia się na niski i odwrotnie. Tak więc, gdy program zostanie skompilowany, dioda LED również włączy się, a po naciśnięciu przycisku LED wyłączy.
Wyjście
Analogread () i analogwrite ()
Arduino UNO ma 6 portów analogowych, które mogą być używane przez te analogowe funkcje odczytu i zapisu. Funkcja analogread () odczytuje stan pin analogicznych i zwróci wartość w postaci liczb w zakresie od 0 do 1024 dla rozdzielczości 10 bitów i dla 12 bitów rozdzielcz.
Rozdzielczość bitowa to konwersja analogowa na cyfrową, więc dla 10 bitów zakres można obliczyć przez 2^10, a dla 12 bitów będzie odpowiednio 2^12. Jednak w celu przypisania stanu do dowolnego analogowego pinu na Arduino Uno używana jest funkcja anogwrite (). Wygeneruje falę modulacji impulsów, a stan zostanie zdefiniowany, podając jego cykl pracy, który wynosi od 0 do 255.
Główną różnicą między funkcjami analogowymi i cyfrowymi polega na tym, że cyfrowe definiuje dane w postaci wysokiej lub niskiej, podczas gdy analog podaje dane w postaci cyklu pracy modulacji szerokości impulsu. Składnia analogowego odczytu i zapisu jest podana, a następnie przykładowy kod jest podawany do celów ilustracyjnych:
analogread (numer pin);
Analogwrite (numer pin, wartość pin);
Przykład
Aby zademonstrować zastosowanie funkcji DigitalRead () i DigitalWrite (), program Arduino do zmiany LED jasności jest kompilowany. Jasność diody LED zmienia się za pomocą potencjometru, który jest podłączony do analogowego pinu a3 Arduino. Funkcja analogread () odczytuje wyjście potencjometru, a następnie wartości potencjometru są skalierowe za pomocą funkcji mapy. Po skalierowaniu wartości jest podawana LED.
int led_pin = 4;
void setup ()
Seryjny.rozpocząć (9600);
pinmode (LED_PIN, wyjście);
void Loop ()
int analogValue = analogread (a3);
Int jasność = mapa (wartości analogowe, 0, 1023, 0, 255);
Analogwrite (LED_PIN, jasność);
Seryjny.print („Analog:”);
Seryjny.print (wartości analogowe);
Seryjny.druk (", jasność:");
Seryjny.println (jasność);
opóźnienie (100);
Gdy wartość potencjometru wynosi zero, oznacza to, że rezystancja jest maksymalna i nie będzie dostarczane napięciem do diody LED. Tak więc wartość jasności wyniesie również zero, stąd dioda LED pozostanie w stanie wyłączonym.
Gdy wartość potencjometru zostanie zmniejszona, wartość jasności wzrośnie, a zatem dioda LED będzie w stanie.
Wniosek
Funkcje wyjściowe wejściowe odgrywają bardzo ważną rolę, jeśli chodzi o interfejsy urządzeń z Arduino lub podczas tworzenia projektów opartych na sprzęcie. Te funkcje są blokami składowymi każdego projektu Arduino. W tym zapisie funkcje wyjściowe wejściowe są szczegółowo omówione z pomocą przykładowych kodów.