Sygnał cyfrowy w Arduino jest oparty na reprezentacji logicznej 1 - stan wysoki lub 0 – stan niski. Napięcie jaki określamy stan wysoki jest zależne od wersji płytki. Najczęściej jest nim napięcie 5V, gdzie przyjmujemy, że napięcie 2.4 – 5V to stan wysoki a 0 – 0.8V to stan niski.
Składnia:
- pinMode(pin, tryb); - deklaracja pinu i jego trybu pracy
- digitalRead(pin); - Odczyt stanu pinu
- digitalWrite(pin, wartość); - Nadanie stanu pinu
Parametry:
- pin: numer pin Arduino
- wartość: HIGH lub LOW – ustawienie stanu wysokiego lub niskiego.
- tryb: INPUT, OUTPUT, lub INPUT_PULLUP – tryb pracy pinu.
Zadanie:
Zbuduj układ, który zapala diodę Led po wciśnięciu przycisku.
Do zbudowania będziemy potrzebowali:
- Diodę Led
- Switch
- Rezystor
- Arduino (użyłem MKR1010 wifi)
Rezystor musi towarzyszyć diodzie świecącej (LED), ponieważ dioda jest elementem sterowanym prądowo. Aby obliczyć wartość rezystora użyjemy wzoru:
R = (Uzasilania - Udiody) / Ididdy
Napięcie zasilania z pinu cyfrowego to 3,3V. Diodę czerwoną ma napięcie przewodzenia od 2,0 V do 2,3 V. Prąd jaki powinien przepłynąć przez diode to 20 mA, czyli 0,02 A.
R = (3,3 – 2) / 0,02 = 65
R = (3,3 – 2,3) / 0,02 = 50
Obliczając uzyskaliśmy wynik, który informuje nas że musimy użyć rezystora z przedziału od 50Ω do 60 Ω więc użyjemy 56 Ω.
Schemat podłączeniowy z interaktywną treścią:
Kod programu:
Kod programu:
#define Button 1 // Definicja pinu 1 jako Button
#define Led 2 // Definicja pinu 2 jako Led
void setup() {
pinMode(Led, OUTPUT); // Deklaracja Led jako WYJŚCIE
pinMode(Button, INPUT_PULLUP); // Deklaracja Button jako WEJŚCIE
digitalWrite(Led, LOW); // Wyłącz Led
}
void loop() {
while(digitalRead(Button) == LOW && digitalRead(Led) == LOW) { // Jeśli przycisk wciśnięty i Led wyłączony
digitalWrite(Led, HIGH); // Włącz Led
delay(200); // Odczekaj 200ms
}
while(digitalRead(Button) == LOW && digitalRead(Led) == HIGH) { // Jeśli przycisk wciśnięty i Led włączony
digitalWrite(Led, LOW); // Wyłącz Led
delay(200); // Odczekaj 200ms
}
}