Świecąca Bulba: taka sobie kolorowa zabawka z Lilypad…

Na zajęcia w Laboratorium Młodego Technika przygotowałem taką małą zabawkę:

Ma ona prezentować mieszanie się kolorów podstawowych: czerwonego, niebieskiego i zielonego.

Zasada działania

lightbulb_85

Do budowy Świecącej Bulby użyłem analogowej taśmy RGB. Odczytując nastawy trzech potencjometrów zmieniam stopień wypełnienia sygnału PWM. Sygnał ten steruje bazami tranzystorów. Tranzystory z kolei sterują przepływem prądu przez diody taśmy. Im większy stopień wypełnienia – tym świecą jaśniej.

Całością steruje Lilypad – mała „fioletowość” z AtMega328p. Pisałem o niej tutaj: Lilypad Arduino: jak to uruchomić?

Potrzebne…

Do zbudowania zabawki będziecie potrzebować:

  • Arduino Lilypad (model z AtMega328p),
  • Zasilacz 12v,
  • Pasek analogowych LED (ja miałem 8 segmentów),
  • Puszka – przezroczysta (np. po kosmetykach; ja miałem taką po pinezkach),
  • 3xpotencjometr liniowy, np. 10k (może być też inny) – z gałkami (żeby było ładniej),
  • Płytka dwustronna,
  • Gniazdo DC pasujące do zasilacza,
  • „Coś” do zamienia 12v w 5v dla zasilania Lillypad, np. 7805, AMS1117 wyciągnięty z Arduino – cokolwiek co da 5v na wyjściu,
  • Duże tranzystory NPN, np. TIP122,
  • Rezystory na bazę tranzystorów, ok. 360Ω,
  • Podkładki (10szt starczy), śrubki o średnicy 2mm i długości 6 i 16mm (po 5szt) z nakrętkami (po 3 na śrubkę),
  • 4xterminale,
  • Przewody do lutowania

Dodatkowo: lutownica, mini-wietarka (można się obyć, ale idzie szybciej), pistolet na gorący klej. Do zaprogramowania Lilypad będzie potrzebować przejściówki UART do USB.

O taśmach LED (i mocy)

O taśmach LED pisałem więcej w tekstach dotyczących budowania podświetlenia telewizora. Taśmy tego typu są stosunkowo prądożerne. Każda dioda RGB typu 5050 musi być zasilana 12v a potrafi pobrać 240mW. Przy 24 diodach (8 segmentów) robi się już prawie 0.5A i 6W mocy. Ponieważ kanały koloru czerwonego, niebieskiego i zielonego sterowane są osobno, daje to po 2W na każdy z nich. Przeniesienie takiego natężenia prądu i rozproszenie takiej mocy wymaga już całkiem solidnego tranzystora. Przykładowo, jeżeli spojrzycie na dokumentację do 2n2222:

  • Jest w stanie przenieść nawet 1A (parametr: Ic – collector current) – tu pasuje,
  • Jest w stanie rozproszyć max. 625mW (parametr: total device dissipation) – zagotuje się!

Spójrzcie teraz na stosunkowo tani (2PLN) TIP122:

  • Jest w stanie przenieść nawet 5A,
  • Jest w stanie rozproszyć max. 65W (oczywiście z wieeeelkim radiatorem)!

Naszym wyborem będzie więc raczej TIP122 (lub podobny). Schemat podłączenia:

sketch_nmosfet_bb_arduinoDo taśmy podłączamy 12v bezpośrednio z zasilacza (najczęściej czarny przewód). Kanały R, G i B z taśmy podłączamy na kolektory tranzystorów. Emitery tranzystorów podłączamy do masy. Bazy tranzystorów podłączamy przez rezystory (np. 360Ω) do pinów Arduino zdolnych generować sygnał PWM (oznaczone tyldami).

Przez połączenie masa – emiter – kolektor – taśma popłynie całkiem niezły prąd. Nie używajcie kynaru do wykonania tego podłączenia, weźcie coś grubszego.

Zawsze warto najpierw przetestować na płytce stykowej:

lightbulb_21

Budujemy

Dekiel

Całą budowę zacząłem od zakrętki. Plan przewidywał umieszczenie w niej trzech potencjometrów. Zacząłem od nawiercenia 3 otworów wiertłem 8mm:

lightbulb_00Za pomocą obcęg usuńcie ząbki na potencjometrach:

lightbulb_01Potencjometry umieszczone w zakrętce:

lightbulb_02

Już możecie nałożyć na nie gałki:

lightbulb_84Wybrane przeze mnie rozmieszczenie potencjometrów nie było przypadkowe:

lightbulb_03…dzięki niemu lutowanie było już proste. Pamiętajcie, że do zewnętrznych styków potencjometrów należy podłączyć „+” i masę. Środkowy styk podłączamy do wejść analogowych na Arduino:

lightbulb_04I szybki test:

lightbulb_05
Przykładowy kod:

Słoik

Do „słoika” miała trafić cała elektronika i taśma LED. Zacząłem od przycięcia dwustronnej płytki 5×7:

lightbulb_06Chwila z frezarką:

lightbulb_07Teraz wziąłem się za gniazdo zasilające. Trochę pogiąłem wtyki tak, żeby obejmowały płytkę:

lightbulb_10Pozostał otwór w słoiku:

lightbulb_11

Montaż Lilypad

