Zastanawialiście się kiedyś, czy można wykorzystać pierwszy lepszy pilot (np. od telewizora) do sterowania dowolnym urządzeniem w domu? Otóż można i wbrew pozorom jest to banalnie proste :) I właśnie tym zajmiemy się w dzisiejszym poście.
Na początku pokażę Wam, jak nauczyć Arduino odczytywać sygnały wysyłane przez dowolnego pilota, a później omówię kilka układów, które umożliwią włączanie i wyłączanie np. lampki nocnej, czy ściemnianie i rozjaśnianie diod LED.
Pamiętajcie, że Arduino jest tutaj wykorzystywane tylko dlatego, że wygodnie się na nim prototypuje. Po zaprojektowaniu całego odbiornika możemy przerzucić program na dowolny mikrokontroler i zejść z kosztami całości poniżej 10zł :)
Odbieranie sygnału z pilota
Praktycznie wszystkie domowe piloty wykorzystują do komunikacji światło podczerwone, więc na początek musimy się zaopatrzyć w jakiś odbiornik podczerwieni. Ja w swoim układzie wykorzystałem popularny scalony odbiornik TSOP2236 (koszt około 3,60zł).
Odbiornik łączymy z Arduino wg poniższego schematu:
Następnie musimy zaopatrzyć się w bibliotekę IRremote, która pozwoli w bardzo prosty sposób odczytywać sygnały odbierane przez odbiornik. Bibliotekę IRremote możecie pobrać stąd (bezpośredni link do pliku zip). Po pobraniu i rozpakowaniu paczki kopiujemy całą bibliotekę do folderu /librares/ znajdującego się w katalogu z Arduino IDE.
Teraz możemy już wrzucić na Arduino następujący program:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#include <IRremote.h> #define irPin 11 IRrecv irrecv(irPin); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.print("0x"); Serial.println(results.value, HEX); delay(250); irrecv.resume(); } } |
Program ten ma tylko jedno zadanie – odczytywać dane z odbiornika podpiętego pod 11 pin i wysyłać je do Serial Monitora. A czym jest ten cały Serial Monitor? Jest to proste narzędzie, dzięki któremu możemy podglądać w komputerze to, co mówi do nas Arduino :)
W Arduino IDE jest wbudowany Serial Monitor, którego możemy uruchomić wybierając z menu Tools -> Serial Monitor. Po włączeniu zobaczymy puste okienko, w którym będą się pojawiały wiadomości wysyłane przez Arduino za pomocą funkcji Serial.print(). Załadowany przed chwilą program wykorzystuje tą funkcję do wyświetlania kodów wciskanych w naszym pilocie klawiszy.
Ja do sterowania wykorzystałem pilot od starego wentylatora pokojowego:
Po wciśnięciu po kolei wszystkich przycisków Serial Monitor wyświetlił mi ich kody:
Mając już kody przycisków, które chcemy wykorzystywać, wystarczy dopisać kawałek programu, który będzie wykonywał jakąś akcję po odebraniu konkretnego kodu z pilota:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
#include <IRremote.h> #define irPin 11 IRrecv irrecv(irPin); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { switch (results.value) { case 0x143226DB: Serial.println("w lewo"); break; case 0xE0984BB6: Serial.println("w gore"); break; case 0x39D41DC6: Serial.println("w prawo"); break; case 0x371A3C86: Serial.println("w dol"); break; case 0xA32AB931: Serial.println("srodek"); break; } irrecv.resume(); } } |
W powyższym przykładzie skorzystałem z instrukcji switch, która umożliwia szybkie sprawdzenie, czy w odebranych danych (results.value) znajduje się któryś z naszych kodów. Konstrukcja tego kawałka programu jest prościutka, więc mam nadzieję, że każdy z Was poradzi sobie z dopisaniem swoich kodów :)
Po wgraniu powyższego programu i wciśnięciu tych samych przycisków w pilocie Serial Monitor nie wyświetli już ich kodów, a przypisane nazwy:
I to już wszystko, jeżeli chodzi o zaprzyjaźnianie Arduino z naszym pilotem :) Przejdźmy teraz do nieco bardziej praktycznych przykładów.
Sterowanie diodą LED za pomocą pilota
W pierwszym przykładzie pobawimy się umieszczoną na płytce Arduino diodą L, która podpięta jest pod pin 13. Układu nie musimy zmieniać. Drobne zmiany musimy wprowadzić jedynie w programie:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
#include <IRremote.h> #define irPin 11 IRrecv irrecv(irPin); decode_results results; #define diodaPin 13 int diodaStatus = LOW; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(diodaPin, OUTPUT); } void loop() { if (irrecv.decode(&results)) { switch (results.value) { case 0xA32AB931: Serial.println("srodek"); diodaStatus = ~diodaStatus; digitalWrite(diodaPin, diodaStatus); delay(250); break; } irrecv.resume(); } } |
Większość kodu, który teraz dodałem (linie 6, 7, 13 i 23) powinna być już dla Was jasna i oczywista po przeczytaniu mojego postu wprowadzającego do Arduino, dlatego nie będę go omawiał.
Nowością, o której chyba wcześniej nie wspominałem, jest to, co pojawiło się w linii 22. Dzieje się tutaj rzecz bardzo prosta – do zmiennej diodaStatus jest zapisywane jej przeciwieństwo. Jeżeli zmienna była ustawiona na LOW, to zmieni się na HIGH (i odwrotnie). Dzięki temu prostemu trickowi po przyciśnięciu środkowego przycisku w moim pilocie mogę na przemian zapalać i gasić diodę.
Proste? Jasne, że proste! Ale zróbmy coś ciekawszego…
Sterowanie lampką nocną za pomocą pilota
W równie prosty sposób możemy włączać i wyłączać np. lampkę nocną, lub jakiekolwiek inne urządzenie w domu (np. ekspres do kawy:). Jedyne, co musimy zrobić, to odrobinę zmodyfikować nasz układ, dokładając do niego przekaźnik pracujący pod napięciem 5V (koszt 2,30zł) i tranzystor BC547 (koszt 20gr), który będzie tym przekaźnikiem sterował. Dodatkowo, jak słusznie kilka osób w komentarzach zwróciło uwagę na to uwagę, równolegle do cewki przekaźnika trzeba podpiąć diodę prostowniczą, np. 1N4007 (koszt 10gr):
W programie zmienić trzeba jedynie numer pinu, do którego będziemy podpinać tranzystor (w powyższym przykładzie jest to pin 3).
Pamiętaj, że zabawa z napięciem sieciowym jest bardzo niebezpieczna dla zdrowia i życia. Zanim zaczniesz montować układ upewnij się, że kabel sieciowy nie jest podłączony do gniazdka. Osoby niepełnoletnie powinny montować układ pod czujnym okiem osoby dorosłej.
I w tej chwili już możemy włączyć np. ekspres do kawy nie ruszając się z łóżka ;) Oczywiście pod Arduino można podpiąć tyle urządzeń, ile zostało nam wolnych pinów – w przypadku Arduino UNO możemy bez żadnych kombinacji podłączyć nawet 19 urządzeń :)
Jedyne, co w zaprezentowanym wyżej przykładzie może trochę przeszkadzać, to dźwięk przełączającego się przekaźnika. Możemy go wyeliminować zmieniając nieco cały układ:
Na powyższym schemacie układ z tranzystorem i przekaźnikiem został zastąpiony przez optotriak MOC3021 (koszt 1zł) oraz triak BT138 (koszt 2,20zł). Rozwiązanie to jest nieco droższe, ale za to całkowicie bezgłośne.
Optotriak w zaprezentowanym układzie odpowiada za galwaniczne odseparowanie Arduino od wysokiego napięcia, a triak za odcinanie napięcia od podłączonego urządzenia.
Proste? No jasne! Ale zróbmy coś jeszcze ciekawszego ;)
Płynne sterowanie jasnością diody za pomocą pilota
Na Majsterkowaej stronie na Google+ Wojtek poprosił o opisanie, jak zrobić płynną regulację jasności za pomocą pilota. Już pokazuję co i jak :)
Na potrzeby tego przykładu zrobimy sobie prosty układ z diodą LED podłączoną pod pin 3:
Jasnością diody będziemy sterować za pomocą PWM (o którym wspominałem tutaj), dlatego ważne jest, żeby była podłączona do któregoś z pinów oznaczonych jako PWM.
Mając już zmontowany układ, możemy zabrać się za program, który w zasadzie niewiele różni się od programów z poprzednich przykładów:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
#include <IRremote.h> #define irPin 11 IRrecv irrecv(irPin); decode_results results; #define diodaPin 3 int jasnosc = 0; void setup() { Serial.begin(9600); irrecv.enableIRIn(); pinMode(diodaPin, OUTPUT); } void loop() { if (irrecv.decode(&results)) { switch (results.value) { case 0xE0984BB6: if(jasnosc < 255) {jasnosc = jasnosc+5;} Serial.println(jasnosc); analogWrite(diodaPin, jasnosc); break; case 0x371A3C86: if(jasnosc > 0) {jasnosc = jasnosc-5;} Serial.println(jasnosc); analogWrite(diodaPin, jasnosc); break; } irrecv.resume(); } } |
W 7 linii utworzyłem sobie zmienną jasnosc i przypisałem jej wartość 0. W zmiennej tej będzie zapisywana jasność, z jaką ma świecić dioda (w przedziale od 0 do 255). Dodatkowo aktualny poziom jasności wysyłam sobie do Serial Monitora (linie 22 i 28), żeby móc podglądać, jak jasno świeci dioda przy różnych wartościach.
W instrukcji switch dodałem sobie kody dwóch przycisków z mojego pilota – w górę (rozjaśnianie) i w dół (ściemnianie). Podczas rozjaśniania sprawdzam w linii 21, czy jasność nie jest już ustawiona na maksymalną wartość. Jeżeli nie, to zwiększam ją o 5 i w kolejnej linii ustawiam ją na wyjściu, pod które jest podłączona dioda. Dla ściemniania wszystko dzieje się analogicznie – najpierw sprawdzam, czy jasność nie jest już na zerze, a następnie zmniejszam ją o 5.
Wynikiem działania tego kodu będzie coś takiego:
Proste? No ba! Ale przecież rozjaśnianie i przygaszanie jednej diody szybko się nam znudzi, dlatego zrobimy coś jeszcze ;)
Płynne sterowanie jasnością taśmy LED za pomocą pilota
W kolejnym przykładzie pobawimy się w rozjaśnianie taśm LED, których nie można podpiąć bezpośrednio pod któryś z pinów w Arduino, bo nie dość, że są zasilane wyższym napięciem (12V), to ciągną też za dużo prądu. Dlatego też taśmę LED musimy podpiąć za pośrednictwem tranzystora BC547 (ten sam, co w przykładzie z przekaźnikiem):
Od strony programu kompletnie nic się nie zmienia, więc układ będzie już działać. Poniżej wrzucam filmik, na którym pod Arduino miałem podpiętą zarówno lampkę, jak i przyklejoną do niej taśmę led, która w nocy doświetla mi klawiaturę:
Pamiętajcie tylko, że przez ten tranzystor może popłynąć prąd o maksymalnym natężeniu 100mA, jeżeli więc chcielibyście podłączyć dłuższy kawałek taśmy LED, trzeba by poszukać jakiegoś mocniejszego tranzystora.
Sterowanie komputerem za pomocą pilota od TV
Ten przykład możecie potraktować jako mały bonus, ponieważ nie da się go w prosty sposób przenieść na dowolny mikrokontroler.
Jeżeli macie pod ręką Arduino Leonardo, możecie też w prosty sposób sterować swoim komputerem. Wystarczy taki kawałek programu, żeby za pomocą pilota sterować np. kursorem myszy:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
#include <IRremote.h> #define irPin 11 IRrecv irrecv(irPin); decode_results results; int poziom = 0; int pion = 0; void setup() { irrecv.enableIRIn(); Mouse.begin(); } void loop() { if (irrecv.decode(&results)) { switch (results.value) { case 0xE0984BB6: Mouse.move(poziom, pion-5, 0); break; case 0x371A3C86: Mouse.move(poziom, pion+5, 0); break; case 0x143226DB: Mouse.move(poziom-5, pion, 0); break; case 0x39D41DC6: Mouse.move(poziom+5, pion, 0); break; case 0xA32AB931: Mouse.click(MOUSE_LEFT); break; } irrecv.resume(); } } |
W powyższym programie wykorzystuję przyciski góra/dół/lewo/prawo ze swojego pilota do sterowania kursorem myszy, oraz przycisk środek do klikania myszką:
Jeżeli masz pilota z większą ilością klawiszy, możesz też bez problemu symulować wciśnięcia klawiszy na klawiaturze, żeby np. za pomocą skrótów klawiaturowych sterować funkcjami różnych programów :) Na stronie z tutorialami do Arduino w sekcji “9.USB” znajdziesz opisy wszystkich funkcji, za pomocą których można symulować różne zachowania myszki i klawiatury w Arduino Leonardo :)
Niestety, jak już wspomniałem wcześniej, w ten sposób mogą się pobawić jedynie posiadacze Leonardo. Tzn. na pozostałych Arduino też da się osiągnąć podobny efekt, ale jest już z tym dużo więcej grzebania.
Proste?
No jasne, że proste! Proste, i co najważniejsze, bardzo tanie, bo jak przerzucimy cały program na jakiś tani mikrokontroler, to koszt całego odbiornika schodzi poniżej 10zł :) A że programować mikrokontrolery już umiemy, bo zostało to bardzo ładnie opisane tutaj i tutaj, to problemu z tym nie będzie ;)
Macie jakieś fajne pomysły, do czego można by wykorzystać takie sterowanie za pomocą pilota?
A może Arduino i sterowanie za pomocą telefonu komórkowego? Przydałoby się kiedyś zrealizować, jak zdobędę Arduino. Telefon jakiś stary kosztuje kilkanaście złotych, można się pokusić o zrobienie czegoś ciekawego, np.: alarm, sterowanie, oddzwanianie, SMS, dużo rzeczy…
Krzysiek Rudnicki
Witam.
Być może powielam jakieś inne pytania, ale mam nadzieję, że jednak nie. Chciałbym sobie skonstruować coś takiego http://bomozna.blogspot.com/p/oswietlenie-poddasza.html do sterowania światłem w pokoju za pomocą telefonu z androidem. Niestety autor tekstu nie jest chętny do pomocy w wykonaniu a sam mam zbyt małą wiedzę żeby cokolwiek z tym zrobić. Jeżeli ktoś mógłby mi pomóc albo chociaż odesłać do jakiejś strony z czymś w rodzaju “how to…” byłbym bardzo wdzięczny ponieważ mimo mojej lektury googla do niczego konkretnego nie doszedłem :<
Z góry dziękuję i pozdrawiam :)
https://www.youtube.com/watch?v=28g2iDQSIRk
Trochę późno ale o takie coś chodzi? :)
Fajny wpis. Jak się bawiłem układami TSOP1736 (też scalone odbiorniki IR) miałem problem bo losowo albo układ nie chciał działać, albo wskazywał jakieś bzdury. Podłączałem go w sposób analogiczny jak tutaj, czyli sam odbiornik bezpośrednio do arduino. Zajrzałem do datasheetu czy może coś tam na temat takich błędów jest. Znalazłem schemat (kondensator i 2 rezystory) poprawnego podłączenia TSOP. Problem zniknął od ręki.
Piotrek: Ja miałem podobnie na innych układach i okazało się, że wystarczy uziemić kompa :-).
No dobra, a teraz czekamy na wpis, jak zrobić własnego pilota IR :) podłączamy klawiaturkę, albo zwykłe małe buttony, wszystko na attiny/atmega i mamy komplet. Domowe centrum bezprzewodowego sterowania wszechświatem. Jeszcze można to połączyć ze sterowaniem arduino przez http://www... fantazja mnie ponosi ;)
Pilota też da się zrobić – żaden problem ;) Tylko raczej nie będzie on tak lekki i kompaktowy, jak jakiś standardowy pilot ;)
A sterowanie Arduino przez neta, to też pikuś. Ba – nawet już zacząłem robić takie domowe centrum sterowania przez net: http://goo.gl/ZL0Si ;)
No to byłoby coś pięknego!!
Do tej pory nie podchodziłem jakoś specjalnie pozytywnie do Arduino, jednak jak napiszesz artykuł o sterowaniu przez kompa poszczególnymi urządzeniami w domu to z miejsca idę i kupuję to cudo.
Mam pytanie. Rozumiem, że Arduino można sterować wszystkimi urządzeniami które mają podczerwień, czy można też innymi elektrycznymi lub jak przerobić inne elektryczne, żeby można było nimi sterować.
Urządzenia nie muszą mieć w ogóle podczerwieni. Podczerwień musi mieć pilot i Arduino – a już same urządzenia podpinasz tak, jak w powyższych przykładach podpinałem np. lampkę nocną :)
To co piszesz jest bardzo ciekawe. A projekt mówiacy o sterowaniu urządzeń w domu przez internet jest imponujący.
Posiadając tylko atmegę i programator USB chyba się nie da odczytać kodów pilota? Czy się mylę?
Da się, ale nie bezpośrednio – dane będą wyśiwietlone na ekranie podpiętym pod atmegę.
Jest dokładnie tak, jak pisze Patryk – kody możesz wyświetlać na jakimś wyświetlaczu podpiętym do Arduino. Ewentualnie możesz się za niecałe 6zł zaopatrzyć w tako konwerter USB->RS232 – wtedy będziesz mógł korzystać na kompie z Serial Monitora bez Arduino (no chyba, że masz w kompie RS232 – wtedy nawet tego ustrojstwa nie potrzebujesz:)
Tak, wiem, też przełączałem Twoje diody :D
ale właśnie, potem wrzuciłeś na fejsa to zdjęcie z linka i nie widziałem, czy gdzieś rozwinąłeś ten pomysł. W jaki sposób sterujesz sprzętami? Przez pilota IR właśnie?
Tamten projekcik stanął chwilowo w miejscu, ale na pewno go jeszcze ruszę. I w nim sterowanie będzie się odbywało tylko przez neta (chociaż nic nie będzie stało na przeszkodzie, żeby wykorzystać też podczerwień, np. między leżącym gdzieś w pokoju Arduino, a lampą na suficie) :)
@pavlick: z gołej ATmegi (168, 328) da się zrobić arduino, najwyżej będziesz potrzebował konwertera USB – Serial TTL (stary kabel do programowania komórek) lub któregoś z odpowiedników MAX232 (konwerter poziomów) i portu szeregowego w komputerze (względnie zestaw USB/RS232 i konwerter poziomów). Ja chwalę sobie płytki pod ATmega 8 (w które wchodzą też 328P) z AVT – jedna ma miejsce na konwerter USB/RS232 (FTDI, koszt scalaka to 13-16zł), więc używam jej tam, gdzie taka komunikacja może być potrzebna. Programuję zwykle programatorem.
Nawet nie trzeba się aż tak bawić. Arduino IDE ma obsługę programatorów. Można nawet zaprogramować Arduino jako programator.
O, to jak go zmusić, by poradził sobie z stk500v2 skonfigurowanym jako avrdoper?
I proszę wybaczyć moje lenistwo – pozwolili już użytkownikom z poziomu SDK bawić się przerwaniami, czy nadal jest to “wiedza tajemna” okraszona tabliczką “tam mieszkają smoki” (a tak naprawdę – biblioteki same używają przerwań i ręczne z nimi zabawy mogą to popsuć)?
Ja bym ustawił “Narzędzia->Programator->AVR ISP”
Przerwań zewnętrzych można używać przez funkcję attachInterrupt().
Jeśli chodzi o inne sprawy po za API to używa się ich bez problemu jak w klasycznym avr-libc czyli jak w dokumentacji Atmela.
Możesz normalnie używać rejestrów każdego wbudowanego układu, portu i przerwania poprzez SIGNAL. Bawie się Arduino od wersji 0018 i chyba od zawsze tak było.
W końcu to ich całe api jest tylko nakładką na avr-gcc i avr-glibc.
Jedyną restrykcją jest chyba tylko Timer0, który jest standardowo używany jako źródło czasu dla funkcji delay/delayMicroseconds/millis/micros.
Jeśli ich nie używasz to jego rejestry możesz również spokojnie nadpisać.
Czy w przypadku przekaźnika nie brakuje diody, która ochroni Arduino, w razie wzbudzenia napięcia w cewce przy przepływie prądu przez styki przekaźnika?
Przekaźnik jest podpięty przez tranzystor, który (tak mi się wydaje) powinien ochronić Arduino :)
Artur ma chyba racje, większość schematów z przekaźnikami ma dodatkowo diodę http://www.arduino.cc/playground/uploads/Learning/relays.pdf
a ja mam błąd
avrdude: stk500_getsync(): not in sync: resp=0x00
U mnie tak było, jak ATmega nie miała wgranego bootloadera. Jakoś przy zabawach go skasowałem bo nie był potrzebny. IDE z paczki z Ubuntu 12.04.01
Przekaźnik nie ochroni tylko zadziała jak dioda (tranzystor to warstwy NPN, a dioda NP), która skieruje impuls prosto do Arduino. Przy większych mocach może się okazać, że Arduino się resetuje hgw czemu.
Miało być “Tranzystor” zamiast “Przekaźnik”.
Są też tranzystory Mosfet z wbudowaną diodą.
No dobra – widać moja teoria była błędna, więc już dodałem info o diodzie zarówno do schematu, jak i do opisu :)
Serdecznie dziękuję za zwrócenie uwagi!
O widzisz, i masz kawałek, którego mi brakowało – zamiast identyfikować protokół pilota, używasz gotowej biblioteki :)
Mój problem polega na tym, że nie wiem, w jakim języku pilot gada (dzięki Twojemu postowi już wiem, jak się do niego dobrać :) – na razie po prostu moja “gwiazdka naścienna” reaguje na opadające zbocze (a by nie zmieniała trybów zbyt często – przez sekundę czy 2 wyłączone zostają przerwania).
By było zabawniej – kod piszę od zera, bez SDK Arduino – jak będę wiedział który protokół jest w użyciu, to dekoder da się napisać np. w oparciu o to: http://www.sbprojects.com/knowledge/ir/index.php
Odnośnie diod gaszących dla przekaźników – zaleca się zawsze, nawet, jak jest tranzystor. Aczkolwiek w projekcie resettera do serwerów poszedłem na łatwiznę – ULN2803 (8 “darlingtonów” we wspólnej obudowie) i pokrewne odpowiednie diody mają w środku. Swoją drogą – moja lampka też używa tego scalaka w stopniu wykonawczym :)
Dzięki za kolejnego ciekawego posta :)
Ja bym to wykorzystał do pilota serwisowego LG ;D aby uaktywnić USB w telewizorach LG aby odtwarzały DVIXa :)
Bardzo ciekawe urządzenie. Chętnie wysterowałbym tak żonę :)
A ja mam dużo błędów bibliotekę skopiowałem.
Arduino 1.0.1
Tempbuild4263224601529647974.tmp/sketch_oct27d.cpp:7: undefined reference to
IRrecv::IRrecv(int)'
Tempbuild4263224601529647974.tmp/sketch_oct27d.cpp:16: undefined reference to IRrecv::decode(decode_results*)’
/……
Zainstalowałeś bibliotekę IRemote?
Mam to samo…nie wiem w czym jest problem
Być może odpowiedzią jest post poniżej:
Ślubek
16 lutego 2013 o 20:24
Mój stary telefon Sony Ericsson k800i posiadał funkcje sterowania komputerem dzięki możliwości Bluetooth i odpowiedniego programu do komunikacji z telefonem ->> komputerem. Można było otwierać przeglądarkę internetową, wpisywać adresy stron w okienko przeglądarki i wiele innych. Przypuszczam, że możliwości wykorzystania jest wiele, dlatego też można by było się przyjrzeć możliwością wykorzystania technologii bluetooth do takich bajerów.
Wyskakuje mi błąd: “(…) librariesIRremoteIRremote.cpp:227: error: ‘TCCR2A’ was not declared in this scope (…)”. Wie ktoś w czym może być problem?
Proszę się upewnić, co do rodzaju używanego mikrokontrolera. Użycie w kodzie rejestru TCCR2A świadczy o przeznaczeniu kodu na uC ATMEGA168/328. Kod nie będzie działał na starszym arduino z ATMEGA8 (zakładam, że na takim uC następuje próba uruchomienia), który nie ma Timera 0 i nazwy rejestrów są przez to inne, niż w 168/328. Szczegóły w notach katalogowych a w wersji na skróty tutaj:
http://www.societyofrobots.com/member_tutorials/files/ATMega8.pdf
http://www.societyofrobots.com/member_tutorials/files/ATMega168.pdf
Witam.
Mógłbyś napisać (a najlepiej wrzucić także jakieś zdjęcie), w jaki sposób podłączyć lampkę nocną lub inne urządzenie do tego układu? Da się to zrobić bez rozcinania kabla? Jak prawidłowo podłączyć do tego układu i do lampki zasilanie 230V z gniazdka? Pewnie dla wprawionego elektronika lub majsterkowicza są to oczywiste sprawy, ale ja nie wiem, jak zrobić prawidłowo tak, aby działało i żeby niczego nie popsuć przy okazji. ;-)
Będę wdzięczny za odpowiedź.
Pozdrawiam.
Z napięciem sieciowym nie ma żartów – ktoś niewprawiony może np. złapać za przewód pod napięciem w trakcie wprowadzania poprawek czy podłączyć napięcie sieciowe bezpośrednio do Arduino i zjarać komputer. Bezpieczniej sterować żarówką zasilaną z baterii.
Można bez rozcinania to zrobić: bierzesz gniazdko sieciowe + kabel z wtyczką i po prostu podłączasz przekaźnik pomiędzy jeden przewód kabla i jeden wtyk gniazdka. Wtedy wpinasz lampkę do nowego gniazdka, a wtyczkę do gniazdka sieciowego. Nie radzę przełączać tym niczego większego niż żarówka, chyba że masz mocny przekaźnik.
A co w przypadku gdy posiadamy arduino uno? Jak zrealizowac ta emulacje klawiatury/myszki ? Domyslam sie, ze trzeba by bylo napisac program po stronie komputera, ktory odczytywalby odbierane wartosci w przypadku wcisniecia przycisku na pilocie i wykonania odpowiednich komend, sek w tym ze nie wiem jakich. Zapewne sa jakies bibliotek do obslugi myszki i klawy. Ktos mnie naprowadzi na to?
Możesz albo napisać własnie taki program na PC, który nasłuchiwałby na Serialu i symulował wciśnięcia klawiszy, albo tym sposobem: http://mitchtech.net/arduino-usb-hid-keyboard/
Jest na stronie Atmela projekt soft-USB: http://www.atmel.com/Images/doc2556.pdf Można by przystosować pod profil HID.
Ja Cię po prostu nienawidzę, kiedy bym tu nie wszedł to zawsze knuję o tych Twoich pomysłach, później zamiast się skupić na robocie, to skupiam się na zabawkach. Muszę wysłać chyba pismo do providera aby zablokował mi raz na zawsze bloga majsterkowo.pl bo on po prostu uzależnia ! A już na pewno do tej prośby rękami i nogami dołączy się moja kobieta.
Pozdrów kobietę i nie marudź ;)
Czy oporności na rysunkach są oznaczone tak jak powinny być? Czyli dla przykłądu, w tym:
http://s.więcek.pl/majsterkowo.pl/uploads/2012/10/odbiornik-podczerwieni-moc.png
2x 330 Ohm
1x 220 Ohm
?
Czemu tutaj jasność diody określają liczby 0-255, a w poście OD CZEGO ZACZĄĆ ZABAWĘ Z ARDUINO, o szybkości migania diody są liczby 0-1024 ?
Wynika to ze specyfikacji Arduino (tzn. ogólnie mikrokontrolera) – na wyjściu (OUTPUT) możemy ustalać wartości od 0 do 255, a na wejściu (INPUT) analogowym od 0 do 1024.
Rozumiem, jak można odczytać komendy przycisków pilota nie mając Arduino tylko chcąc wykorzystać sam procesor i czy wystarczy sam procesor np.Atmega8 czy trzeba jeszcze jakieś rezystory, kondensatory itp?
Hmm… Trochę to nazbyt skomplikowane jak dla takiego początkującego majsterkowicza jak ja :)
ja kiedyś GRIDER’a używałem prostsze w wykonaniu
Wie ktoś co może być przyczyną tego, że zmienna która tutaj nazwana jest “results.value” ma zawsze wartość 0x0? Użyłem TSOP31236. Wartość taka sama dla każdego przycisku pilota.
Witam! Pilot sczytany, dioda się zapala!! Sukces! Dzięki za świetny poradnik!!
Mam pytanko, czy do zwykłej płytki stykowej, takiej jak na zdjęciu można bezpiecznie podłączyć 230V? Bo kupiłem resztę drobiazgów, ale mam takie małe wewnętrzne obawy przed podłączaniem płytki pod taki prąd.
PS. zauważyłem, że jak do diody czytającej IR zbliżam palec, to pojawiają się różne odczyty, skąd to się bierze? ktoś wie?
Poprawka, to nie DIODA, a scalony odbiornik.
Stąd, że każde ciało emituje podczerwień :)
Bardzo fajny wpis, na pewno sam też spróbuję to zmajstrować.
Zapytam jeszcze przy okazji, chociaż pewnie już ktoś kiedyś o to pytał. Jakiego programu używasz do robienia schematów, połączeń płytki z Arduino itp.?
schematy pochodzą zapewne z
http://fritzing.org
230V i płytka stykowa? Odważnie.
Do odważnych świat należy ;)
Będzie post jak sterować urządzeniami przez internet ?
A czy jest możliwość podłączenia kilku odbiorników IR?
Najlepiej tak żeby można było dla każdego czujnika definiować dla tego samego kodu wykonywanie innych czynności.
Tzn po wciśnięciu np 1
kiedy odczyta to czujnik 1 zrobi coś tam
kiedy odczyta to czujnik 2 zrobi inna rzecz
Siemka, mam problem wywala mi error w związku z biblioteką, zaznaczam że wszystko dobrze wypakowałem itp. errory:
term:2: error: ‘IRrecv’ does not name a type
term:3: error: ‘decode_results’ does not name a type
term.cpp: In function ‘void setup()’:
term:7: error: ‘irrecv’ was not declared in this scope
term.cpp: In function ‘void loop()’:
term:11: error: ‘irrecv’ was not declared in this scope
term:11: error: ‘results’ was not declared in this scope
I mam jeszcze jeden problem, otóż chciałem żebywyświetlało mi cos w Serial Monitor, ale nic nie pokazuje:/
Witam,
zmontowałem taki układ jak w opisie tylko z innym czujnikiem podczerwieni, problem polega na tym, iz dioda się zapala i gaśnie ale zawsze po dwukrotnym wciśnięciu przycisku na pilocie, pytanie dlaczego?
Witam jaki tranzystor można zastosować zamiast BC547 do rozjaśniania/gaszenia 4 listw halogenów led każdy z nich o mocy 5W ?
Teraz wywala mi takie errory:
c:/arduino-1.0.1/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: odbiornik.cpp.elf section .text will not fit in region text
c:/arduino-1.0.1/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: region text overflowed by 214 bytes
Witam.
Podpiąłem wszystko jak na schemacie, wypróbowałem 5 pilotów i nic mi nie się nie wyświetla. Tak jakby Serial Monitor nie działał w ogóle. Ktoś ma jakieś pomysły?
A może odbiornik nie działa?
Mi tranzystor nie działa, ciągle na tym samym poziomie swieci latarka :/
Wszystko działa ok, mam jednak obawy z podpięciem tego do sieci i stąd moje pytanie: Mam przekaźnik z oznaczeniami AC 250V 8A.
Czyli maksymalny prąd przełączania to 8A. Skąd mam wiedzieć ile prądu pobiera dane urządzenie które chciałbym podpiąć? Wszystko jest, jeśli już, podane w Watach. Mogę tu zastosować wzór P=U*I (więdząc, że mamy 230V) ? Albo jak to sprawdzić. Mam multimetr max 10A.
Dodam tutaj bardzo istotny fakt o którym nie wspomniał autor: biblioteka IRemote wykorzystuje w jakiś sposób PWM na pinie 2. Nie można korzystać wtedy z niego jako PWM. Dość dziwne, ale nie chciało mi się analizować całej biblioteki dlaczego tak się dzieje.
Witam.
Próbowałem wgrać program do włączania diody na mikrokontroler
Attiny 2313 tak jak w tym poradniku https://majsterkowo.pl/progamowanie-mikrokontolerow-na-przykladzie-attiny2313/
Niestety przy kompilacji wyskoczyły mi takie błędy:
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp: In member function ‘void IRsend::mark(int)’:
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:227: error: ‘TCCR2A’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:227: error: ‘COM2B1’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp: In member function ‘void IRsend::space(int)’:
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:235: error: ‘TCCR2A’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:235: error: ‘COM2B1’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp: In member function ‘void IRsend::enableIROut(int)’:
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:253: error: ‘TIMSK2’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:263: error: ‘TCCR2A’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:263: error: ‘WGM20’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:263: error: ‘TCCR2B’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:263: error: ‘WGM22’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:263: error: ‘CS20’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:263: error: ‘OCR2A’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:263: error: ‘OCR2B’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp: In member function ‘void IRrecv::enableIRIn()’:
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:279: error: ‘TCCR2A’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:279: error: ‘WGM21’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:279: error: ‘TCCR2B’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:279: error: ‘CS21’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:279: error: ‘OCR2A’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:279: error: ‘TCNT2’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:282: error: ‘TIMSK2’ was not declared in this scope
C:UsersBartekDesktoparduino-1.0.1-windowsarduino-1.0.1librariesIRremoteIRremote.cpp:282: error: ‘OCIE2A’ was not declared in this scope
Wie może ktoś jak to naprawić?
Mam odbiornik IR ale nie wiem jaki, napisano na nim 3607 49A, po podłączeniu jak na schemacie zaczyna się szybko mocno grzać. Ktoś doradzi czy taki odbiornik się nada?
Mnie by interesowało takie coś
https://www.youtube.com/watch?v=fOHN-yMpOMo&feature=plcp
odbiornik ir na mikrokontrolerze ze sterowaniem 5 kanałami z diodami (2 kanały np migają). Jest szansa na jakiś tutorial?
Witam,
Czy mógłby ktoś wytłumaczyć po co steruje się przekaźnikiem poprzez tranzystor? Dlaczego nie można po prostu dać napięcie z Arduino na cewkę przekaźnika (na wyjściu jest 5V także teoretycznie tyle ile potrzeba aby cewka zwarła styki) ?
Bo wyjścia z Arduino mają małą wydajność prądową i mogą nie wytrzymać takiego obciążenia (dużo zależy od przekaźnika i rozmiarów cewki, która się w nim znajduje).
Mi wyrzuca takie błędy:
ketch_dec07a:4: error: ‘IRrecv’ does not name a type
sketch_dec07a:5: error: ‘decode_results’ does not name a type
sketch_dec07a.ino: In function ‘void setup()’:
sketch_dec07a:8: error: ‘irrecv’ was not declared in this scope
sketch_dec07a.ino: In function ‘void loop()’:
sketch_dec07a:10: error: ‘irrecv’ was not declared in this scope
sketch_dec07a:10: error: ‘results’ was not declared in this scope
Jak to naprawić?
Miałem ten sam problem. Wygląda na to, że tego typu błędy występują, gdy Arduino IDE nie potrafi znaleźć biblioteki.
Na stronie http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-libraries można poczytać o bibliotekach – nie jest tam to co prawda napisane wyraźnie, ale wydaje się, że nazwa katalogu musi być identyczna co nazwa plików z rozszerzeniami .h i .cpp.
Plik archiwum zawierający bibliotekę IRremote zawiera pliki w spakowanym katalogu ‘Arduino-IRremote-master/’ – po rozpakowaniu go do libraries/ powinno się zmienić tą nazwę na IRremote (i pamiętać, że są dwie literki ‘Rr’ w nazwie :^) ). Po zmianie nazwy należy zrestartować IDE i będzie się kompilować poprawnie.
Nie mogę skompilować tego programu z IRremote jeżeli urządzeniem docelowym jest attiny2313 -sypie błędami. Jest może biblioteka IRremote tylko dla attiny2313?
D:\arduino\libraries\IRremote\IRremote.cpp:279: error: ‘TCNT2’ was not declared in this scope
Witam!
W jaki sposób przerzucić program wykorzystujący bibliotekę IRremote na mikrokontroler? Postępując jak w poradniku https://majsterkowo.pl/progamowanie-mikrokontolerow-na-przykladzie-attiny2313/ wyskakują błędy.
Biblioteka IRremote jest za duża na atiny2313, napisana jest pod 328.
Czy jesli już zaprogramowaliśmy mikrokontroler na programatorze to czy możemy wyjąć owy mikrokontroler i wsadzić do osobnej płytki zawierającej układ np: odbiornik ir, rezystory, przekaźnik, zasilanie 5v i bedzie działać ? (a w programatorze tworzyć nowy projekt) czy na stałe korzystamy z całego programatora arduino ?
Jak dokładnie działa ten optotriak, nigdzie nie moge tego znaleźć i co znaczy że mają przejście przez zero?
Rezystory do BT138 to 330 Ohm?
Wszystko podlaczylem jak trzeba ale dioda sie nie wylancza.
Uzylem drugiego sposobu ( cichego ) do wlanczania diody.
Chcialbym juz wszystko podlaczyc do kontaktu itp ale dioda sie nie wylancza.
Dziękuje za ten wpis, działa wszystko co opisałeś, nawet nagrałem filmik z moim Arduino + IR + RGB LED
https://www.youtube.com/watch?v=YrR_1wdZNMk
Super. Bardzo przydatny post. A tu na temat zakłóceń od przekaźników i gdzie diodę a gdzie coś innego co te zakłócenia niweluje.
http://mikrokontrolery.blogspot.com/2011/03/przekaznik-i-zaklocenia.html
Pozdrawiam
Napisałem całkiem podobny programik do włączania listew LED przez IR , ale z racji moich małych umiejętności elektronicznych mam problem z tranzystorem. Wykonałem identyczny układ z tranzystorem BC547, ale listwa LED (ok. 30 cm) świeci bez przerwy bardzo słabym światłem. Układ w ogóle nie reaguje na komendy pilota. Gdy w grę wchodzi tylko jedna dioda zasilana z Arduino wszystko jest ok. To także nie jest wina tranzystora gdyż sprawdziłem 4 identyczne i jest to samo. Proszę o jakąś pomoc w tej sprawie.
Zastosuj BD 135 http://www.fairchildsemi.com/ds/BD/BD137.pdf
Witam na podstawie tego wpisu przerobilem sobie starego pilota i samochodzik R/C w calkiem fajna zabawke. Wykorzystalem do tego celu starego pilota samochodzik arduino uno oraz motor shield, kod od sterowania jasnoscia diody steruje pwm dla motorshield dodalem tylko cztery dodatkowe przyciski do zmiany kieronkow jazdy.
Pozdrawiam
Mam pytanko odnośnie podłączenia przekaźnika… Jak idą jego wyprowadzenia na pierwszym rysunku? Dlaczego dodatkowo zastosowano tranzystor? Nie można dać tranzystora z ceweczką sterowanej na 5V(takie jak w arduino)? Połączenie ze środkowej nóżki TSOP2236 do przekaźnika jaki ma sens? :)
Proszę o wyrozumiałość i wyjaśnienie, stawiam pierwsze kroczki z Arduino, do 230V na razie się nie pcham, ale zaciekawiło mnie to :) Z góry dziękuję za pomoc i opis projektu tutaj zamieszczony :) Powodzenia !
Cześć, czy tym optotriakiem i triakiem można przełaczac prad 24vac do elektrozaworu do nawadniania czy lepiej uzyc zwykly przekaznik elektromagnetyczny ?
Chcialem sterować wentylatorem 12v i wszystko zrobiłem tak jak jest opisane w Płynne sterowanie jasnością taśmy LED za pomocą pilota i mam jeden problem wszystko działa poprawnie wentylator ma przechodzi na różne prędkości obrotowe tylko niech ktoś mi powie dlaczego na niższych obrotach wentylator piszczy ??? i każdy inny też ???
Witam obecnie chce zrobic sterowanie tasma led rgd wszystko ladnie zdefiniowane cztery przyciski na pilocie do zalaczania poszczegolnych kolorow 3 przyciski i wylaczenia czwartym ale chcial bym zrealizowac cos takiego ze przyciskiem na pilocie moge wlaczyc dany kolor a jesli przycine drugi raz ten przycisk to go wylacze i jeszcze wprowadzic plynna zmiane dla danego koloru przyciski + i – ale nie wiem jak to za bardzo zrealizowac ma ktos moze jakis pomysl????
Bardzo ciekawe urządzenie. Szkoda tylko , że nie można tym wysterować żony :)
Kiedys wyczailem ta stronke w internecie, pomyslalem kolejna DIY, no coz, ale co projekt to po prostu geniusz w swojej prostocie. Oby tak dalej. Zycze sukcesow i z niecierpliwoscia czekam na kolejne projekty, zwlaszcza teraz, gdy zaopatrzylem sie we wlasne UNO :D.
Cieszę się niezmiernie, że Majsterkowo przypadło Ci do gustu :)
Czego można użyć zamiast odbiornika TSOP2236? Nigdzie w okolicy nie mogę go dostać :( Pozdrawiam i czekam na odpowiedź.
Andrzeju to sa kompatybilne odbiorniki TFMS5360, TSOP2236, SFH5110-36, TSOP1736 – odbiornik podczerwieni 36KHz. A co to Pana Lukasza mam pytanie, zlozylem ukladzik rozpakowalem biblioteke, ale gdy zczytuje kody danych przyciskow dzieje sie cos dziwnego. Kazdy guzik ma po kilka przypisanych kodow do siebie i zdaje mi sie ze wybierane sa one losowo. Wybierajac 2 kody z dwoch roznych przyciskow i podpinajac je do kodu programu, dioda nasluchu TX pali sie wiec odbiera sygnal, lecz led jak byl martwy tak jest. Led sprawdzony dziala. Nie mam pojecia co robie nie tak, moze to te piloty jakies specyficzne, pilot pochodzi od wiezy philipsa FW-630 Mini Hi-Fi System.
Witam :)
http://www.tme.eu/html/PL/przekazniki-subminiaturowe-serii-g5v1/ramka_1984_PL_pelny.html
Czy mogę zastosować taki przekaźnik do sterowania (w moim przypadku lampką nocną)?
Dokładnie ten: http://www.tme.eu/pl/details/g5v1-5/przekazniki-elektromagn-miniaturowe/omron/g5v-1-5vdc/ :)
Na 230V nie polecam, następuje zlepianie się styków.
Mam taki problem: Chciałem wykorzystać algorytm z przykładu o płynnym serwowaniu diodą led i przekształcić go na serowarnie serwem. Moja próba się nie powiodła, bo po wczytaniu programu serwo działa tylko raz tak jak powinno a później praktycznie się nie rusza.
Mój program wygląda tak:
#include
Servo sdol;
int pola = 0;
void setup()
{
Serial.begin(9600);
sdol.attach(2);
}
void loop () {
switch(Serial.parseInt()){
case 1://Jeśli wciśniesz “1” to serwo przekręci się w prawo o 5 stopni
if(pola 4) {pola= pola-5;}
sdol.write(pola);
break;
}
}
Bardzo proszę o pomoc i góry dziękuje.
trochę ucięło mi program (od void loop):
void loop () {
switch(Serial.parseInt()){
case 1:
if(pola 4) {pola= pola-5;}
sdol.write(pola);
break;
}
}
Witam, mam taki problem, gdy podłączyłem odbiornik podczerwieni by użyć go do odczytu kodów z polota, zaczął się grzać i śmierdzieć spalenizną, nie mam pojęcia czemu tak się stało.
Witam, moj problem polega na płynnym rozjasnianiu/przyciemnianiu diody a mianowicie gdy przytrzymam przycisk to zwieksza mi jasnosc z, np: 105 na 110 i gdy trzymam przycisk wcisniety to nic sie nie dzieje. Aby sie pojasniało musze naciskac przycisk, trzymanie go nic nie daje :/ przy zczytywaniu przycisków gdy raz nacisne przycisk to wyskakuje dobry kod, ale gdy trzymam przycisk to na poczatku wyskoczy dobry kod a pozniej 0xfffffffff i tak dopoki nie puszcze. Na kazdym pilocie to samo.
A drugi moj problem to to samo co u kolegi Pacmana:
“Witam, mam pytanie.
Posiadam arduino uno R3 i po wgraniu programu płynnego sterowania jasnością diody LED na PINIE 3 nie działa PWM. Dioda pozostaje zgaszona i zapala się dopiero przy maksymalnej wartości parametru (od razu “pełnym” światłem).
Po przełączaniu się na dowolny inny pin z tyldą i po zmianie nr pinu w kodzie programu wszystko działa oki.”
Pozdrawiam
Co muszę zmienić jeżeli mam odbiornik:1838T ?
Witam
Mam taki (wydaje mi się) mały problem. Gdy wklejam program do płynnego sterowania diodą led na mikrokontroler jest wszystko ok i od strony technicznej jest wszystko dobrze. Ale dioda nie chce się rozjaśniać tylko po prostu gdy osiągnę maksymalną wartość (255) zaświeci się i świeci do póki nie zejdę z wartości 255. Czy Ktoś mógłby mi powiedzieć gdzie może być błąd?
Mam taki problem przerobiłem program na coś takiego:
#include
#define irPin A0
IRrecv irrecv(irPin);
decode_results results;
#define diodaPin 13
#define przePin 12
int diodaStatus = LOW;
int przeStatus = LOW;
int jasnosc = 0;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(diodaPin, OUTPUT);
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case 0x6D5D1DB3:
Serial.print(“Dioda 13 “);
Serial.println(diodaStatus);
diodaStatus = ~diodaStatus;
digitalWrite(diodaPin, diodaStatus);
delay(250);
break;
case 0x25D2E369:
Serial.print(“Lampa 12 “);
Serial.println(przeStatus);
przeStatus = ~przeStatus;
digitalWrite(przePin, przeStatus);
delay(250);
break;
}
irrecv.resume();
}
}
pod pod 13 mam podłączoną diodę, pod 12 poprzez CTPN 2222 przekaźnik. Problem jest taki że przekaźnik wtedy nie działa ale jak zamienię na:
#define diodaPin 12
#define przePin 13
to przekaźnik działa a dioda się lekko żarzy, o co common, problem z programem czy Arduino Uno?
Witam.
Być może powielam jakieś inne pytania, ale mam nadzieję, że jednak nie. Chciałbym sobie skonstruować coś takiego http://bomozna.blogspot.com/p/oswietlenie-poddasza.html do sterowania światłem w pokoju za pomocą telefonu z androidem. Niestety autor tekstu nie jest chętny do pomocy w wykonaniu a sam mam zbyt małą wiedzę żeby cokolwiek z tym zrobić. Jeżeli ktoś mógłby mi pomóc albo chociaż odesłać do jakiejś strony z czymś w rodzaju “how to…” byłbym bardzo wdzięczny ponieważ mimo mojej lektury googla do niczego konkretnego nie doszedłem :<
Z góry dziękuję i pozdrawiam :)
Dzięki Ci, ekstra wszystko opisałeś!
Cześć,
Jak wstawić w Fritzingu opisany optotriak i triak? – na liście części ani w wyszukiwarce nie mogę ich znaleźć. Używam Fritzing 0.7.12 (b6882 2013-02-13)
Bardzo proszę o naprowadzenie.
super rozwiązanie
Mam odbiornik TSOP31236 i kody odczytuje mi losowo. Co mogę na to poradzić?
Mam to samo z TSOP2236, więc może to zależy od Pilota. Może ktoś to mądrzejszy potwierdzić to info?
spróbuj celować pilotem na drugą stronę odbiornika.
podłącz odbiornik pod pin PWN… z taka ~ przy numerze piny
W jaki sposób można zapisać w pamięci arduino odczytaną z pilota podczerwieni wartość i potem ją wykorzystać w programie? Chodzi mi oto żeby po zmontowaniu układu była możliwość dostosowania go do innego pilota bez konieczności wgrywania programu na nowo.
tzn chodzi mi oto żeby odczytaną wartość zapisać w takiej postaci żeby można ją później użyć w funkcji “case”. Proszę o podpowiedź.
Witam!
Mam takie pytanie dotyczące wartości rezystorów na pokazanych schematach.
Wartości na rysunkach są takie jak powinny czy są to tylko przykładowe?
Dla zapytania jakie są wartości na tym rysunku :
http://s.więcek.pl/majsterkowo.pl/uploads/2012/10/odbiornik-podczerwieni-moc.png
Mam problem podczas wgrywania do arduino programu wy skak uje mi taki error:
‘IRrecv’ does not name a type
Proszę o szybką podpowieź co z tym zrobić.
Jak wyświetlić kody z pilota na ekranie PC? Nie mam arduino, planuje zakup USBasp i WinAVR
Mam problem podczas wgrywania do arduino programu wyskakuje mi taki error:
‘IRrecv’ does not name a type
O co w tym chodzi ??
Odbiornik IR działał mi przez 2 dni do dzisiaj, kiedy próbowałem uruchamiać pilotem silniczek DC poprzez mostek H. Podejrzewam że w pewnym momencie mogłem kabelki źle powpinać, ale jesli nie to było przyczyną, to już nie wiem…
Kuba
Jeśli chcesz wgrać to , żeby Ci działało wgraj to do Dokumenty/arduino
a nazwe tego stiff… zmień na IRRemote i działa
Jeśli by ktoś miał podobny problem to rozwiązać go się da w następujący sposób:
Pobieramy bibliotekę z tego posta jest to napisane na samym początku
Jak sterować dowolnym urządzeniem w domu za pomocą pilota od TV i Arduino?
Po pobraniu i rozpakowaniu paczki kopiujemy całą bibliotekę do folderu /librares/ znajdującego się w katalogu z Arduino IDE.
Jak już wgraliśmy :
Tylko zmieniamy nazwę z :
shirriff-Arduino-IRremote-3f70ad2
na
IRremote
Na 100% będzie działać.
Pozdrawiam Run
Witam! Od kilku miesięcy z zapałem czytam stronkę i bardzo się cieszę, że istnieje. Mam pytanie dot. IR. Na 4 piloty 2 mi działają idealnie, 1 puszcza dziwne kody 1 nic. Myślę, że działają na innych częstotliwościach. Czy jest możliwość sprawdzenia jaką obsługuje pilot mając do dyspozycji arduino, czy trzeba kupić kilka odbiorników i próbować do skutku?
Pozdrawiam serdecznie kierownictwo strony.
odpowie ktoś w końcu jakie to oporniki bo autor jak zwykle zapomnial o tym wspomnieć
Oporniki dokładnie takie, jak na załączonych obrazkach (we wszystkich schematach zawsze wstawiam odpowiednie wartości:)
dla posiadaczy arduino due bibloteke IRemote.h można ściągnąć z tąd https://github.com/enternoescape/Arduino-IRremote-Due
należy pamiętać, że arduino due pracuje pod 3.3v ale moj odbiornik IR dał rade i na tym napięciu
Na jaki mikrokontroler to przerzucić żeby był bardzo tani i działało ?
ATmega8a spokojnie wystarczy.
No nie wystarczy na atmegę 8, ponieważ biblioteka IR nie wejdzie na niego, czy wie ktoś skąd ściągnąć bibliotekę IR, która wejdzie na inne MCU niż atmega328?
Witam!
Posiadam wszystkie części tylko teraz mam problem , żeby za pomocą arduino przerzucić na ATmegę8a program . pomoże ktoś ? jakiś schemat jak to podłączyć i zaprogramować ??
Skorzystaj z USBasp i oczywiście manuala uP
Kupiłem 5 Atmeg8A i same z tym kłopoty nie da się na nich wypalić Bootloadera ani nic z nimi zrobić bo wyskakuje błąd :
avrdude: stk500_getsync(): not in sync: resp=0x00
a po drugie ta atmega jest za mała chyba nawet na ten kod :
Świeże kości są pozbawione ustawień fusów – aby wgrać w nie bootloader musisz je odpowiednio ustawić. Kupiłem 10 szt atmeg 2560 – które żadnym programatorem nie mogłem ruszyć. Na szczęście mam Elneca i wbijałem zgraną oryginalną kość z Arduino do nowych – po tej operacji daje się z nimi pracować i je normalnie programować. W przypadku 8 Asp powinien sobie poradzić – ale poczytaj o fusach aby go przygotować pod wgranie boot’a
Witam,
Czy jest możliwość zrobienia tego na
Arduino Pro Mini 328 ? Chodzi mi o sterowanie pilotem IR wyjściami I-O oraz PWM.
Pozdrawiam i z góry dziękuję za odpowiedź.
witam… chciałem zrobić zterowanie kompem z pilota al nie wiem czemu ale nie działa link http://www.arduino.cc/en/Tutorial/HomePage i nie mam skad wziasc funkcji.. pomoze ktos????
Cześć,
Czy jest możliwość podłączenia attiny2313 do usbasp tak by odczytywał dane z IR i wyświetlał w serial?
Czy jak podłacze Arduino Leonardo do komputera gdzie nie mam sterownikow od Arduino i chce zeby działał jako urządzenie hid to czy komputer bedzie widział Arduino jako klawiature lub mysz czy bez zainstalowanych sterowników nie będzie działał?
Na 99% powinno działać.
Mam pytanie odnośnie tej taśmy LED. Chciałbym zastosować tranzystor PNP (BC640). Rozumiem, że nie wystarczy podpiąć identycznie jak na rysunku żeby to działało (w datasheecie widać, że nóżki są inaczej ułożone).
Płynne sterowanie jasnością diody za pomocą pilota nie dziala mi moge klikac million razy na – i jest ciagle 0…0…0
a klikne raz na + to wchodzi na 5 i sie wiesza…
HELP!
Hej, mam głupie pytanie (tak wiem powiecie, że jestem leniwy) ale jak wiadomo, ile omów musi mieć rezystor, do optotriaka? Tak samo połączenie triak – 230V? Co przez co mam podzieli? Np dla MOC3042, If niby tam jest 0.06 więc wychodzi mi 5/0.06 = 84ohma? Czy ja biore złe dane? Czy jestem aż taki uległy w tym :P?
Witam. Czy ten “cichy” układ zastępujący przekaźnik będzie działał na 12V… Czy jest tylko na 230v??
Z góry dziękuje za odpowiedz.
Nie będzie
Możesz powiedzieć dlaczego?
Ależ będzie. Też się zdziwiłem. Podobno “triaki stosowane są w obwodach prądu przemiennego”, no ale może to dlatego że Wikipedia. Zarówno przekaźnik jak i układ z triakiem podłączałem do 12V prądu stałego. Byłem przekonany że triak nie zadziała a wieczorem nie chciałem ryzykować z poważną energetyką. Niespodzianka – zadziałało. Dlaczego?
Witam. Może mnie ktoś oświecić w temacie włączania lampki nocnej pilotem? Jak zrobić to w taki sposób że lampkę można włączyć/wyłączyć pilotem ale dodatkowo żeby była możliwość ręcznego włączenia/wyłączenia bez pilota, tak żebym mógł włączyć ją pilotem a np przechodząc obok wyłączyć ręcznie?
Moja lampka jest zasilana z kontaktu, ale przechodzi przez transformator i sam halogen zasilany jest 12V. Podlaczylem przekaznik do wyjscia 12V nie ruszajac fabrycznego przycisku wlacz/wylacz. dlatego jesli np. chce recznie wylaczyc lampke – wystarczy ze wcisne fabryczny przycisk.
Witam, niestety nie wiem dlaczego ale mam problem z zaprogramowaniem odbiornika pod arduino, sciagnalem biblioteczke i wgralem tak jak bylo napisane do libraries, jednak podczas programowania wyskakuja mi bledy:
sketch_dec17a:3: error: ‘IRrecv’ does not name a type
sketch_dec17a:4: error: ‘decode_results’ does not name a type
sketch_dec17a.ino: In function ‘void setup()’:
sketch_dec17a:8: error: ‘irrecv’ was not declared in this scope
sketch_dec17a.ino: In function ‘void loop()’:
sketch_dec17a:12: error: ‘irrecv’ was not declared in this scope
sketch_dec17a:12: error: ‘results’ was not declared in this scope
Bardzo bym prosil o pomoc, z gory dziekuje.
Dawid
A dołączyłeś ją na początku kodu?
mam to samo ;/
Zmien nazwe foldera lub zipa na IRecv czy jakakolwiek krotsza, potem w menu arduino (przynajmniej u mnie tak jest) wgraj ja. u mnie smiga, pilotem od tv Pionieer z 10m steruje wlaczeniem i wylaczeniem malego silniczka DC
Witam, niestety mam problem z zaprogramowaniem pilota do arduino.
sciagnalem biblioteczki wpisalem wszystko tak jak trzeba, jednak moj odbiornik prawdopodobnie nie dostaje sygnalu z pilota lub czasem dostaje go z kilku minutowym opoznieniem, bardzo bym prosil kogos o pomoc.
z gory dziekuje, Dawid.
Obserwujesz dane wysyłane przez serial? Wklej kod
Tak, klikam przyciski na pilocie lecz nie ma zadnej reakcji ewentualnie po kilku minutach wyskakuja mi jeden lub dwa kody pomimo tego ze wcisnalem 4 przyciski:
0x6FB84EC6
0x4DB5DAA8
Tyle mi wyskoczylo po dluzszym oczekiwaniu.
#include
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print(“0x”);
Serial.println(results.value, HEX);
delay(250);
irrecv.resume(); }
}
chętnie bym poznał sklep gdzie można kupić przekażnik z cewką 5v i stykami które wytrzymją 230V
chętnie bym poznał sklep gdzie można kupić przekażnik z cewką 5v i stykami które wytrzymją 230V
Np. na lispolu jest
Jeżeli ktoś jeszcze przegląda tę stronę, to chciałbym zwrócić uwagę na pewną niezgodność tego poradnika z danymi technicznymi.
Przedstawione jest tutaj, że patrząc od strony “oczka” odbiornik ma tak oznaczone nóżki:
Natomiast w dokumentacji technicznej jest:
Jak widać zamieniona jest nóżka 1 z 3. Mogę wnioskować po tym, że schemat jest niepoprawnie narysowany, gdyż poprawny byłby kiedy odbiornik byłby ustawiony tyłem.
Schemat o który mi chodzi: http://s.więcek.pl/majsterkowo.pl/uploads/2012/10/odbiornik-podczerwieni.png
Dokumentacja techniczna: http://botland.com.pl/attachment.php?id_attachment=117
Dodatkowo producent zaleca użycie kondensatora 4,7uF i rezystora 100 Ohm, o czym w poradniku nie ma nic wspomniane.
Ktoś mógłby się pokusić o napisanie takiego poradnika z wykorzystaniem USBasp lub chociaż zewnętrznego mikrokontrolera
Mam szybkie pytanie. Czy naprawdę da się przenieść program do włączania lampki nocnej za pomocą pilot na ATTINY 2313. Gdzieś podczas przeglądania forum rzuciła mi się informacją, że biblioteka IRremote jest za duża i zwyczajnie nie wejdzie.
– 2K Bytes of In-System Self Programmable Flash dla Attiny2313
Ile zajmuje skompilowana biblioteka to nie wiem.
Można przerobić bibliotekę żeby działała z jednym pilotem, rozmiar pliku maleje
Bardzo ciekawi mnie temat sterowania różnymi odbiornikami w domu radiowo/przez IR. Jedyny problem wg mnie który jest to zasilenia może nie tyle arduino bo szkoda takowego na pojedyncze rozwiazanie ale nawet zwyklej atmegi – kwestia zasilenia jej bez stosowania wielkich zasilaczy
zrobilem tą myszke na pilota oczywiscie podmienilem wszystkie kody pilota (te 0x…) na swoje, plytka odbiera ale kursor sie nie rusza, ktos wie dlaczego?
czym są robione te fajne schematy na płytkach prototypowych? ściągnąłem fritzing i nie zawija tak fajnie kabli :)
Czy jeśli posiadam jedynie UsbAsp (nie mogę odczytać kodów HEX przez serial), czy jest możliwość zapisywać te kody w EEPROM, a potem odczytać je z pamięci np przez MkAVRCalculator?
Czy mogę poprosić o zwykłe schematy tych układów zamiast tych rysunków ? Chociaż ten do sterowania lampą, gdyż chcę zbudować układ na AVR zamiast Arduino ;) z góry dziękuję
Powinna być także możliwość zapalania lampki zarówno pilotem jak i zwykłym przełącznikiem. Jak rozwiązać taki problem?
Ja mam problem gdy wgrałem do libraries ten plik co ma kodować i gdy włączam arduino klikam wgraj wyskakuje mi taki problem D:Program Files (x86)ArduinolibrariesRobotIRremotesrcIRremoteTools.cpp:5: error: ‘TKD2’ was not declared in this scope
PROSZĘ O POMOC ;)
Też tak miałem. Wejdź w folder arduino, następnie do folderu “libraries” i usuń folder tej biblioteki. Otwórz Arduino i spróbuj
Witam, gdy komplikuje szkic wyskakuje mi taki błąd:
c:/program files/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: sketch_feb08a.cpp.elf section .text will not fit in region text
c:/program files/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: region text overflowed by 252 bytes
Dodam że używam USBasp i Atmegi8L
Czy można zrobić tak aby po naciśnięciu przycisku na pilocie otwierał się inny program napisany w Arduino?
mam ten zestaw http://botland.com.pl/odbiorniki-podczerwieni-tsop/2169-pilot-ir-odbiornik-podczerwieni-1838t-modul-i-przewody.html
i jest bardzo mały zasięg i dosłownie trzeba celować pilotem w odbiornik, poradzicie coś ?
mi to nie działa. Sprzecza się z trzecią linią.
Witam, mam problem, bo chciałem przerobić program do sterowania diodą led żeby można było sterować kilkoma ale mi coś nie idzie(odrazu mówię że jestem początkujący) gdy piszę pinMode(DR, OUTPUT) (DR to nazwa wcześniuej…) to przy kompilacji mi wyskakuje błąd że musi być ) przed ; (czy coś takiego) pomożecie?
Sprawdź czy w następnej i poprzedniej linijce masz “;”
Czy żeby sterować jasnością np żarówki (220 v) wystarczy regulować pwm’em wejście moc3021?
Witam chciałem zbudować sobie układ z moc3021 i bt138. Wcisnąłem wszystko w płytkę stykową, załadowałem prosty program (blink) i ku mojemu zaskoczeniu, dioda zapala się, ale nie gaśnie, nawet po odpięciu optotriaka. Moje pytanie, tutaj, czy może to być wina napięcia? Używam 12v DC.
Witam.
Pomoże ktoś rozwiązać problem ?
Chciałbym przykładowo żeby dioda na pinie np 11 wyłączała się z opóźnieniem. Z tym, że dopiero po spełnienie 2 warunków:
– po wciśnięciu guzika Off oraz guzika np ok
Próbowałem to zrobić w ten sposób:
Po wciśnięciu guzika off na pinie 5 ustala się stan wysoki.
Następnie chciałem dodać warunek w case , że dioda wyłączy się po np 5 sekundach, gdy na pinie 5 jest stan wysoki oraz zostanie dodatkowo wciśnięty ok, ale nie udało mi się tego zrobić, bo przy różnych opcjach wpisanego kodu wywalało błędy.
Nie dawno zacząłem zabawę w programowanie i nie wiem czy jest w ogóle możliwość wstawienia warunku w case w funkcji switch ?
Mi podczas kombinowania 1 programu wyskakuje:
e:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: IR_kontroler.cpp.elf section .text will not fit in region text
e:/program files (x86)/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../../avr/bin/ld.exe: region text overflowed by 804 bytes
bc 547 dla taśmy led to pobożne życzenie :) , proponuję chociaż bd 135
Dzien dobry, dopiero zaczynam swoja przygode z arduio wiec mam wiele problemow.
Czy ktos moze powiedziec mi dlaczego lub z jakiego powodu nie deklaruje mi kodu pilota np.
“error: OXA70 was not declared in this scope” program jest dokladnie taki jak jak ten zamieniajacy na monitorze portu szregowego kody na kierunki. Dziekuje z gory za pomoc.
witam
a masz wgraną bibliotekę IRremote ??
witam posiadam TSOP1738 i gdy chcę sczytać kod z pilota to mi wyskakują losowe liczby ….
co mam zrobić ??
z góry dzięki za pomoc ;)
może masz takiego pilota np piloty od lego właśnie tak robią
nie od lego ….
każdy pilot jaki mam w domu zachowuje się tak samo …… wcześniej miałem inny układ nie pamiętam co to dokładnie było i z tych pilotów sczytywał kod
a TSOP1738 sczytuje je losowo
ja mam to samo na TSOP4838
Witam,
zbudowałem układ ściemniacza tak jak podane jest powyżej. Niestety podłączona żarówka 60W 230V ściemnia się
bardzo słabo, tzn w bardzo małym zakresie. Gdy podłączę diodę
(oczywiście poza optotriakiem i triakiem), to dioda ściemnia się pięknie
i układ funkcjonuje, jak należy.
Na żarówce 230 V to już tak nie działa.
Czy ktoś podpowie mi dlaczego żarówka w tym układzie ściemnia się tak mało (tzn tak słabo)?
bo ten układ jest przeznaczony do wł/wył a nie pwm :D
Czy tylko mi puszczanie 230V przez płytkę stykową wydaje się głupim pomysłem?
Nikt nie mówi, żeby w ten sposób robić gotowe układy. To była tylko prezentacja, żeby zademonstrować sposób działania.
Witam, fajny artykuł. Czy można by zmienić jakoś kod by LED po wciśnięciu przycisku migała i po naciśnięciu tego samego przestała migać? Jeśli tak to czy mógłby ktoś wkleić tekst programu? Z góry dziękuje.
Witam
Tutorial bardzo zacny.
Zainteresował mnie głownie koniec…
Czy istnieje możliwość by ta lampka sama się powoli rozjaśniała do pełnej wartości po
wciśnięciu przycisku a potem sama z pełnej wartości do zera po wciśnięciu tego samego
przycisku wyłączała? Jeśli tak to czy mógłby ktoś napisać jak to zrobić. Byłbym wdzięczny.
Pozdrawiam
Cześć
Właśnie czytałem ten artykuł i aż zabrałem się do sprawdzania czy faktycznie w myśl tego
co napisał autor “Po zaprojektowaniu całego odbiornika możemy przerzucić program na dowolny mikrokontroler i zejść z kosztami całości poniżej 10zł :)” można to zrobić na innym MCU. No i wybór padł na bieduino taki biedny odpowiednik arduino, który ma na pokładzie ATMEGE8. No i klops już po pierwszym programie do sprawdzania komend z pilota ”
#include
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
}
void loop() {
if (irrecv.decode(&results)) {
Serial.print(“0x”);
Serial.println(results.value, HEX);
delay(250);
irrecv.resume();
}
}”
Okazało się, że ma ponad 9KB i nie wejdzie na ATMEGĘ8 a więc nie da rady tego zrobić na dowolnym MCU? Czy może jest jakiś sposób by to dostosować np. do megi8?
Może ktoś napisać jak to zrobić by faktycznie weszło na dowolny MCU?
Z góry dziękuje.
Można zredukować biblioteke, która odpowiada za podczerwień i wtedy wejdzie.
Witam
Chętnie bym to zrobił , jednak nie wiem jak…
Może kolega by podpowiedział? Byłoby miło.
Czy można sterować jasnością żarówki 230V podłączoną tak jak w tym układzie z trakiem i optoriakiem poprzez PWM ?
Co do płynnego sterowania to jak rozwiązałeś problem z tym że z pilota pierwsze wciśnięcie i przytrzymanie daje właściwy kod HEX a później następuje fala innego powtarzającego się kodu HEX (dla każdego przycisku na pilocie) ? przez co płynne sterowanie jest nie możliwe tylko trzeba non stop naciskać ten sam przycisk lecz nie o to w tym chodzi
Witam czy ktoś jest w posiadaniu pomniejszonej biblioteki tak żeby program dało wgrać się na ATTINY 2313, albo chociaż na megi8???
Witam. Mam taki problem podczas odczytywania kodu pilota. MIanowicie, gdy wcisnę klawisz to wyskakuje mi jego kod 0x750, a gdy wcisnę go po raz drugi to 0xF50. Cała sytuacja się zapętla. Jest na zmianę raz taki kod raz taki. Powie mi ktoś dlaczego tak się dzieje
Pozdrawiam Michu
Mam to samo. Ale nie przeszkadza to w sterowaniu. Ewentualne dopisz kod. Np tak: switch (results.value) {
case 0x750:
Serial.println(“w lewo”);
break;
switch (results.value) {
case 0xF50:
Serial.println(“w lewo”);
break;
Pozdro.
Dzięki za odpowiedź. Z tym nie mam problemu bo zrobiłem to dla dwóch kodów. Tylko bardzo mnie nurtuje dlaczego tak jest i chciałbym się dowiedzieć o tej sprawie czegoś więcej.
Pomoże ktoś ?
Z tym akurat sobie poradziłem. Tylko chciałbym się dowiedzieć dlaczego tak jest.
Pojawia mi się taki błąd
ffff.ino: In function ‘void setup()’:
ffff:6: error: redefinition of ‘void setup()’
Blink:2: error: ‘void setup()’ previously defined here
ffff.ino: In function ‘void loop()’:
ffff:11: error: redefinition of ‘void loop()’
Blink:14: error: ‘void loop()’ previously defined here
Zastanawia mnie jeszcze dlaczego podczas sterowania jasnością diody jej maksymalny zakres = 250. Z czego to wynika? Na jakiej podstawie została dopasowana ta wartość. Dziękuję za odp.
Poczytaj sobie o PWM
“…Sygnał PWM można wygenerować za pomocą funkcji analogWrite(x, y), gdzie x reprezentuje odpowiedni pin cyfrowy, natomiast y reprezentuje wartość współczynnika wypełnienia impulsu (z przedziału od 0 do 255, gdzie 0 oznacza 0% współczynnik wypełnienia, a 255 oznacza 100% współczynnik wypełnienia)…”
A można jakimś prostym sposobem zrezygnować z przekaźnika ? Chodzi mi o jego uciążliwy hałas.
Jakiś triak, tyrystor… no nie wiem – nie znam się :)
Witam. Super sprawa i od razu chcialbym zapytać jeśli ktoś sie orientuje.
Chcialbym zakupic kilka lampek nocnych led ktore sa wlaczane na pilota i chcialbym sterowac je niezaleznie wlaczajac i wylaczajac pojedynczo jednym pilotem.
Da sie to jakos zrobic?
tak wszystko da sie sterowac pilotem ja mam cale oswietlenie w domu podzielone na sekcje i zalanczam je polotem pozatym dodatkowo moge sterowac za pomaca telefonu komorkowego
chcesz wiecej informacji pisz dyksa71@kpnmail.nl
Ja mam sterowanie oświetleniem przez telefon !!! Dzwonię do żony żeby włączyła światło .
C:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: ‘TKD2’ was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
Błąd kompilacji.
U mnie ciągle wyrzuca ten błąd.
Czy ktoś może wyjaśnic czemu kiedy zastosowałem tranzystor 2N2222 – Tranzystor NPN 0.8A.układ działa, a kiedy BD139 – Tranzystor NPN 1.5A już nie?
Pomóż mi pokazuje coś takiego komplikator :
Arduino:1.6.0 (Windows 7), Płyta:”Arduino Leonardo”
E:\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: ‘TKD2’ was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
Błąd kompilacji.
Raport ten będzie miał więcej informacji z
“Pokaż szczegółowe informacje podczas kompilacji”
włącz w Plik > Preferencje
“No jasne, że proste! Proste, i co najważniejsze, bardzo tanie, bo jak przerzucimy cały program na jakiś tani mikrokontroler, to koszt całego odbiornika schodzi poniżej 10zł :) ”
Plik .hex z tym programen zawiera aż 32kB.
Czy ktoś mógłby pomóc, jak zmniejszyć ten plik (bibliotekę ir), aby program spokojnie zmieścił się na ATmegę?
Witam. Bardzo ciekawy projekcik, probowalem zrobic swoja wersje ale chyba skutecznie sie zniechecilem po przetestowaniu 4 pilotow zaden nie dziala tak jak nalezy a mianowicie kiedy zczytuje z nich kody po jednokrotnym nacisnieciu danego przycisku jakis kod sie tam pojawia, ale gdy przytrzymam przycisk kod wyglada tak: 0xFFFFFFFF dla kazdego przycisku jest taki sam, nasuwa sie pytanie jak mam sterowac ta dioda w plynny sposob gdy trzeba przycisk przytrzymac zeby rozjasnic badz przyciemnic diode. Sytuacja jest podobna gdy zawre w programie te kody z pilotow ktore udalo mi sie odczytac po jednokrotnym nacisnieciu guzika; dioda tx zapala sie wiec arduino odczytuja jakis tam przychodzacy sygnal, dioda na plytce stykowej raz sie zaswieci raz nie innym razem wogole nie reaguje ale nie dziala plynnie tak jakby piny PWM byly martwe(przetestowalem chyba wszystkie piny oznaczone tylda) nie mam pojecia co robie zle, moze przyczyna jest tak oczywista ale ja jej niestety nie dostrzegam ;__; jezeli komus przyszlo sie spotkac z owym problemem a jeszcze lepiej go rozwiazac bardzo prosze o porade.
Przy próbie kompilacji programu wyskakuje mi błąd:
D:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: ‘TKD2’ was not declared in this scope
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
Błąd kompilacji.
Co mam robić??
Witam, mam ten sam problem. Proszę o pomoc.
Czy andruino można zastąpić samym mikrokontrolerem? czy za pomocą jednego mikrokontolera i jednego odbiornika można sterowować kilkoma urządzenia?
Można zastosować MOC3041 zamiast MOC3021??
Witam
Układ zbudowany, z regulacją diody wszystko ok ale pod pinem ~6.
Z kolei układ z taśmą ma problem.
Tranzystor zmieniony na BD139, taśma złożona z 20 LED.
Układ po podłączaniu do taśmy nie jest sterowny, taśma ciągle świeci bardzo słabym światłem.
Jakieś pomysły?
Pozdrawiam
Czy zamiast diody 1n4007 może być jakakolwiek inna dioda?
int RECV_PIN = TKD2; // the pin the IR receiver is connected to
^
Błąd kompilacji.
w czym jest problem??
Jaki odbiornik należy zastosować, jeżeli alarmem do sterowania
chcemy wykorzystać popularne na allegro piloty samokopiujące?
http://allegro.pl/pilot-samokopiujacy-do-alarmu-bramy-brelok-i5633767304.html
Witam.
Mam problem z rozpoznawaniem kodu, czujnik odczytuje kod, a następnie wyświetla go na ekranie lcd 2×16. problem w tym że piloty (3) dziwnie reagują, raz gdy je wciskam to wyświetlają ten sam kod a inym razem z każdym naciśnięciem kod jest inny lub niepełny. Ktoś wie jak temu zaradzić?
Dodam że czujnik mam podłączony identycznie jak na schemacie. 1-GND, 2-V, 3-Sygnał.
dlaczego mam: Błąd kompilacji.
pilot.ino: In function ‘void loop()’:
pilot:20: error: ‘OxE0E006F9’ was not declared in this scope
pilot:24: error: ‘OxE0E046B9’ was not declared in this scope
pilot:28: error: ‘OxE0E08679’ was not declared in this scope
pilot:32: error: ‘OxE0E0A659’ was not declared in this scope
‘OxE0E006F9’ was not declared in this scope
pomóżcie !!
Cześć jestem świeżakiem w temacie i chciałem prosić o pomoc bo nie mogę sobie poradzić z połączeniem/włączeniem/zaprogramowaniem pinów w arduino tak zeby pwm działał na pinie 3, a na piny A1 i A2 były podłączone włącz i wyłącz. Osobno jakośto działa ale jak chce to w całość spąc to jest problrm bo nawet kompilacji nie chce przejśc
Witam, wie ktoś ile można Wat przepuścić przez taki optiotrak MOC3021?
DLACZEGO PO WŁĄCZENIU PROGRAMU OD RAZU ZAPALAJĄ SIĘ DIODY?
CHCIAŁBYM ŻEBY TO SIĘ DZIAŁO DOPIERO KIEDY NACISNĘ PRZYCISK
Zalezy pod ktore wyjscie od przekaznika podlaczyles (nc, no) i czy na starcie ustawiles status diody na low czy high
A co z zakłóceniami generowanymi przez triak ?
Witam, Oswietlenie w pokoju steroeane pilotem samo mi sie wlacza co pewien czas, a przed chwila wlaczylo sie i wylaczylo, ktos wie jaka moze byc tego przyczyna?
W opcji z triakiem chyba jest błąd bo rezystor jest wstawiony do przewodu lampki a nie zasilania więc nawet po podaniu na optiotrack z ardurino niebedzie przepływac prąd na triak
Witam,
Zastanawia mnie jedna rzecz. Proszę o pomoc bo nie rozumiem dlaczego na tym schemacie https://majsterkowo.pl/wp-content/uploads/2012/10/odbiornik-podczerwieni-230v.png do sterowania przekaźnikiem 5V potrzebny jest autorowi tranzystor BC547 ?
Odnosnie błedu D:\Program Files (x86)\Arduino\libraries\RobotIRremote\src\IRremoteTools.cpp:5:16: error: ‚TKD2’ was not declared in this scope
Wystarczy usunąć bibliotekę RobotIRremote i wszystko śmiga :)
Witam po przetestowaniu podanego programu czyli przekaznik sterowany pilotem okazalo sie kilka zawartym w kodzie wad otóż po zaladowaniu programu do arduino diody na przekaznikach odrazu zapalaja sie czyli przekaznik jest załaczony i druga sprawa po wylaczeniu jednym przyciskiem jednego przekaznika i probie wylaczenia drugiego przekaznika drugim przyciskiem pilota nalezy kliknac dwa razy aby zadzialal i tyczy sie to do innych przekaznikow, po kilku probach zmieniania statusu na wysoki stan itd nic nie pomoglo dlatego zaczalem szukac innego rozwiazania bardziej praktycznego i trafilem na zmienne bolowskie. kod niestety jest troche dluzszy ale super sie sprawuje wszystko idealnie i plynnie pracuje kazdy przekaznik jest wlaczany i wylaczany jednym przypozadkowanym przyciskiem oto kod mam nadzieje ze komus sie przyda
#include
#include
#define irPin 11
IRrecv irrecv(irPin);
decode_results results;
int relay1 = 3;
int relay2 = 2;
int relay3 = 4;
int relay4 = 5;
bool sp1 = true;
bool sp2 = true;
bool sp3 = true;
bool sp4 = true;
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
digitalWrite(relay1, HIGH);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, HIGH);
}
void loop() {
if (irrecv.decode(&results)) {
switch (results.value) {
case 0xFF827D:
sp1=!sp1;
digitalWrite(relay1, sp1);
delay(150);
break;
case 0xFF42BD:
sp2=!sp2;
digitalWrite(relay2, sp2);
delay(150);
break;
case 0xFFC23D:
sp3=!sp3;
digitalWrite(relay3, sp3);
delay(150);
break;
case 0xFFB847:
sp4=!sp4;
digitalWrite(relay4, sp4);
delay(150);
break;
}
irrecv.resume();
}
}
Choc co do poradnika bardzo przydatny fajnie ze ktos takie cos stworzyl :)
Ja ostatnio robiłem pilota i tak się rozpędziłem, że wyszedł mi całkiem spoko system… szkic, opis i źródło aplikacji w C# umieściłem na githubie https://github.com/sutaj/Arduino-IR-Remote
Mam problem ponieważ mam wszystko identycznie jak w poradniku a wyskakuje mi blond int RECV_PIN = TKD2; // the pin the IR receiver is connected to
Prosze o pomoc dziękuje
Projekt świetny, pomimo że ma już 5 lat.
Mam pytanie: jak przerobić kod aby on/off poza pilotem można było przełączać też microswich’em? (np. włączam miroswich’em a wyłączam pilotem lub odwrotnie)
Z góry dziękuję za odpowiedź.
Jakie kodowanie ma ten pilot ? Potrzebuję mały pilot z kodowaniem RC5 ;)
Żebym to ja wiedział :D Nie mam nawet pojęcia, gdzie tego pilota mam…
Witam , czy w projekcie “Sterowanie lampką nocną za pomocą pilota” można zamienić Triak BT138 na BT139?? Proszę o odp. Z góry dzięki :)
Witam, jaki tranzystor zastosować w przypadku taśmy LED 5m, 3,1W/m czyli z zapasem niech będzie 16W. Nie bardzo znam się na tranzystorach stąd to pytanie. Próbowałem poszukać w Internecie i czy np. IRF540N IRF 540N Mosfet 33A 100V byłby dobry? Czy jednak za duży i nie będzie dobrze działać?
Do dupy program
witam jakie sa zastosowane oporniki na schemacie tam gdzie przekaźnik załącza lampkę i tam gdzie jest bez przekaźnika. Zaczynam przygodę z arduino i chciałbym spróbować podłączyć. Kody juz mam odczytane i działa.