Arduino i nowe diody RGB Tworząc implementacje z wykorzystaniem diody RGB spotkać nas może pewna niespodzianka... Po zbudowaniu układu zgodnie z poniższym schematem, z materiałów SWOI, ścieżka "B" (rys.1): rys.1 wczytaniu firmware i wykorzystaniu programu S4A może się okazać, że układ nie zachowuje się tak jak powinien nic się nie dzieje. Przyczyną tego stanu rzeczy jest to, że w zestawach do tworzenia implementacji związanych z mechatroniką możemy spotkać się z dwoma rodzajami diod RGB w układzie ze wspólną anodą (rys.2 strona lewa) lub w układzie ze wspólną katodą (rys.2 strona prawa). Niestety "gołym okiem" nie stwierdzimy z jaką diodą mamy do czynienia. 1
rys.2 O ile w zestawie znajduje się dioda RGB ze wspólną katodą (czyli wspólną masą, "-"), możemy śmiało budować układ zgodnie z przedstawionym w konspekcie zgodnie z przedstawionym wyżej rys.1. Jeżeli zaś w zestawie znajduje się dioda RGB ze wspólną anodą (wspólny "+"), należy dokonać modyfikacji układu, a także modyfikacji kodu. Modyfikacja układu polega na podłączeniu "najdłuższej nóżki" diody (anody) do pinu +5V układu Ardiuno zamiast masy (rys.3): 2
rys.3 Kod należy również zmodyfikować najprościej ujmując wprowadzić stany przeciwne, gdzie on (stan wysoki +5V) będzie nam składową (czerwoną, zieloną lub niebieską) diody RGB wygaszało różnica potencjałów będzie wynosiła 0V (5V 5V = 0V). Zaprogramowanie off (stan niski 0V) będzie nam składową diody zapalało różnica potencjałów będzie wynosiła +5V (na diodzie niecałe 2V, na rezystorze reszta). Odpowiednie kody dla konspektu ścieżki B B31 znajdują się na rysunkach poniżej: 3
rys.4 rys.5 4
rys.6 W pierwszym z nich (rys.4) pierwsze dwa skrypty licząc od lewej strony dotyczą diody RGB w układzie wspólna katoda przy czym ten bardziej rozbudowany uwzględnia domyślnie stany portów Arduino, których nie trzeba definiować (gdyż z założenia są one wyłączone i znajdują się na poziomie niskim 0V). Kolejne dwa skrypty to odpowiedniki dla diody RGB w układzie wspólna anoda. Całość tego rysunku przedstawia "płynne przejście" od jednego typu diody do drugiego, gdzie przy pełnej konfiguracji (dwa środkowe skrypty) widzimy instrukcje przeciwne, a dwa skrajne skrypty stanowią wersję zoptymalizowaną (bez zbędnych instrukcji). Kolejny rysunek (rys.5) nie wymaga większych komentarzy wszystko odbywa się zgodnie z opisywaną zasadą negacji. Na ostatnim z nich (rys.6) należy zwrócić uwagę na wstępne wyzerowanie składowych diody RGB wspólna anoda poprzez ustawienie stanów wysokich na odpowiednich wyjściach układu Arduino. Inaczej dioda na wstępie zaświeci światłem białym (świecące wszystkie trzy składowe). 5