Arduino to płytka mikrokontrolera, którą można zaprogramować do sterowania urządzeniami zewnętrznymi. Współdziała ze światem zewnętrznym za pomocą czujników, silników, diod LED, głośników ... a nawet Internetu, dzięki czemu jest elastyczną platformą do różnych projektów. Istnieje wiele mikrokontrolerów, ale Arduino jest popularne ze względu na to, że różne projekty są bardzo aktywnie rozmieszczane i omawiane w Internecie. Jeśli szukasz w Google lub YouTube, znajdziesz miliony pomysłów i informacji, aby samodzielnie odkryć Arduino.
Nawet jeśli nie masz doświadczenia w programowaniu mikrokontrolerów - dzięki Arduino szybko się czegoś nauczysz elektronika za pomocą eksperymentów.
Czego potrzebujesz, aby zacząć?
Arduino Uno - 1 szt
Kabel USB-1szt
Swetry 1 szt
Płytka rozwojowa 1szt
Czerwona dioda LED 4 szt
Rezystor 220 omów 4 szt
Rezystor 10 pokój 1 szt
Przycisk bez mocowania
Potencjometr
RGB LED ze wspólną katodą
Wszystko to można kupić w lokalnym sklepie radiowym lub zamówić przez Internet.
Do demonstracji i symulacji obwodów elektrycznych wykorzystano symulator online.
Ten symulator działa najlepiej w przeglądarce Chrome.
Przyjrzyjmy się bliżej Arduino.
Arduino nie jest dużym komputerem, do którego można podłączyć obwody zewnętrzne. Arduino Uno używa Atmega 328P
To największy chip na płycie. Ten układ wykonuje programy zapisane w jego pamięci. Możesz pobrać program przez USB za pomocą Arduino IDE. Port USB zapewnia również zasilanie arduino.
Jest osobne złącze zasilania. Na płycie znajdują się dwa wyjścia, oznaczone 5v i 3.3v, które są potrzebne do zasilania różnych urządzeń. Znajdziesz również piny oznaczone jako GND, są to przewody uziemiające (uziemienie wynosi 0 V). Platforma Arduino ma również 14 wyjść cyfrowych (pinów), oznaczonych cyframi od 0 do 13, które są podłączone do zewnętrznych węzłów i mają dwa stany, wysoki lub niski (włączony lub wyłączony). Styki te mogą działać jako wyjścia lub wejścia, tj. mogą przesyłać niektóre dane i sterować urządzeniami zewnętrznymi lub odbierać dane z urządzeń. Poniższe wnioski na tablicy są oznaczone jako A0-A5. Są to wejścia analogowe, które mogą odbierać dane z różnych czujników. Jest to szczególnie wygodne, gdy trzeba zmierzyć zakres, na przykład temperaturę. Wejścia analogowe mają dodatkowe funkcje, które można aktywować osobno.
Jak korzystać z płyty chlebowej.
Płyta pilśniowa jest potrzebna do tymczasowego połączenia części, sprawdzenia działania urządzenia, przed zlutowaniem wszystkiego razem.
Wszystkie poniższe przykłady są zebrane na płycie pilśniowej, dzięki czemu można szybko wprowadzać zmiany w obwodzie i ponownie wykorzystywać części bez zawracania głowy lutowaniem.
Płyta pilśniowa ma rzędy otworów, w których można wstawić części i druty. Niektóre z tych otworów są ze sobą połączone elektrycznie.
Dwa górny i dolny rząd są połączone szeregowo wzdłuż całej płyty. Te rzędy służą do zasilania obwodu. Może to być 5 V lub 3,3 V, ale w każdym razie pierwszą rzeczą, którą musisz zrobić, to podłączyć 5 V i GND do płyty kontrolnej, jak pokazano na rysunku. Czasami te połączenia rzędów można przerwać na środku planszy, a jeśli trzeba, możesz je połączyć, jak pokazano na rysunku.
Pozostałe otwory znajdujące się na środku planszy są pogrupowane w pięć otworów. Służą do łączenia części obwodu.
Pierwszą rzeczą, którą podłączamy do naszego mikrokontrolera, jest dioda LED. Schemat połączeń elektrycznych pokazano na rysunku.
Do czego służy opornik w obwodzie? W takim przypadku ogranicza prąd przepływający przez diodę LED. Każda dioda LED jest przeznaczona do określonego prądu, a jeśli ten prąd jest większy, dioda LED ulegnie awarii. Sprawdź, jaką wartość powinien mieć rezystor, korzystając z prawa Ohma. Dla tych, którzy nie wiedzą lub zapomnieli, prawo Ohma mówi, że istnieje liniowa zależność prądu od napięcia. Oznacza to, że im bardziej przykładamy napięcie do rezystora, tym więcej prądu przepływa przez niego.
V = I * R
Gdzie V.-napięcie na rezystorze
Ja- prąd przez rezystor
R- można znaleźć opór.
Najpierw musimy znaleźć napięcie na rezystorze. Większość używanych diod 3 mm lub 5 mm ma napięcie robocze 3 V. Tak więc na rezystorze musimy spłacić 5-3 = 2v.
Następnie obliczamy prąd przepływający przez rezystor.
Większość diod LED 3 i 5 mm świeci z pełną jasnością przy prądzie 20 mA. Prąd większy niż ten może je wyłączyć, a prąd o mniejszej sile zmniejszy ich jasność, nie powodując żadnej szkody.
Chcemy więc włączyć diodę LED w obwodzie 5 V, aby prąd miał 20 mA. Ponieważ wszystkie części są zawarte w jednym obwodzie, rezystor będzie również miał prąd 20 mA.
Dostajemy
2 V = 20 mA * R
2 V = 0,02 A * R
R = 100 omów
100 Ohm to minimalna rezystancja, lepiej użyć trochę więcej, ponieważ diody LED mają pewne różnice w charakterystyce.
W tym przykładzie zastosowano rezystor 220 omów. Tylko dlatego, że autor ma ich wiele: wink :.
Włóż diodę LED do otworów w środku płytki, aby jej długi zacisk był podłączony do jednego z zacisków rezystora. Podłącz drugi koniec rezystora do 5V i podłącz drugie wyjście diody LED do GND. Dioda LED powinna się zaświecić.
Należy pamiętać, że istnieje różnica w sposobie podłączenia diody LED. Prąd płynie z dłuższego terminala do krótszego. Na schemacie można wyobrazić sobie, że prąd płynie w kierunku, w którym skierowany jest trójkąt. Spróbuj przerzucić diodę LED, a zobaczysz, że nie zapali się.
Ale jak podłączyć rezystor, nie ma żadnej różnicy. Możesz go odwrócić lub spróbować podłączyć do drugiego wyjścia diody LED, nie wpłynie to na działanie obwodu. Nadal będzie ograniczać prąd przez diodę LED.
Anatomia szkicu Arduino.
Programy dla Arduino nazywane są szkicami. Składają się z dwóch głównych funkcji. Funkcja konfiguracja i funkcja pętla
wewnątrz tej funkcji ustawisz wszystkie podstawowe ustawienia. Jakie wnioski będą działać na danych wejściowych lub wyjściowych, które biblioteki połączyć, inicjują zmienne. Funkcja Setup () Zaczyna się tylko raz podczas szkicu, gdy program się uruchamia.
jest to główna funkcja wykonywana po setup (). W rzeczywistości jest to sam program. Ta funkcja będzie działać przez czas nieokreślony, dopóki nie wyłączysz zasilania.
Migająca dioda Arduino
W tym przykładzie podłączymy obwód z diodą LED do jednego z pinów cyfrowych Arduino i włączymy go i wyłączysz za pomocą programu, a także poznasz kilka przydatnych funkcji.
- ta funkcja jest używana w setup () części programu i służy do inicjalizacji wniosków, które wykorzystasz jako dane wejściowe (WEJŚCIE) lub wyjdź (WYJŚCIE). Nie możesz odczytać ani zapisać danych z pinu, dopóki nie ustawisz go odpowiednio do pinMode. Ta funkcja ma dwa argumenty: pinNumber- To jest numer PIN, którego będziesz używać.
Tryb- ustawia sposób działania pinezki. Przy wejściu (WEJŚCIE) lub wyjdź (WYJŚCIE). Aby zapalić diodę LED, musimy dać sygnał Od Arduino Aby to zrobić, konfigurujemy pin do wyjścia.
- ta funkcja służy do ustawiania stanu (stan) pina (pinNumber). Istnieją dwa główne stany (ogólnie są 3), jeden to Wysoki, pin będzie 5v, inny jest Niski a pin będzie wynosił 0v. Aby zaświecić diodę LED, musimy ustawić wysoki poziom na pinie podłączonym do diody LED Wysoki.
- opóźnienie. Służy do opóźnienia programu o określony czas w ms.
Poniżej znajduje się kod powodujący miganie diody LED.
// Dioda LED miga
int ledPin = 7; // pin Arduino, do którego podłączona jest dioda LED
void setup () {
pinMode (ledPin, OUTPUT); // ustaw pin jako EXIT
}
void loop () {
digitalWrite (ledPin, HIGH); // zapal diodę LED
opóźnienie (1000); // opóźnienie 1000 ms (1 s)
digitalWrite (ledPin, LOW); // Wyłącz diodę LED
opóźnienie (1000); // poczekaj 1 sek
}
Małe wyjaśnienie kodu.
Linie zaczynające się od „//” to komentarze Arduino, które je ignorują.
Wszystkie polecenia kończą się średnikiem; jeśli je zapomnisz, pojawi się komunikat o błędzie.
ledpinjest zmienną. Zmienne są używane w programach do przechowywania wartości. W tym przykładzie zmienna ledpin przypisano wartość 7, jest to numer pin Arduino. Gdy Arduino w programie napotka ciąg ze zmienną ledpin , użyje podanej wcześniej wartości.
Więc nagraj pinMode (ledPin, OUTPUT) podobny do rekordu pinMode (7, WYJŚCIE).
Ale w pierwszym przypadku wystarczy zmienić zmienną i zmieni się ona w każdej linii, w której jest używana, aw drugim przypadku, aby zmienić zmienną, musisz wprowadzić zmiany w piórach w każdym poleceniu.
w pierwszym wierszu wskazuje typ zmiennej. Podczas programowania Arduino ważne jest, aby zawsze deklarować rodzaj zmiennych. Na razie wystarczy to wiedzieć INT ogłasza liczby ujemne i dodatnie.
Poniżej przedstawiono modelowanie szkic. Naciśnij start, aby zobaczyć działanie obwodu.
Zgodnie z oczekiwaniami dioda LED gaśnie i zapala się po jednej sekundzie. Spróbuj zmienić opóźnienie, aby zobaczyć, jak to działa.
Zarządzanie kilkoma diodami LED.
W tym przykładzie nauczysz się sterować wieloma diodami LED. Aby to zrobić, zainstaluj 3 dodatkowe diody LED na płycie i podłącz je do rezystorów i pinów Arduino, jak pokazano poniżej.
Aby kolejno włączać i wyłączać diody LED, musisz napisać program taki jak ten:
// Wielokrotne miganie diody LED
int led1Pin = 4;
int led2Pin = 5;
int led3Pin = 6;
int led4Pin = 7;
void setup () {
// ustaw piny jako WYJŚCIE
pinMode (led1Pin, WYJŚCIE);
pinMode (led2Pin, WYJŚCIE);
pinMode (led3Pin, WYJŚCIE);
pinMode (led4Pin, OUTPUT);
}
void loop () {
digitalWrite (led1Pin, HIGH); // zapal diodę LED
opóźnienie (1000); // opóźnienie 1 sek
digitalWrite (led1Pin, LOW); // zgasić diodę LED
opóźnienie (1000); // opóźnienie 1 sek
// zrób to samo dla pozostałych 3 diod LED
digitalWrite (led2Pin, HIGH); // zapal diodę LED
opóźnienie (1000); // opóźnienie 1 sek
digitalWrite (led2Pin, LOW); // zgasić diodę LED
opóźnienie (1000); // opóźnienie 1 sek
digitalWrite (led3Pin, HIGH); // zapal diodę LED
opóźnienie (1000); // opóźnienie 1 sek
digitalWrite (led3Pin, LOW); // zgasić diodę LED
opóźnienie (1000); // opóźnienie 1 sek
digitalWrite (led4Pin, HIGH); // zapal diodę LED
opóźnienie (1000); // opóźnienie 1 sek
digitalWrite (led4Pin, LOW); // zgasić diodę LED
opóźnienie (1000); // opóźnienie 1 sek
}
Ten program będzie działał dobrze, ale nie jest to najbardziej racjonalne rozwiązanie. Kod musi zostać zmieniony. Aby program działał w kółko, użyjemy konstruktu o nazwie.
Cykle są wygodne, gdy trzeba kilka razy powtórzyć tę samą akcję. W powyższym kodzie powtarzamy wiersze
digitalWrite (led4Pin, HIGH);
opóźnienie (1000);
digitalWrite (led4Pin, LOW);
opóźnienie (1000);
pełny kod szkicu w załączniku
Regulacja jasności LED
Czasami trzeba zmienić jasność diod LED w programie. Można to zrobić za pomocą polecenia analogWrite (). To polecenie włącza i wyłącza diodę LED tak szybko, że oko nie widzi tego migotania. Jeśli dioda LED jest włączona w połowie czasu i w połowie wyłączona, wizualnie będzie wyglądać, że świeci w połowie swojej jasności. Nazywa się to modulacją szerokości impulsu (PWM lub PWM w języku angielskim). PWM jest używany dość często, ponieważ można go wykorzystać do sterowania komponentem „analogowym” za pomocą kodu cyfrowego. Nie wszystkie piny Arduino są odpowiednie do tych celów. Tylko te wnioski, na których opiera się takie oznaczenie ”~„Zobaczysz go obok pinów 3,5,6,9,10,11.
Podłącz jedną ze swoich diod LED do jednego z pinów PWM (autor ma pin 9). Teraz uruchom migającą diodę szkicu, ale najpierw zmień polecenie digitalWrite () na analogWrite (). analogWrite () Ma dwa argumenty: pierwszy to numer pinu, a drugi to wartość PWM (0-255), w odniesieniu do diod LED będzie to ich jasność, a dla silników elektrycznych prędkość obrotowa. Poniżej znajduje się przykładowy kod dla różnej jasności LED.
// Zmień jasność diody LED
int ledPin = 9; // LED podłączony do tego pinu
void setup () {
pinMode (ledPin, OUTPUT); // inicjuje pin do wyjścia
}
void loop () {
analogWrite (ledPin, 255); // pełna jasność (255/255 = 1)
opóźnienie (1000); // pauza 1 sek
digitalWrite (ledPin, LOW); // wyłącz diodę LED
opóźnienie (1000); // pauza 1 sek
analogWrite (ledPin, 191); // jasność przy 3/4 (191/255 ~ = 0,75)
opóźnienie (1000); // pauza 1 sek
digitalWrite (ledPin, LOW); // wyłącz diodę LED
opóźnienie (1000); // pauza 1 sek
analogWrite (ledPin, 127); // połowa jasności (127/255 ~ = 0,5)
opóźnienie (1000); // pauza 1 sek
digitalWrite (ledPin, LOW); // wyłącz diodę LED
opóźnienie (1000); // pauza 1 sek
analogWrite (ledPin, 63); // ćwierć jasności (63/255 ~ = 0,25)
opóźnienie (1000); // pauza 1 sek
digitalWrite (ledPin, LOW); // wyłącz diodę LED
opóźnienie (1000); // pauza 1 sek
}
Spróbuj zmienić wartość PWM w poleceniu analogWrite ()aby zobaczyć, jak wpływa na jasność.
Następnie nauczysz się płynnie regulować jasność od pełnego do zera. Możesz oczywiście skopiować fragment kodu 255 razy
analogWrite (ledPin, jasność);
opóźnienie (5); // krótkie opóźnienie
jasność = jasność + 1;
Ale rozumiesz - to nie będzie praktyczne. W tym celu najlepiej użyć poprzedniej pętli FOR.
W poniższym przykładzie zastosowano dwa cykle, jeden w celu zmniejszenia jasności z 255 do 0
dla (int jasność = 0; jasność = 0; jasność -) {
analogWrite (ledPin, jasność);
opóźnienie (5);
}
opóźnienie (5) używane do spowolnienia tempa wzrostu i spadku jasności 5 * 256 = 1280 ms = 1,28 sek.)
Pierwszy wiersz używa „jasność”, aby wartość jasności spadała o 1 za każdym razem, gdy cykl się powtarza. Pamiętaj, że cykl będzie działał tak długo, jak jasność> = 0Zastępowanie znaku > na znaku >= zawarliśmy 0 w zakresie jasności. Ten szkic jest modelowany poniżej.
// płynnie zmieniaj jasność
int ledPin = 9; // LED jest podłączony do tego pinu
void setup () {
pinMode (ledPin, OUTPUT); // zainicjuj pin, aby wyjść
}
void loop () {
// stopniowo zwiększaj jasność (od 0 do 255)
dla (int jasność = 0; jasność = 0; jasność -) {
analogWrite (ledPin, jasność);
opóźnienie (5);
}
opóźnienie (1000); // poczekaj 1 sek
// płynnie zmniejsz jasność (255 do 0)
dla (int jasność = 255; jasność> = 0; jasność -) {
analogWrite (ledPin, jasność);
opóźnienie (5);
}
opóźnienie (1000); // poczekaj 1 sek
}
}
Nie jest to bardzo widoczne, ale pomysł jest jasny.
RGB LED i Arduino
RGB LED to tak naprawdę trzy diody LED o różnych kolorach w jednej obudowie.
W tym różne diody LED o różnej jasności możesz łączyć i uzyskiwać różne kolory. W przypadku Arduino, gdzie liczba stopni jasności wynosi 256, otrzymujesz 256 ^ 3 = 16581375 możliwych kolorów. W rzeczywistości będzie ich mniej.
Używana przez nas dioda LED jest wspólną katodą. Tj. wszystkie trzy diody LED są strukturalnie połączone katodami z jednym terminalem. Podłączymy ten pin do pinu GND. Pozostałe zaciski, poprzez rezystory ograniczające, muszą być podłączone do zacisków PWM. Autor zastosował wnioski 9–11, dlatego możliwe będzie sterowanie każdą diodą LED osobno. Pierwszy szkic pokazuje, jak włączyć każdą diodę osobno.
// RGB LED - test
// połączenia pinowe
int czerwony = 9;
int zielony = 10;
int niebieski = 11;
void setup () {
pinMode (czerwony, WYJŚCIE);
pinMode (niebieski, WYJŚCIE);
pinMode (zielony, WYJŚCIE);
}
void loop () {
// włącz / wyłącz czerwoną diodę LED
digitalWrite (czerwony, WYSOKI);
opóźnienie (500);
digitalWrite (czerwony, LOW);
opóźnienie (500);
// włącz / wyłącz zieloną diodę LED
digitalWrite (zielony, WYSOKI);
opóźnienie (500);
digitalWrite (zielony, LOW);
opóźnienie (500);
// włącz / wyłącz niebieską diodę LED
digitalWrite (niebieski, WYSOKI);
opóźnienie (500);
digitalWrite (niebieski, LOW);
opóźnienie (500);
}
W poniższym przykładzie użyto poleceń analogWrite () i uzyskać różne losowe wartości jasności dla diod LED. Zobaczysz różne kolory zmieniające się losowo.
// RGB LED - losowe kolory
// połączenia pinowe
int czerwony = 9;
int zielony = 10;
int niebieski = 11;
void setup () {
pinMode (czerwony, WYJŚCIE);
pinMode (niebieski, WYJŚCIE);
pinMode (zielony, WYJŚCIE);
}
void loop () {
// wybierz losowy kolor
analogWrite (czerwony, losowy (256));
analogWrite (niebieski, losowy (256));
analogWrite (zielony, losowy (256));
opóźnienie (1000); // poczekaj jedną sekundę
}
Losowo (256)-Zwraca losową liczbę z zakresu od 0 do 255.
W załączonym pliku znajduje się szkic, który pokazuje płynne przejścia kolorów z czerwonego na zielony, a następnie na niebieski, czerwony, zielony itp.
Przykładowy szkic działa, ale jest dużo zduplikowanego kodu. Możesz uprościć kod, pisząc własną funkcję pomocnika, która płynnie zmieni jeden kolor na inny.
Oto jak to będzie wyglądać:
Spójrzmy na definicję funkcji w częściach. Wywołana funkcja fader i ma dwa argumenty. Każdy argument jest oddzielony przecinkiem i ma typ zadeklarowany w pierwszym wierszu definicji funkcji: void fader (int color1, int color2). Widzisz, że oba argumenty są zadeklarowane jako inti otrzymują imiona kolor 1 i kolor 2 jako zmienne warunkowe do definiowania funkcji. Pustka oznacza, że funkcja nie zwraca żadnych wartości, po prostu wykonuje polecenia. Gdyby konieczne było napisanie funkcji, która zwróciła wynik mnożenia, wyglądałoby to tak:
int mnożnik (int liczba 1, int liczba 2) {
int produkt = liczba1 * liczba2;
zwrócić produkt;
}
Zwróć uwagę, jak zadeklarowaliśmy typ int zamiast tego jako typ zwrotu
nieważne.
Wewnątrz funkcji znajdują się polecenia, które były już używane w poprzednim szkicu, zastąpiono tylko numery pinów kolor 1 i kolor 2. Wywołana funkcja fader, jego argumenty są obliczane jako kolor 1 = czerwony i kolor 2 = zielony. Archiwizuj pełny szkic za pomocą funkcji
Przycisk
W następnym szkicu zostanie użyty przycisk z normalnie otwartymi stykami, bez mocowania.
Oznacza to, że gdy przycisk nie jest wciśnięty, prąd nie przepływa przez niego, a po zwolnieniu przycisk powraca do pierwotnej pozycji.
W obwodzie oprócz przycisku stosowany jest rezystor. W tym przypadku nie ogranicza prądu, ale „pociąga” przycisk do 0v (GND). Tj. dopóki przycisk nie zostanie wciśnięty na pin Arduino, do którego jest podłączony, poziom będzie niski. Rezystor zastosowany w obwodzie 10 kΩ.
// zdefiniuj kliknięcie przycisku
int buttonPin = 7;
void setup () {
pinMode (buttonPin, INPUT); // zainicjuj pin wejściowy
Serial.begin (9600); // zainicjuj port szeregowy
}
void loop () {
if (digitalRead (buttonPin) == HIGH) {// jeśli przycisk zostanie naciśnięty
Serial.println („wciśnięty”); // drukuj „wciśnięty”
} else {
Serial.println („unpressed”); // inaczej „unppress”
}
}
Na tym szkicu jest kilka nowych zespołów.
-Ta komenda przyjmuje wartość Wysoka (wysoki poziom) i niski (niski poziom) wyjściowej mocy, którą sprawdzamy. Wcześniej w setup () dane wyjściowe należy skonfigurować do wprowadzania.
; // gdzie buttonPin to numer pinu, do którego podłączony jest przycisk.
Port szeregowy pozwala wysyłać wiadomości Arduino do komputera, podczas gdy sam kontroler uruchamia program. Jest to przydatne do debugowania programu, wysyłania wiadomości do innych urządzeń lub aplikacji. Aby umożliwić przesyłanie danych przez port szeregowy (znany również jako UART lub USART), musisz go zainicjować w setup ()
Serial.begin () ma tylko jeden argument, to szybkość przesyłania danych między Arduino a komputerem.
szkic, polecenie służy do wyświetlenia komunikatu na ekranie w Arduino IDE (Narzędzia >> Monitor szeregowy).
- konstrukcja pozwala kontrolować postęp programu, łącząc kilka kontroli w jednym miejscu.
Jeśli (if) digitalRead zwraca WYSOKA, wówczas na monitorze wyświetla się słowo „naciśnięty”. W przeciwnym razie na monitorze zostanie wyświetlone słowo „ściśnięty”. Teraz możesz spróbować włączyć i wyłączyć diodę LED za naciśnięciem jednego przycisku.
// wykrywanie naciśnięcia przycisku z wyjściem LED
int buttonPin = 7;
int ledPin = 8;
void setup () {
pinMode (buttonPin, INPUT); // tym razem ustawimy pin przycisku jako INPUT
pinMode (ledPin, OUTPUT);
Serial.begin (9600);
}
void loop () {
if (digitalRead (buttonPin) == HIGH) {
digitalWrite (ledPin, HIGH);
Serial.println („wciśnięty”);
} else {
digitalWrite (ledPin, LOW);
Serial.println („unppress”);
}
}
Wejście analogowe.
analogRead pozwala na odczyt danych z jednego z pinów analogowych Arduino i wyświetla wartość w zakresie od 0 (0 V) do 1023 (5 V). Jeśli napięcie na wejściu analogowym wynosi 2,5 V, to zostanie wydrukowane 2,5 / 5 * 1023 = 512
analogRead ma tylko jeden argument - jest to numer wejścia analogowego (A0-A5). Poniższy szkic przedstawia kod do odczytu napięcia z potencjometru. Aby to zrobić, podłącz rezystor zmienny, skrajne styki do styków 5V i GND, a środkowy styk do wejścia A0.
Uruchom następujący kod i sprawdź na monitorze szeregowym, jak zmieniają się wartości w zależności od obrotu pokrętła rezystora.
// wejście analogowe
int potPin = A0; // centralne wyjście potencjometru jest podłączone do tego pinu
void setup () {
// pin analogowy jest domyślnie włączony przez wejście, więc inicjalizacja nie jest potrzebna
Serial.begin (9600);
}
void loop () {
int potVal = analogRead (potPin); // potVal to liczba od 0 do 1023
Serial.println (potVal);
}
Następny szkic łączy szkic kliknięcia przycisku i szkic kontroli jasności LED. Dioda LED zaświeci się z przycisku, a potencjometr kontroluje jasność blasku.
// wykrywanie naciśnięcia przycisku z wyjściem LED i zmienną intensywnością
int buttonPin = 7;
int ledPin = 9;
int potPin = A0;
void setup () {
pinMode (buttonPin, WEJŚCIE);
pinMode (ledPin, OUTPUT);
Serial.begin (9600);
}
void loop () {
if (digitalRead (buttonPin) == HIGH) {// jeśli przycisk jest wciśnięty
int analogVal = analogRead (potPin);
int scaledVal = mapa (analogVal, 0, 1023, 0, 255);
analogWrite (ledPin, scaledVal); // włącz led z intensywnością ustawioną przez pot
Serial.println („wciśnięty”);
} else {
digitalWrite (ledPin, LOW); // wyłącz, jeśli przycisk nie zostanie naciśnięty
Serial.println („unppress”);
}
}