Choć istnieją gotowe moduły do automatycznego sterowania domowymi urządzeniami elektrycznymi, my zbudujemy taki samodzielnie. Będzie to mała lampka wykonana z diody RGB. Emitowane przez nią światło będzie zmieniać się automatycznie w zależności od natężenia oświetlenia zewnętrznego.
Fotorezystor
Będzie nam potrzebny nowy element – fotorezystorfotorezystor, czyli światłoczuły rezystor, którego oporność zależy od natężenia promieniowania zewnętrznego. Innymi słowy, światło padające na fotorezystor zmienia jego rezystancję. Przy dużym oświetleniu oporność maleje, co z kolei skutkuje większym natężeniem prądu płynącego w gałęzi obwodu, w której włączony jest fotorezystor. I odwrotnie – im mniejsze oświetlenie, tym większa rezystancja i mniejsze natężenie prądu.
R1RjmEBQSPE8c
Zdjęcie przedstawia fotorezystor, którego dwie nóżki mają tę samą długość, natomiast ciało samego rezystora ma kształt dysku.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
W naszym projekcie użyjemy diody RGB ze wspólną katodą. Zakładamy, że jeśli w pomieszczeniu jest jasno, dioda ma emitować tylko światło zielone. W półmroku powinno być włączone światło zielone i czerwone. Gdy się zupełnie ściemni, dioda ma emitować światło we wszystkich trzech kolorach.
Fotorezystor podłączony do płytki Arduino nie wystarczy, aby określić poziom natężenia oświetlenia. Musimy zastosować dodatkowy rezystor pomocniczy i zbudować dzielnik napięcia. Omawialiśmy taki układ podczas lekcji poświęconej podstawom elektroniki. Dodatkowy opornik powinien mieć rezystancję 10 kΩomega.
Jaką rolę pełni dzielnik? Stosuje się go, aby zmierzyć spadek napięcia na rezystorze pomocniczym. Poziom tego napięcia zmienia się wraz ze zmianami oporności fotorezystora. Dopiero na podstawie wartości zmierzonego napięcia określa się natężenie światła padającego na fotorezystor. Schemat połączeń wygląda następująco:
R1YuhWcsDdHyu
Ilustracja przedstawia schemat elektryczny połączenia arduino uno z 3 diodami kolejno od pinów 9, 10 i 11 poprzez rezystory 120 omów. Ledy mają wspólną katodę, która podłoczona jest do GND. Z drugiej strony płytki połączone do 5V jest fotorezystor, który następnie rozgałęzia się poprzez rezystor 10 kilo‑omów i na port A 0.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Budowa automatycznej minilampki
Elementy potrzebne do wykonania zadania:
płytka Arduino Uno,
płytka stykowa,
kabel USB typu A‑B,
dioda RGB ze wspólną katodą,
rezystor 120 Ωomega,
rezystory 62 Ωomega (2 sztuki),
rezystor 10 kΩomega,
fotorezystor,
przewody i zworki połączeniowe.
Pora wykonać niezbędne połączenia.
1. Wpinamy diodę RGB do płytki stykowej tak, aby każda nóżka znalazła się w innym wierszu.
2. Katodę diody łączymy przewodem z szyną ujemną.
Anodę dla światła koloru czerwonego łączymy z pinem 9. przez rezystor 120 Ωomega. Anodę dla koloru niebieskiego łączymy przez rezystor 62 Ωomega z pinem 10. Ostatnią nóżkę, anodę dla koloru zielonego, łączymy z pinem numer 11 (także przez rezystor o oporności 62 Ωomega).
R1Yxp7WMwvXqo
Zdjęcie przedstawia arduino uno podłączone do płytki stykowej, na której znajdują się rezystory podłączone do wspólnej diody z 4 nóżkami.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
4. Wpinamy fotorezystor w szynę danych tak, aby nóżki znalazły się w dwóch różnych wierszach.
5. W ten sam wiersz, w którym znajduje się jedna z nóżek fotorezystora, wpinamy nóżkę rezystora pomocniczego. Drugą nóżkę podłączamy do szyny ujemnej.
RxYcSaiyV3uuK
Zdjęcie przedstawia płytkę stykową z rezystorami, kablami i jedną diodą. Led podłączony jest szeregowo poprzez 3 rezystory do 3 z 4 nóżek leda do kabli wychodzących poza zdjęcie. Na płytce ponadto znajduje sie fotorezystor połączony jedną nóżką do ostatniego rezystora, który drugą nóżkę ma podłączoną do uziemienia.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Nóżkę fotorezystora łączymy z wyprowadzeniem napięcia 5 V.
7. Wiersz, w którym znajdują się nóżki fotorezystora i rezystora, łączymy z jednym z wyjść analogowych, na przykład A0.
8. Do szyny ujemnej doprowadzamy masę.
R1N5vHSmlExDL
Zdjęcie przedstawia arduino uno podłączone do płytki stykowej, na której znajdują się rezystory, fotorezystor i dioda z 4 pinami. Widoczne połączenia o 3 kable od arduino poprzez rezystory podłączone są do diody, z której poprzez jej katodę połączenie kończy się na uziemieniu. 2 kable z arduino połączone są także do fotorezystora, który poprzez rezystor także jest podłączony do uziemienia. Ostatni kabel z arduino to uziemienie płytki stykowej.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Podłączamy płytkę Arduino do komputera. Pora przygotować szkic. Uruchamiamy Arduino IDE i zapisujemy nowy szkic pod nazwą lampka_led.
1. Deklarujemy zmienne, czyli piny, do których podłączone są anody diody RGB.
Linia 1. int RedPin znak równości 9 średnik.
Linia 2. int GreenPin znak równości 11 średnik.
Linia 3. int BluePin znak równości 10 średnik.
int RedPin = 9;
int GreenPin = 11;
int BluePin = 10;
2. W ciele funkcji setup() ustalamy, że piny będą wyjściami. Definiujemy port szeregowy (Serial), który łączy płytkę Arduino z komputerem. Pozwoli to na wyświetlenie wyników na ekranie. Podajemy także prędkość połączenia między portem szeregowym a komputerem.
Linia 1. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 2. pinMode otwórz nawias okrągły RedPin przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 3. pinMode otwórz nawias okrągły GreenPin przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 4. pinMode otwórz nawias okrągły BluePin przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 5. Serial kropka begin otwórz nawias okrągły 9600 zamknij nawias okrągły średnik.
Linia 6. zamknij nawias klamrowy.
3. W ciele funkcji loop() definiujemy zmienną wartoscfoto. Ma ona przechowywać wartości odczytane z pinu A0 i zwracane przez funkcję analogRead().
Linia 1. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 2. int wartoscfoto znak równości analogRead otwórz nawias okrągły A0 zamknij nawias okrągły średnik.
Linia 3. zamknij nawias klamrowy.
void loop() {
int wartoscfoto = analogRead(A0);
}
4. Wartości, które odczytujemy z pinu analogowego, należą do zakresu 0–1023. Wartość 0 należy traktować jako 0 V, natomiast 1023 – jako 5 V. Ten zakres może być nieco niewygodny podczas dalszych obliczeń i ustalania poziomów oświetlenia. Przekształćmy go więc do postaci zapisanej w bardziej popularnej skali, na przykład od 0 do 100 lub od 0 do 10. Załóżmy, że wybraliśmy pierwszą opcję.
Takie przekształcenie zakresów wykonuje się bardzo łatwo za pomocą funkcji map(), a nazywa się je po prostu mapowaniemmapowaniemapowaniem. Przyjmujemy, że wartość 0 się nie zmienia, natomiast liczbie 1023 będzie odpowiadać 100%. Zwracane wartości będą przechowywane w zmiennej swiatlo.
5. Aby sprawdzić, jakie jest natężenie oświetlenia, użyjemy funkcji, dzięki której zaprezentujemy na ekranie wartości odczytane z pinu A0. Wprowadzamy pewne opóźnienie, aby zdążyć odczytać pokazywane liczby. Przesyłamy szkic do płytki.
Linia 1. Serial kropka println otwórz nawias okrągły swiatlo zamknij nawias okrągły średnik.
Linia 2. delay otwórz nawias okrągły 500 zamknij nawias okrągły średnik.
Serial.println(swiatlo);
delay(500);
Po uruchomieniu szkicu zasłaniamy fotorezystor i sprawdzamy, czy wartości oświetlenia się zmieniają.
RBKw2jNVFK2NI
Zdjęcie okna konsoli arduino zatytuowane com3. W oknie kosoli widoczne są różne liczby, wszystkie wypisane z dokładnością do 2 miejsc po kropce. Na dole ekranu znajduje się pasek menu, zaznaczona jest opcja autoscroll, natomiast opcja "pokaż znacznik czasu" nie. Pozostałe 2 rozwijane listy pokazują swoje pierwsze elementy jako "Nowa linia" i "9600 baud". Ostatni jest przycisk "Wyczyść okno".
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
6. Musimy przyjąć pewne poziomy oświetlenia, przy których zmienia się światło emitowane przez diodę. Załóżmy, że przy oświetleniu na poziomie wyższym niż 60% włączone jest światło zielone, a w przedziale 40–60% zapala się dodatkowo światło czerwone. Poniżej poziomu 40% są włączone wszystkie kolory.
Aby ustalić, które światła należy włączyć, wykorzystamy instrukcję if. Zastosujemy kaskadowe (wielopoziomowe) wyrażenie if...else if... else (przypomina to zagnieżdżanie funkcji, czyli wywoływanie jednej funkcji z wnętrza drugiej).
Naszkicujmy schemat, zgodnie z którym w różnych warunkach zapalą się światła o odmiennych barwach:
R1CYx9G6XYKhW
Grafika przedstawia diagram z napisami jak i strzałkami ilustrującymi wybór względem "tak" lub "nie". Od góry: "jeżeli poziom oświetlenia jest mniejszy od 40" strzałka "tak" "mają świecić wszystkie kolory, da nam to białe światło", strzałka "nie" "jeżeli poziom oświetlenia jest mniejszy od 60". Dalej rozwidla się na strzałka "tak" "mają świecić kolory czerwony i zielony", strzałka "nie" "ma świecić się tylko kolor zielony".
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Dwa razy sprawdzamy kryterium, którym jest wartość progowa natężenia oświetlenia. Można oczywiście sprawdzić je w odwrotnej kolejności – najpierw określić, czy poziom natężenia światła przekracza 60%, a następnie, czy jest wyższy niż 40%. Instrukcję warunkową zapiszemy w szkicu przed funkcją delay().
Linia 1. if otwórz nawias okrągły swiatlo otwórz nawias ostrokątny 40 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 2. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 3. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 4. digitalWrite otwórz nawias okrągły BluePin przecinek HIGH zamknij nawias okrągły średnik.
Linia 5. zamknij nawias klamrowy else if otwórz nawias okrągły swiatlo otwórz nawias ostrokątny 60 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 7. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 8. digitalWrite otwórz nawias okrągły BluePin przecinek LOW zamknij nawias okrągły średnik.
Linia 9. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 10. digitalWrite otwórz nawias okrągły RedPin przecinek LOW zamknij nawias okrągły średnik.
Linia 11. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 12. digitalWrite otwórz nawias okrągły BluePin przecinek LOW zamknij nawias okrągły średnik.
Linia 13. zamknij nawias klamrowy.
Przesyłamy szkic do płytki Arduino. Możemy uruchomić monitor portu szeregowego, przysłonić fotorezystor i obserwować, jak zmienia się barwa światła emitowanego przez diodę RGB.
Oto pełny kod programu:
Linia 1. int RedPin znak równości 9 średnik.
Linia 2. int GreenPin znak równości 11 średnik.
Linia 3. int BluePin znak równości 10 średnik.
Linia 5. void setup otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 6. pinMode otwórz nawias okrągły RedPin przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 7. pinMode otwórz nawias okrągły GreenPin przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 8. pinMode otwórz nawias okrągły BluePin przecinek OUTPUT zamknij nawias okrągły średnik.
Linia 9. Serial kropka begin otwórz nawias okrągły 9600 zamknij nawias okrągły średnik.
Linia 10. zamknij nawias klamrowy.
Linia 12. void loop otwórz nawias okrągły zamknij nawias okrągły otwórz nawias klamrowy.
Linia 13. int wartoscfoto znak równości analogRead otwórz nawias okrągły A0 zamknij nawias okrągły średnik.
Linia 14. float swiatlo znak równości map otwórz nawias okrągły wartoscfoto przecinek 0 przecinek 1023 przecinek 0 przecinek 100 zamknij nawias okrągły średnik.
Linia 15. Serial kropka println otwórz nawias okrągły swiatlo zamknij nawias okrągły średnik.
Linia 17. if otwórz nawias okrągły swiatlo otwórz nawias ostrokątny 40 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 18. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 19. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 20. digitalWrite otwórz nawias okrągły BluePin przecinek HIGH zamknij nawias okrągły średnik.
Linia 21. zamknij nawias klamrowy else if otwórz nawias okrągły swiatlo otwórz nawias ostrokątny 60 zamknij nawias okrągły otwórz nawias klamrowy.
Linia 22. digitalWrite otwórz nawias okrągły RedPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 23. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 24. digitalWrite otwórz nawias okrągły BluePin przecinek LOW zamknij nawias okrągły średnik.
Linia 25. zamknij nawias klamrowy else otwórz nawias klamrowy.
Linia 26. digitalWrite otwórz nawias okrągły RedPin przecinek LOW zamknij nawias okrągły średnik.
Linia 27. digitalWrite otwórz nawias okrągły GreenPin przecinek HIGH zamknij nawias okrągły średnik.
Linia 28. digitalWrite otwórz nawias okrągły BluePin przecinek LOW zamknij nawias okrągły średnik.
Linia 29. zamknij nawias klamrowy.
Linia 31. delay otwórz nawias okrągły 500 zamknij nawias okrągły średnik.
Linia 32. zamknij nawias klamrowy.
Zróbmy symulację układu diody RGB z fotorezystorem, za pomocą środowiska Tinkercad.
Zaloguj się na swoje konto na platformie Tinkercad.
RKevCJGCYZElD
Na zrzucie ekranu widoczne jest środowisko Tinkercad.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Na liście komponentów, znajdującej się po prawej stronie okna, znajdź płytkę stykową.
Kliknij na nią i umieść w głównym oknie.
RP4jkkjLtW9Yp
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się płytka stykowa.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Na liście komponentów znajdź diodę RGB i wstaw ją na płytkę stykową.
RTf2QCzOnAGwC
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się płytka stykowa z zamontowaną diodą RGB.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Jeśli nie wiesz, które wyprowadzenie odpowiada jakiemu kolorowi, wystarczy najechać kursorem na nóżkę w miejscu, w którym jest ona wpięta do płytki stykowej.
R4aPX3I3vARRc
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się płytka stykowa z diodą RGB. Kursor ustawiony jest na trzeciej nóżce przez co wyświetla się napis: Niebieski.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Znajdź rezystor i dodaj go do każdej anody diody LED. Ustaw wartość 120 Ωomega dla wszystkich rezystorów.
R1OwkinGC9PxR
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się płytka stykowa z diodą RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Znajdź na liście fotorezystor i podepnij go do płytki stykowej.
R1Cy3GGsupHHK
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się płytka stykowa z fotorezystorem i diodą RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Do jednej z nóg fotorezystora dodaj rezystor o wartości 10 kΩomega.
Ryfsw1rYG337c
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się płytka stykowa z dioda RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Dodaj teraz moduł Arduino Uno do okna symulacji.
R1GAnH6qhC3Mh
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z dioda RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Do ujemnej szyny płytki stykowej podłączymy: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO.
RQFlvNQmeMd0S
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z dioda RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Wolną nóżkę fotorezystora podpinamy do pinu 5V Arduino Uno.
RUcd5qXbD8yST
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z dioda RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ, a jego wolną nóżkę do pinu 5V Arduino. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Punkt, w którym mamy podłączony fotorezystor i rezystor łączymy z pinem A0 Arduino Uno.
R1FaNI4ZT05E6
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z dioda RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ a następnie punkt pod rezystorem podłączony jest do pinu A0 Arduino. Wolną nóżkę fotorezystora do pinu 5V Arduino. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Wolne nóżki rezystorów wpiętych w anody diody podpinamy do Arduino Uno:
kolor czerwonego diody do pinu D9,
kolor niebieski diody do pinu D10,
kolor zielony diody do pinu D11.
RmTQctG05G3Jw
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z dioda RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ a następnie punkt pod rezystorem podłączony jest do pinu A0 Arduino. Wolną nóżkę fotorezystora do pinu 5V Arduino. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO. Wolne nóżki rezystorów pod anodami diody połączono z pinami Arduino Uno.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Przejdźmy teraz do pisania kodu. W tym celu klikamy na przycisk Kod, z listy rozwijanej wybieramy Tekst, potwierdzamy chęć zmiany widoku i czyścimy zawartość.
Przepisz kod układu diody RGB z fotorezystorem.
RmCsZL5823iMP
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z dioda RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ a następnie punkt pod rezystorem podłączony jest do pinu A0 Arduino. Wolną nóżkę fotorezystora do pinu 5V Arduino. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO. Wolne nóżki rezystorów pod anodami diody połączono z pinami Arduino Uno. W zakładce kod znajduje się fragment kodu:
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
W naszym kodzie mamy uruchomione połączenie z Monitorem portu szeregowego. Aby otworzyć Monitor w Tinkercad, kliknij na belkę z napisem Konsola szeregowa.
R18ITy8dRYA8w
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z fotorezystorem i diodą RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ a następnie punkt pod rezystorem podłączony jest do pinu A0 Arduino. Wolną nóżkę fotorezystora do pinu 5V Arduino. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO. Wolne nóżki rezystorów pod anodami diody połączono z pinami Arduino Uno. W zakładce kod znajduje się fragment kodu:
int RedPin=9; int GreenPin=11; int BluePin= 10; void setup(){ pinMode(RedPin, OUTPUT); pinMode(GreenPin, OUTPUT); pinMode(BluePin, OUTPUT); Serial.beign(9600); } void loop(){ int wartoscfoto=analogRead(A0); float swiatlo=map(wartoscfoto, 0, 1023, 0, 100); Serial.println(swiatlo); if(swiatlo<40){ digitalWrite(RedPin, HIGH); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, HIGH); } else if(swiatlo<60){ digitalWrite(RedPin, HIGH); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, LOW); } else{ digitalWrite(RedPin, LOW); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, LOW); } delay(500); } Poniżej znajduje się pole konsoli szeregowej.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Uruchom symulację.
R14B6mVDpgoLR
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z fotorezystorem i diodą RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ a następnie punkt pod rezystorem podłączony jest do pinu A0 Arduino. Wolną nóżkę fotorezystora do pinu 5V Arduino. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO. Wolne nóżki rezystorów pod anodami diody połączono z pinami Arduino Uno. W zakładce kod znajduje się fragment kodu:
int RedPin=9; int GreenPin=11; int BluePin= 10; void setup(){ pinMode(RedPin, OUTPUT); pinMode(GreenPin, OUTPUT); pinMode(BluePin, OUTPUT); Serial.beign(9600); } void loop(){ int wartoscfoto=analogRead(A0); float swiatlo=map(wartoscfoto, 0, 1023, 0, 100); Serial.println(swiatlo); if(swiatlo<40){ digitalWrite(RedPin, HIGH); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, HIGH); } else if(swiatlo<60){ digitalWrite(RedPin, HIGH); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, LOW); } else{ digitalWrite(RedPin, LOW); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, LOW); } delay(500); } Poniżej znajduje się pole konsoli szeregowej gdzie wypisane są wartości liczbowe.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Aby móc regulować wartość docierającego do fotorezystora światła, kliknij na niego. Nad fotorezystorem pojawi się suwak, którym możesz regulować natężenie światła.
R1ZTa4aXmXT2H
Na zrzucie ekranu widoczne jest środowisko Tinkercad. W oknie głównym znajduje się moduł Arduino UNO oraz płytka stykowa z fotorezystorem nad którym znajduje się suwak i diodę RGB. Do każdej anody diody przypięto rezystory o wartości: 120 Ω. Do fotorezystora natomiast podłączono rezystor o wartości: 10 kΩ a następnie punkt pod rezystorem podłączony jest do pinu A0 Arduino. Wolną nóżkę fotorezystora do pinu 5V Arduino. Do ujemnej szyny płytki stykowej podłączono: katodę diody LED, wolną nóżkę rezystora wpiętego do fotorezystora oraz pin GND Arduino UNO. Wolne nóżki rezystorów pod anodami diody połączono z pinami Arduino Uno. W zakładce kod znajduje się fragment kodu:
int RedPin=9; int GreenPin=11; int BluePin= 10; void setup(){ pinMode(RedPin, OUTPUT); pinMode(GreenPin, OUTPUT); pinMode(BluePin, OUTPUT); Serial.beign(9600); } void loop(){ int wartoscfoto=analogRead(A0); float swiatlo=map(wartoscfoto, 0, 1023, 0, 100); Serial.println(swiatlo); if(swiatlo<40){ digitalWrite(RedPin, HIGH); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, HIGH); } else if(swiatlo<60){ digitalWrite(RedPin, HIGH); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, LOW); } else{ digitalWrite(RedPin, LOW); digitalWrite(GreenPin, HIGH); digitalWrite(BluePin, LOW); } delay(500); } Poniżej znajduje się pole konsoli szeregowej gdzie wypisane są wartości liczbowe.
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.
Film z działania programu.
R1U9QHFYKoLWY
Film nawiązujący do treści materiału
Film nawiązujący do treści materiału
Źródło: Contentplus.pl sp. z o.o., licencja: CC BY-SA 3.0.