ARDUINO MEGA i IR LED

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
mfish
Młodszy majsterkowicz
Posty: 2
Rejestracja: 26 lut 2013, 23:24

ARDUINO MEGA i IR LED

Post autor: mfish » 27 lut 2013, 00:05

Witam wszystkich.

Potrzebuję pomocy dotyczącej ARDUINO MEGA, którego nie udaje mi się zmusić do sterowania diodą IR LED. Stosuje się do wszystkiego co wyczytałem na stronie z biblioteką IRremote.h.
Niestety do tej pory nie udało mi się uzyskać żadnego efektu tzn. nie udało się zasymulować jakiejkolwiek akcji pilota. Np. poniższy kod nie przynosi żadnych efektów tzn. nie włącza/wyłącza TV PANASONIC. Dodam, że kod 0x100BCBD oraz adres 0x4004 są na 100% prawidłowe, ponieważ stosując bibliotekę IRremote.h bez żadnego problemu odczytuje te dane po wysłaniu sygnału z oryginalnego pilota do zestawu ARDUINO MEGA + odbiornik IR. To samo jest dla protokołu NEC oraz SONY. Innych nie próbowałem. Dodam, że próbowałem już samodzielnie poskładać zestaw z diodą IR oraz w akcie desperacji kupiłem dwa gotowe shieldy z diodą IR. Za każdym razem efekt jest ten sam czyli nie ma efektu. Być może problem jest w ARDUINO MEGA, np. diodę należy podłączyć do innego PIN. W w przykładach do IRremote.h zawarta jest informacja, że diodę należy podłączyć do PWM PIN 3. Uprzedzając pytania dodam że nie mylę biegunów diody :).

Walczę z tym już miesiąc i doszedłem do ściany. Być może ktoś już zetknął się z tym problemem i zna rozwiązanie. (Szkoda by było takiego ładnego ARDUINO wy... :))

Poniżej przykładowy kod który w połaczeniu z ARDUINO MEGA oraz diodą IR LED nie przynosi efektu.
/*
* IRremote: IRsendDemo - demonstrates sending IR codes with IRsend
* An IR LED must be connected to Arduino PWM pin 3.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* JVC and Panasonic protocol added by Kristian Lauszus (Thanks to zenwheel and other people at the original blog post)
*/
#include <IRremote.h>

#define PanasonicAddress 0x4004 // Panasonic address (Pre data)
#define PanasonicPower 0x100BCBD // Panasonic Power button

IRsend irsend;

void setup()
{
}

void loop() {
irsend.sendPanasonic(PanasonicAddress,PanasonicPower); // This should turn your TV on and off

delayMicroseconds(50);
}

Z góry dziękuję za pomoc i pozdrawiam
Marek

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
cube
Złota rączka
Posty: 834
Rejestracja: 2 gru 2012, 17:02

Re: ARDUINO MEGA i IR LED

Post autor: cube » 27 lut 2013, 00:20

Podłączaj diodę po kolei do pinów pwm oraz do pinów 44-46 - te w mega są również pwm.
Możesz mieć diodę dającą światło innej długości niż wychwytywane przez odbiorniki w sprzętach.
W kodzie nie trzeba by przypadkiem zadeklarować odpowiedniego pinu w sekcji setup?
I tu coś masz opisane na ten temat: http://arduino.cc/forum/index.php?topic=28434.0 Chyba czeka Cię modyfikacja biblioteki.
mfish
Młodszy majsterkowicz
Posty: 2
Rejestracja: 26 lut 2013, 23:24

Re: ARDUINO MEGA i IR LED

Post autor: mfish » 27 lut 2013, 00:36

Wielkie dzięki. Już rozpoczynam studiowanie. Jak dojdę do rozwiązania to się podzielę. Jak dalej będę dreptać w miejscu to również napiszę na czym utknąłem. Powiem tylko, że podejrzewając, iż z MEGA jest jakiś haczyk w kolejnym akcie desperacji, zdążyłem już zakupić LEONARDO :) Choć tak czy siak z MEGA nie odpuszczę :)

Oczywiście wskazówki od innych osób są również mile widziane :)

Jeszcze raz dziękuję.
Marek
Awatar użytkownika
Basil Fawlty
Młodszy majsterkowicz
Posty: 18
Rejestracja: 3 lut 2013, 01:30

Re: ARDUINO MEGA i IR LED

Post autor: Basil Fawlty » 3 mar 2013, 16:33

W Arduino Mega musisz podłączyć diodę pod inny PIN. Rozwiązania trzeba szukać w pliku IRremoteInt.h. Znajdziesz tam między innymi taki zapis:

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
//#define IR_USE_TIMER1 // tx = pin 11
#define IR_USE_TIMER2 // tx = pin 9
//#define IR_USE_TIMER3 // tx = pin 5
//#define IR_USE_TIMER4 // tx = pin 6
//#define IR_USE_TIMER5 // tx = pin 46


Sprzedam Ci też taki mały patent. Jak najprościej sprawdzić czy dioda IR posłusznie mruga? Układ elektroniczy/program najprościej sprawdzisz wpinając równolegle diodę emitującą światło widzialne, natomiast samą diodę sprawdzisz obserwując jej działanie w wizjerze aparatu cyfrowego ( w trybie podglądu ).

Pozdrawiam i powodzenia !:)

p.s W razie niejasności, na wszelki wypadek napiszę też "otwartym kodem" - trzeba podpiąć do pinu 9 PWM ;-)
ODPOWIEDZ

Strony partnerskie: