Odbiornik IR z łatwą zmianą pilota

Odbiornik IR z łatwą zmianą pilota

Witam,

Chciałbym przedstawić projekt odbiornika IR umożliwiającego sterowanie dowolnym urządzeniem (np. na 230v) za pomocą pilota IR. Założenia były takie, aby umożliwiał on szybką zmianę pilota i był zbudowany z elementów które miałem pod ręką. Wiem że na majsterkowie podobny projekt był już opublikowany, ale moje opracowanie ma jedno udogodnienie. Mianowicie przycisk do ustawiania kodu.

To do dzieła!

Elementy jakie będziemy potrzebować w wersji testowej to:

 

Na początek zajmiemy się podłączeniem do arduino.

Odbiornik_IR_Arduino
Podłączenie do Arduino

 

odbiornik-arduino1
Wygląd rzeczywisty układu

Przed wgraniem programu należy pobrać i przenieść do środowiska Arduino bibliotekę IRremote

Kod programu jaki musimy wkleić do środowiska Arduino

Teraz opiszę krótko zasadę działania: Na początku deklarowane są biblioteki, piny. W funkcji setup() ustawiane są odpowiednie piny jako wejścia, wyjścia i uruchamiana jest obsługa podczerwieni. W pętli loop() rozpoczyna wykonywanie się głównego programu. Czeka on na wciśnięcie buttona lub odebranie sygnału z pilota. Kiedy odbierze go to dzieli na cztery zmienne: a, b, c, d. Jeśli przy okazji będzie wciśnięty setPin  to zapisze te zmienne do EEPROM. Jeżeli jest na odwrót to z EEPROM są sczytywane wartości. W ostatnim warunku sprawdzana jest zgodność kodów odebranych z pilota z kodami z EEPROM. W kodzie są także komentarze więc myślę że nikt nie będzie miał problemu ze zrozumieniem go.

To tyle w kwestii programu. Teraz zajmiemy się wykonaniem finalnej wersji.

 

Do finalnej wersji przydadzą się jeszcze:

  • czysty mikrokontroler Atmega328
  • Płytka uniwersalna
  • triak np. Bt138 i optotriak np. moc3021
  • zasilacz 5v np ze starego telefony komórkowego
  • kabel i gniazdko 230v
  • jakaś obudowa

 

Na schemacie zaznaczone są nazwy pinów  w Arduino aby łatwiej się wszystko łączyło.

Przy budowie części odpowiadającej za sterowanie 230v należy zachować szczególną ostrożność gdyż pomyłka może mieć tragiczne skutki.

Robisz to na własną odpowiedzialność!

Odbiornik_IR
Schemat wersji finalnej całego projektu

Jakby ktoś pytał jak to jest połączone w rzeczywistości to tak to wygląda: plątanina kabelków i trochę termogluta :)

odbiornik2
Wygląd rzeczywisty projektu

 

Dodaję jeszcze filmik z działania:

 

Na koniec jeszcze krótko przypomnę jak programuje się czysty mikrokontroler:

Ja to robię w środowisku arduino 1.0.6

Więc tak do Atmegi podłączamy programator tak jak na powyższym schemacie:

SCK – PB5

MISO – PB4

MOSI – PB3

RST – Do pinu reset uC

+5v uC – +5v programatora

GND – GND (podłącz nawet wtedy gdy nie podajesz zasilania z programatora!)

 

Nie zapomnijcie dodać także kondensatorów filtrujących przy uC 100uF elektrolityczny i 100nF ceramiczny. Bez nich wasz układ może działać niepoprawnie.

 

Nazwy pinów Arduino w Atmega8/168/328

Obrazek pochodzi z tej strony.

 

Na końcu pozostało zmodyfikować trochę wpis boards.txt aby środowisko Arduino zaczęło obsługiwać atmegę328 z wewnętrznym oscylatorem 8MHz. W tym wątku jest napisane więcej o tym pliku (co oznaczają poszczególne linie).

Dodajemy na końcu tego pliku

Przez tę modyfikację w menu narzędzia-płytka mamy na końcu do wyboru tą płytkę. Pozostało jeszcze wybrać odpowiedni programator (USB-ASP) poprzez kliknięcie w narzędzia-programator-usbasp.

arduino
Meny narzędzia-płytka

Gdy już mamy wszystko podłączone to klikamy: narzędzia-wypal bootloader co ustawi fusebity procesora (bootloader się nie wgra, bo nie jest zdefiniowany w powyższym pliku ale i tak go nie potrzebujemy bo programujemy przez ISP nie przez UART). Na koniec aby wgrać program do procesora/płytki klikamy załaduj bądź plik-załaduj używając programatora. Temat programowania mikrokontrolerów w Arduino jest bardzo rozległy więc ja przedstawiłem jak to zrobiłem.

Dziękuję za uwagę. Zapraszam do komentowania i oceniania :)

Ocena: 4.39/5 (głosów: 57)

Podobne posty

16 komentarzy do “Odbiornik IR z łatwą zmianą pilota

  • Fajny projekt, brawo za zwiększenie uniwersalności przez dodanie programowania pilota na pewno w przyszłości wykorzystam do własnych projektów, daje 5.

    Odpowiedz
  • Naprawdę ciekawy projekt. W przyszłości z pewnością go zbuduję, a może z ciekawości dołożę ze 2 kanały – było by super.

    Zasłużone – 5

    ps. bardzo dobry opis.

    ps2. Czy nie dało by się tu wstawić atmegi 8?

    Odpowiedz
  • Tylko jedna uwaga odnośnie filtracji napięcia
    Dwa kondensatory nie wystarczą. Szczególnie jeśli układ jest podłączony do 230V.
    Należy dodać kondensatory pomiędzy GND i VCC na każdym pinie zasilającym. Nawet jeśli wydaje się , że wszystko gra. Bo wystarczy nagły wzrost zakłóceń ( np. postawisz układ koło mikrofalówki , uruchomiSz odkurzacz czy coś w tym stylu. ) i mikrokontroler się zawiesi. Zazwyczaj stosuje się jeden kondensator ceramiczny 100nF i jeden kondensator elektrolityczny 1 uF ( low ESR ). To zazwyczaj wystarcza a jeśli występują większe wahania napięcia to dodaje się też jeden stabilizator napięcia wraz z odpowiednimi kondensatorami na wejściu i wyjściu. Duży kondensator elektrolityczny ma sens jeśli występują krótkotrwałe wahania napięcia ale przy większych nie wystarczy. Lepiej dmuchać na zimne bo potem można się długo zastanawiać czemu układ nagle przestał działać. Kondensatory nie są drogie a w większości przypadków zapewniają stabilną pracę układu.

    Odpowiedz
  • Już nawet wiem, gdzie to można zastosować.
    Jak toś ma TV z zewnętrznym system Audio, który w przypadku braku sygnału na MUX buczy, może tak sobie zakodować ten układ, by kod włączający TV załączał zasilanie dla systemu audio :>

    Odpowiedz

Odpowiedz

anuluj

Masz uwagi?