Wybrany moduł można programować w środowisku Arduino IDE w języku C++.
Wbudowane do modułu elementy: przycisk, dioda RGB LED i fotorezystor LDR oraz dioda wbudowana w układ ESP-12F pozwalają na wykonanie kilku eksperymentów z programowaniem (bez potrzeby dołączania zewnętrznych urządzeń).
Moduł składa się z dwóch części:
Polecam: link do rozmowy z czatem i dokumentację języka C++ dla Arduino.
Ten szkic jest napisany w języku Arduino (C++) i przeznaczony do sterowania diodami RGB oraz do odczytu danych z fotorezystora (LDR) i przycisku. Oto, jak działa kod:
const int LDR = A0;
const int BUTTON = 4;
const int RED = 15;
const int GREEN = 12;
const int BLUE = 13;
Te linie definiują piny, które będą używane do obsługi poszczególnych komponentów:
LDR
jest podłączony do pinu analogowego A0, aby odczytywać wartość z fotorezystora.BUTTON
to pin 4, na którym jest podłączony przycisk.RED
, GREEN
, BLUE
to piny odpowiedzialne za sterowanie diodą LED RGB.setup()
void setup() {
Serial.begin(9600);
pinMode(LDR, INPUT);
pinMode(BUTTON, INPUT);
pinMode(RED, OUTPUT);
pinMode(GREEN, OUTPUT);
pinMode(BLUE, OUTPUT);
pinMode(LED_BUILTIN, OUTPUT);
}
Funkcja ta wykonuje następujące operacje:
Serial.begin(9600);
inicjalizuje komunikację przez port szeregowy z prędkością 9600 bodów, aby móc monitorować odczyty.pinMode(...)
ustawia odpowiednie tryby pinów:
LDR
i BUTTON
są ustawione jako INPUT
do odczytu wartości.RED
, GREEN
, BLUE
są ustawione jako OUTPUT
, ponieważ będą sterować diodą RGB.LED_BUILTIN
jest ustawiony jako OUTPUT
, aby móc nim migotać.loop()
Funkcja ta wykonuje się w pętli i realizuje główne zadania programu:
Serial.print("LDR: ");
Serial.println(analogRead(LDR));
Serial.print("BUTTON: ");
Serial.println(digitalRead(BUTTON));
Serial.println();
Te linie wykonują następujące operacje:
analogRead(LDR)
odczytuje wartość analogową z fotorezystora i wyświetla ją w monitorze szeregowym. Ta wartość zmienia się w zależności od natężenia światła padającego na fotorezystor.digitalRead(BUTTON)
odczytuje stan przycisku (0 lub 1), który także jest wyświetlany w monitorze szeregowym.
analogWrite(RED, random(0, 1024));
analogWrite(GREEN, random(0, 1024));
analogWrite(BLUE, random(0, 1024));
Te linie generują losowy kolor na diodzie RGB:
random(0, 1024)
generuje losowe wartości od 0 do 1023 dla każdego z kanałów RGB.analogWrite(...)
używa tych wartości do ustawienia intensywności każdego koloru diody RGB, co skutkuje losowym kolorem światła.
digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
Instrukcja digitalWrite(LED_BUILTIN, ...)
zmienia stan diody LED z włączonej na wyłączoną (i odwrotnie), tworząc efekt migania.
delay(500);
Funkcja delay(500);
wstrzymuje działanie programu na 500 milisekund (0,5 sekundy), co pozwala wyraźnie widzieć efekty zmiany kolorów diody RGB oraz migania diody LED.
Ten kod wykonuje cyklicznie następujące czynności:
Program jest prosty i pozwala eksperymentować z podstawowymi elementami, takimi jak odczyt danych analogowych, obsługa przycisku oraz sterowanie diodą RGB.
Kod przykładu do pobrania.