Spisu treści:

Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino: 4 kroki
Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino: 4 kroki

Wideo: Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino: 4 kroki

Wideo: Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino: 4 kroki
Wideo: Nivel System - System kontroli pracy maszyn MC-1D 2024, Listopad
Anonim
Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino
Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino
Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino
Kontroluj świetlówki za pomocą wskaźnika laserowego i Arduino

Kilku członków Alpha One Labs Hackerspace nie lubi ostrego światła emitowanego przez lampy fluorescencyjne. Chcieli mieć możliwość łatwego sterowania poszczególnymi urządzeniami, być może za pomocą wskaźnika laserowego? Wykopałem stos przekaźników półprzewodnikowych i przyniosłem je do laboratorium. Kupiłem Arduino Duemilenova i zademonstrowałem użycie przykładowego szkicu LED Blink, aby faktycznie mrugnąć lampą halogenową. Znalazłem informacje na temat używania diod LED jako czujników światła [1] i szkic Arduino demonstrujący technikę [2]. Odkryłem, że diody LED nie są wystarczająco czułe – laser musiał być skierowany bezpośrednio na część emitującą światło lub diodę LED nie zarejestruje się. Przerzuciłem się więc na fototranzystory. Są znacznie bardziej czułe iw szerszym zakresie częstotliwości. Dzięki odpowiedniemu filtrowi nad tranzystorem mógłbym uczynić go bardziej czułym na czerwone światło i znacznie szerszy zakres kątów do czujnika. ZASTRZEŻENIE I OSTRZEŻENIE: Ta instrukcja dotyczy napięcia sieciowego (sieciowego) o napięciu 120 lub 240 woltów. Kieruj się zdrowym rozsądkiem, jeśli budujesz ten obwód - jeśli masz jakieś wątpliwości, zapytaj kogoś, kto wie. Jesteś odpowiedzialny za swoje (i innych) bezpieczeństwo oraz zgodność z lokalnymi przepisami elektrycznymi.

Krok 1: Szkic i trochę teorii

Zakładam, że wiesz, jak zasilić Arduino, i skompiluj i załaduj szkic. Do każdej lampy używam kabla telefonicznego, ponieważ jest tani, ma cztery przewody, a i tak miałem ich kilka. Użyłem czerwonego do wspólnego +, czarnego do masy, zielonego do kolektora fototranzystora i żółtego do sterowania przekaźnikiem +. Fototranzystor przepuszcza ilość prądu, która zmienia się wraz z ilością padającego na niego światła. Konwerter analogowo-cyfrowy (ADC) w arduino mierzy napięcie na pinie w stosunku do masy. Spojrzałem na kartę katalogową fototranzystora i sprawdziłem multimetrem, że przy pełnym oświetleniu tranzystory przepuszczają 10mA. Korzystając z prawa Ohma to około 500 omów przy 5V. Do sterowania lampami użyłem modułu przekaźnika półprzewodnikowego. Są one stosunkowo tanie w obecnej cenie, której potrzebowaliśmy, około 4 USD za do 4A. Upewnij się, że kupujesz moduły przekaźnikowe z detektorem przejścia przez zero, zwłaszcza jeśli sterujesz czymś indukcyjnym, takim jak światło fluorescencyjne, silnik lub transformator ścienny. Włączenie lub wyłączenie ich w dowolnym miejscu poza punktem zerowym może spowodować skoki napięcia, które w najlepszym przypadku skrócą żywotność urządzenia, a w najgorszym wywołają pożar.

Krok 2: Okablowanie świateł

Okablowanie świateł
Okablowanie świateł
Okablowanie świateł
Okablowanie świateł
Okablowanie świateł
Okablowanie świateł

