Do tworzenia prototypów, czyli do testowania projektów opartych np. o Arduino bardzo często używa się płytek stykowych. Dlaczego? Ponieważ na etapie testowania swoich pomysłów nie musicie nic lutować, łączyć ze sobą na stałe.
Do tego służy płytka stykowa lub prototypowa. Składa się z wielu otworów, do których możemy podłączyć diody, przewody, czujniki oraz inne elementy elektroniczne.
Płytki stykowe mają różne rozmiary. Najczęściej składają się z 30 lub 60 wierszy. Po obu stronach płytki znajdują się szyny służące do rozprowadzania zasilania i masy po całej płytce. Są one oznaczone plusem i minusem.
Niezależnie gdzie podłączymy przewód to masa lub napięcie będzie dostępne w każdym otworze na szerokości całej płytki. Wewnętrzna część płytki, która wykorzystywana jest do podłączania np. diod, czujników połączona jest w ten sposób:
Przewody połączeniowe
Gdy chcesz stworzyć nowy układ elektroniczny, musisz zacząć od przygotowania schematu oraz elementów układu, który chcemy umieścić na naszej płytce. Dla celów prototypowania możesz łatwo umieścić swoje komponenty w otworach płytki za pomocą przewodów.
Podczas pracy z płytkami stykowymi nie ma potrzeby używania żadnych specjalnych narzędzi np. lutownicy.
Przewody połączeniowe są niezwykle przydatne podczas prototypowania. Są one dostępne w każdym sklepie dla elektroników lub po prostu w serwisach typu Allegro. Należy tu zaznaczyć, że przewody te są wyjątkowo tanie.
Przewody stosowane w prototypowaniu na każdym końcu mają piny łączące. Dzięki temu można je wykorzystać do połączenia dwóch punktów bez lutowania. Przewody występują w różnych długościach i kolorach. Kolory tak naprawdę nie mają większego znaczenia, ale przyjęło się, że czerwone przewody używamy do podłączania napięcia a czarne do masy.
Przewody występują w trzech wersjach: męsko-męskiej, żeńsko-żeńskiej i męsko-żeńskiej. Najczęściej używana jest wersja męsko-męska, ponieważ jej końce posiadają piny, które można wpiąć w otwory w płytce stykowej oraz w żeńskie końce innej zworki.
Chcesz nauczyć się więcej? Zachęcamy do skorzystania z naszego darmowego, na bieżąco aktualizowanego kursu.
W projektach elektronicznych dużą popularnością cieszą się taśmy LED. Są tanie, efektowne i wygodne w użyciu. Taśmy LED to nic innego jak połączone ze sobą diody RBG. Zwykle sprzedawane są ze sterownikiem, za pomocą którego możemy zarządzać diodami (ich kolorem, jasnością).
Moduł WS2812
Na listwie modułu znajduje się 8 małych diod LED RGB 5050 (5 mm x 5 mm) z otworami montażowymi i łańcuchową konstrukcją. Każda dioda LED jest adresowana, dzięki sterownikowi, który znajduje się wewnątrz diody.
Moduł może być zasilany napięciem od 4 do 7V. Koszt tego urządzenia jest niewielki (około 15 zł).
W jednym z projektów w naszej firmie postanowiliśmy zastosować ten moduł jako panel informujący o pracy czujników w ramach danego urządzenia.
Skąd ten wybór?
Możemy sterować 8 diodami korzystając wyłącznie z jednego portu GPIO. W przypadku zastosowania klasycznych diod byłoby to aż 8 zajętych portów mikrokontrolera (w tym przypadku ESP8266).
O ile istnieją biblioteki do zarządzania diodami pozwalające zapalać i gasić wiele diod naraz to gdy chcemy sterować wyłącznie jedną diodą bez zmiany stanu pozostałych, to możemy napotkać się z nie lada problemem. W tym artykule podpowiemy, jak ten problem rozwiązać.
WS2812 i ESP8266
W tym przypadku za serce naszego układu będzie odpowiadać ESP8266 ale nie ma żadnego problemu by było to np. Arduino. Wszelkie opisywane metody będą działać dokładnie tak samo na Arduino.
Do zarządzania diodami użyjemy popularnej biblioteki NeoPixel od Adafruit.
Poniżej przykładowy kod, który zapali diody jedna po drugiej na kolor czerwony.
setBrightness() – ustawianie jasności paska z diodami. Funkcja przyjmuje wartości od 0 do 255.
setPixelColor() – za pomocą tej funkcji deklarujemy kolor jaki my wyświetlać poszczególna dioda. Diody oznaczamy od zaczynając od numeru 0. W naszym przykładzie nr diody przypisany jest do zmiennej i. W dalszej części funkcji deklarujemy kolor w postaci wartości RGB.
pixels.show() – zadeklarowanie koloru nic nam nie da, dopóki nie włączymy diod, robimy to za pomocą tej funkcji. Gdy zmienimy cokolwiek w diodach to by zauważyć różnicę, musimy wywołać tę funkcję po każdej zmianie.
Wynik naszego programu prezentuje się w następujący sposób:
WS2812 i utrzymanie stanu diody
Jak zauważyliście możemy zapalić wszystkie diody na raz (z lekkim opóźnieniem). Możemy zmienić kolor poszczególnej diody, ale gdy to zrobimy, to nadpiszemy stan pozostałych diod. Ich ustawienia zostaną “zresetowane”.
Co zatem zrobić gdy chcemy wyłączyć / wyłączyć jedną diodę i zachować stan pozostałych? Musimy stan z każdej z diody zapisać w tablicy.
Tworzymy nową tablicę zawierającą 8 elementów. Każdy element będzie reprezentować jedną diodę.
int PIXELS_DATA[8]={0,0,0,0,0,0,0,0};
Gdzie:
0 - dioda wyłączona 1 - dioda włączona
Wyłączenie diody uzyskamy nadając jej “czarny” kolor. Parametry RGB ustawiamy na zero.
Zanim napiszemy funkcję do zmiany stanu poszczególnej diody, warto zoptymalizować możliwość zmiany jej koloru. Możemy stworzyć np. taką funkcję:
Oczywiście możemy dowolnie ustalać kolory. W moim urządzeniu pierwsza dioda informuje czy urządzenie działa a pozostałe pokazują czy dany czujnik pracuje prawidłowo.
Jak zmienić stan poszczególnej diody?
Musimy zmienić wartość z 0 do 1 lub z 0 do 1 w tablicy PIXELS_DATA.
Stwórzmy do tego funkcję:
void setLED(int led, int state){
PIXELS_DATA[led] = state;
for (int i = 0; i < PIXEL_COUNT; i++){
if(PIXELS_DATA[i] == 1){
setPixel(i, colors[i][0], colors[i][1], colors[i][2]);
} else{
setPixel(i, 0, 0, 0);
}
}
pixels.show();
}
Funkcja początkowo zmienia stan na poszczególnym elemencie tablicy a następnie przechodzi kolejno po tablicy PIXELS_DATA i w zależności od wartości stanu ustala kolor przypisany w tablicy colors lub ustala kolor czarny.
Wywołanie tego kodu w funkcji loop spowoduje zapalenie pierwszej diody na kolor czerwony. Druga dioda będzie migać a 3 i 4 będą świeciły się na kolor zielony.
Kod wykorzystany w projekcie możesz pobrać z naszego repozytorium na Githubie, a jeśli chcesz nauczyć się więcej, to zachęcamy do skorzystania z naszego darmowego, na bieżąco aktualizowanego kursu.