Pomysł z montażem Lilypad polegał na przykręceniu go ponad płytką za pomocą śrubek o średnicy 2mm i długości 16mm. Śrubki nie tylko umocują Lilypad, ale i będą stanowić połączenie pinów z płytką główną.

lightbulb_61Na każdą śrubkę potrzebne są 3 nakrętki. Jedna pod Lilypad, jedna nad płytką przewlekaną – a ostatnia pod nią.

Żeby zapewnić lepszy kontakt, do kabelków przylutuję podkładki:

lightbulb_41Łapiąc podkładkę między nakrętkami zapewnię sobie maksymalny styk. Pamiętajcie o wywierceniu otworów w odpowiednich miejscach płytki przewlekanej;

lightbulb_31

Zasilanie

Diody wymagają napięcia 12v. Podłączę je bezpośrednio do zasilacza przez terminal.

Lilypad wymaga maksymalnie 5.5v. Wyprowadzę 12v z wtyku na jakiś stabilizator napięcia. Akurat na półce leżały AMS1117 kupione kiedyś do naprawiania Arduino (często się palą:)). Mały problem: obudowa SOT223. Na szczęście znalazły się odpowiednie przejściówki:

lightbulb_22

7805 – to standardowy wybór – i możecie go spokojnie użyć.

lightbulb_23Zgodnie z instrukcją, AMS1117 wystarczy kondensator tantalowy na wyjściu, ok. 22uF. Z braku tantala użyłem zwykły elektrolit:

lightbulb_24Tak więc zasilanie z gniazda 12v wychodzi bezpośrednio na jeden z terminali a z drugiej strony – na stabilizator.

Wszystko połączyłem pod spodem tak, żeby wyprowadzić zasilanie na śrubki wkręcane w płytkę. Pod śrubkami umieściłem kabelki z przylutowanymi podkładkami:

lightbulb_42   lightbulb_43

Podłączamy LED

Lilypad napędzany jest przez ten sam kontroler co Arduino UNO: AtMega 328. Kontroler ten generuje PWM na:

  • Pin 5 i 6; 980Hz,
  • Piny 3, 9, 10, 11: 490Hz.

Na wszelki wypadek podłączyłem się do 3, 9 i 10. Zacząłem od przylutowania kabelków do taśmy:

lightbulb_12Do sterowania użyłem tranzystorów TIP122. Przylutowałem je na płytce:

lightbulb_63Z zamontowanym Lilypad:

lightbulb_72lightbulb_71

Programowanie Lilipad

Lilypad można programować przez Arduino IDE. W tym celu będziecie potrzebować przejściówki UART-do-USB.

lightbulb_51

Więcej o Lilypad znajdziecie tutaj: Lilypad: jak to uruchomić.

Podłączcie ją następująco:

Pin przejściówki Pin Lilypad
GND B – 1 od lewej
2 od lewej
VCC 3 od lewej
TX 4 of lewej (RX)
RX 5 od lewej (TX)
RTS G – 6 od lewej

W IDE wybierzcie:

  • Płyta: Arduino Mini
  • Procesor: Atmega328
  • Port: port przejściówki USB.

Teraz wystarczy już wpisać program i wysłać go na kontroler.

Jak sami widzicie – kod jest raczej prosty:

  • Potencjometry podłączyłem do pinów A0, A2 i A4 (#define …_PIN_KNOB)
  • Bazy tranzystorów podłączyłem do pinów 3, 9 i 10 (#define …_PIN)
  • W każdym przebiegu pętli loop() odczytuję wartości nastaw potencjometrów – funkcja getPots(),
  • getPots() używa analogRead() z wejść analogowych; tak dokładniej to czyta napięcie na środkowym pinie potencjometra (ten działa jak dzielnik 0..5v),
  • Jeżeli nastawy różnią się od poprzednich – zmieniam sygnał generowany na pinach, do których podłączone są bazy tranzystorów.
  • Sygnał PWM generuje się instrukcją analogWrite()

Galeria

lightbulb_81 lightbulb_82 lightbulb_83

Drobna uwaga

Zabawka zadziałała całkiem fajnie, ale uwaga: umieszczenie jej w plastikowym pudełku nie jest najlepszym pomysłem. A przynajmniej nie powinno się jej włączać na zbyt długo. Tranzystory, diody – wszystko się grzeje i może spowodować stopienie plastiku. Nigdy nie zostawiajcie takiej zabawki bez opieki.

Źródła

2 komentarze do “Świecąca Bulba: taka sobie kolorowa zabawka z Lilypad…”

  1. i tyle roboty, dlubania, programowania, wiercenia i lutowania zeby moc obejrzec sb przyciemnianie lub rozjasnianie swiatelek w 3 kolorach, w dodatku zabawka niebezpieczna dla dzieci, bo sie nagrzewa. szkoda czasu juz nie mowie o pieniadzach.

    1. Witaj,
      z grzaniem się masz rację – stąd notatka na końcu tekstu (choć nie dzieje się to po chwili – ani 10 minutach). Zabawka nie jest dla dzieci – ale na zamówienie nauczyciela prowadzącego zajęcia:) I możesz mi wierzyć – wzbudziła niezłą sensację wśród młodzieży, a kilkoro nawet zainspirowała:) Tego nie da się przeliczyć na żadne pieniądze. Więc jak najbardziej – opłacało się:)
      Pozdrawiam,
      Arek

Dodaj komentarz