Zajrzyj w sufit i zdecyduj, gdzie zamontujesz kontroler Arduino. Pamiętaj, że będzie potrzebował zasilacza 7-12v. Utnij długość przewodu telefonicznego (lub cat5 lub innego) o około dwie stopy dłuższe niż odległość od Arduino do każdego światła, które chcesz kontrolować. Spójrz na połączenie linii energetycznych z przełącznika do statecznika. Być może będziesz w stanie zamówić złącza (Newark Electronics sprzedaje serię Wago 930, którą mieliśmy). Wtedy nie będziesz musiał przecinać istniejących przewodów i możesz wyjąć układ jak coś pójdzie nie tak. Przylutuj masę (czarną) do wejścia przekaźnika -, a kontrolkę (żółtą) do wejścia przekaźnika + (kod koloru na zdjęciu to różni się od tego co umieściłem na pierwszej stronie, skoro zmieniłem zdanie co do tego co miałoby sens). Przylutować lub przykręcić (w zależności od przekaźnika) czarny (gorący) przewód przez przekaźnik. Upewnij się, że używasz termokurczliwej i taśmy elektrycznej! Wciśnij czarne przewody do złączy, a biały (neutralny) i uziemienie (zielony) są po prostu proste od złącza do złącza. Drugi koniec przewodów biegnie do Arduino w następujący sposób: Wszystkie czerwone przewody (wspólna katoda lub kolektor) przejdź do Analog 0 (port C0), a wszystkie czarne do masy. Każda zielona (anoda lub emiter) trafia do pinów 8-13 (port B 0-5), a żółte przewody do pinów 2-7 (port D 2-7). Upewnij się, że zielony i żółty przewód pasują do siebie, ponieważ czujnik musi sterować odpowiednim przekaźnikiem! Jeśli włożysz żółty do pinu 2, zielony z tego samego urządzenia przejdzie do pinu 8.

Krok 3: Testowanie szkicu i uwag do projektu

W tym kroku opowiem o niektórych próbach i utrapieniach, które napotkałem po drodze, oraz o tym, jak przez nie przepracowałem, w nadziei, że będzie to przydatne. Jeśli nie interesuje Cię zawartość naukowa, możesz przejść do następnego kroku:-) Pierwszym krokiem było podjęcie decyzji, czy użyć wykrywania pojemnościowego, czy rezystancyjnego. Wykrywanie rezystancyjne polega na podłączeniu czujnika przez rezystor do jednego z pinów analogowych i wykonaniu odczytu analogowego i porównaniu z wartością progową. Jest to najprostsze do wdrożenia, ale wymaga wielu kalibracji. Teoria wykrywania pojemnościowego polega na tym, że przy odwrotnej polaryzacji (- do przewodu + i odwrotnie), dioda LED nie pozwoli na przepływ prądu, ale elektrony będą gromadzić się po jednej stronie i Zostaw drugą stronę, skutecznie ładując kondensator. Światło padające na diodę LED o częstotliwości, którą normalnie emituje, spowoduje przepływ prądu, który rozładowuje ten kondensator. Więc jeśli naładujemy „kondensator” diody LED i policzymy, ile czasu zajmuje rozładowanie przez rezystor, otrzymujemy z grubsza wyobrażenie o tym, ile światła pada na diodę LED. To faktycznie okazało się bardziej niezawodne na różnych urządzeniach, a nawet działa w przypadku fototranzystorów! Ponieważ nie wykonujemy dokładnego pomiaru lumenów, a wskaźnik laserowy powinien być dużo jaśniejszy od otoczenia, szukamy tylko progowego czasu wyładowania. Inną ważną częścią tej przygody jest debugowanie. Dla osób zaznajomionych z programowaniem systemów nieosadzanych popularną metodą jest dodawanie instrukcji print w krytycznych punktach kodu. Dotyczy to również systemów wbudowanych, ale gdy liczy się każda mikrosekunda, ilość czasu na Serial.write("x to "); Serial.napis(x); jest w rzeczywistości dość znaczący i możesz pominąć wiele wydarzeń w tym procesie. Dlatego pamiętaj, aby zawsze umieszczać instrukcje drukowania poza pętlami krytycznymi lub za każdym razem, gdy spodziewasz się zdarzenia. Czasami wystarczy miganie diody LED, aby poinformować, że dotarłeś do określonego punktu w kodzie.

Krok 4: Dodawanie kontroli sieci

Dodawanie kontroli sieci
Dodawanie kontroli sieci

Jeśli przejrzałeś szkic, zauważyłeś, że czytam również port szeregowy i działam na kilku jednoznakowych komendach. Znak „n” włącza wszystkie światła, a „f” je wyłącza. Liczby '0'-'5' przełączają stan światła podłączonego do tego wyjścia cyfrowego. Możesz więc łatwo połączyć skrypt CGI (lub serwlet, lub inną technologię sieciową, która obsługuje twoją łódź), aby zdalnie sterować światłami. Serial.writes wyświetla również dane wyjściowe za każdym razem, gdy światło jest zmieniane z danych wprowadzonych przez użytkownika, więc strona może mieć aktualizacje Ajax, aby pokazać bieżący stan. Inną rzeczą, z którą zamierzam poeksperymentować, jest wykrywanie ruchu w pomieszczeniu. Ludzie odbijają światło, a gdy się poruszają, to światło się zmienia. To jest część „delta” moich oświadczeń dotyczących zapisu.

Zalecana: