IR led signalen ontvangen met IR sensor
10 berichten
• Pagina 1 van 1
IR led signalen ontvangen met IR sensor
Beste allemaal,
Ik ben een beetje aan het experimenteren met een IR sensor en een IR led. Beide heb ik aangesloten op mijn Arduino Uno. Ik loop nu tegen het probleem aan dat de IR sensor de signalen van de IR led niet ontvangt. Ik verzend met de IR led een signaal als ik op een schakelaar klik.
Het volgende is het geval:
Druk ik op een knop op de afstandsbediening dan wordt dit wel ontvangen door de IR sensor.
Druk ik op de schakelaar verzend de IR led wel een signaal. (Met de camera zie ik duidelijk dat de IR led het doet. Het kleurt paars op als ik op de schakelaar klik)
Maar dit signaal wordt niet ontvangen door de IR sensor.
De onderstaande code wordt gebruikt:
De IR led is aangesloten met een 330 ohm weerstand.
Wie kan mij hierbij helpen?
Ik ben een beetje aan het experimenteren met een IR sensor en een IR led. Beide heb ik aangesloten op mijn Arduino Uno. Ik loop nu tegen het probleem aan dat de IR sensor de signalen van de IR led niet ontvangt. Ik verzend met de IR led een signaal als ik op een schakelaar klik.
Het volgende is het geval:
Druk ik op een knop op de afstandsbediening dan wordt dit wel ontvangen door de IR sensor.
Druk ik op de schakelaar verzend de IR led wel een signaal. (Met de camera zie ik duidelijk dat de IR led het doet. Het kleurt paars op als ik op de schakelaar klik)
Maar dit signaal wordt niet ontvangen door de IR sensor.
De onderstaande code wordt gebruikt:
- Code: Alles selecteren
#include <IRremote.h>
#define RECEIVE_PIN 2
IRrecv IR(RECEIVE_PIN);
IRsend irsend;
decode_results result;
void setup()
{
Serial.begin(9600);
IR.enableIRIn();
}
void loop()
{
if (IR.decode(&result)) {
Serial.println(result.value, DEC); // Het resultaat wordt geprint als ik op de afstandsbediening klik, maar niet bij een irsend.
IR.resume();
}
// If vereenvoudigd
if (buttonPressed) {
irsend.sendSony(0x68B92, 20); // Dit wordt verstuurd, alleen niet ontvangen
IR.enableIRIn(); // Moet volgens verschillende bronnen opnieuw enabled worden
}
}
De IR led is aangesloten met een 330 ohm weerstand.
Wie kan mij hierbij helpen?
Advertisement
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: IR led signalen ontvangen met IR sensor
Als alles op hetzelfde bordje moet draaien gaat het niet werken.....
Op het moment dat jij aan het zenden bent ben je niet aan het ontvangen. Het is geen multicore processor met 2 individuele processen. Dus of 2 aparte bordjes of ..... briljant zijn ?
Op het moment dat jij aan het zenden bent ben je niet aan het ontvangen. Het is geen multicore processor met 2 individuele processen. Dus of 2 aparte bordjes of ..... briljant zijn ?
Re: IR led signalen ontvangen met IR sensor
Oké duidelijk! Het is natuurlijk ook een beetje onlogisch om dat te willen
De reden dat ik het probeerde was om te controleren welk signaal de IR led daadwerkelijk verstuurd.
Ik probeer namelijk een afstandsbediening te 'clonen'. Ik heb eerst het signaal dat de afstandsbediening verstuurd opgevangen met de IR sensor.
En vervolgens probeer ik dezelfde code te versturen met de IR led. Alleen de TV doet er niets mee, wat doe ik fout?
De reden dat ik het probeerde was om te controleren welk signaal de IR led daadwerkelijk verstuurd.
Ik probeer namelijk een afstandsbediening te 'clonen'. Ik heb eerst het signaal dat de afstandsbediening verstuurd opgevangen met de IR sensor.
En vervolgens probeer ik dezelfde code te versturen met de IR led. Alleen de TV doet er niets mee, wat doe ik fout?
- Code: Alles selecteren
#include <IRremote.h>
IRsend irsend;
// Deze code is eerder opgevangen met de IR sensor
unsigned int soundDown[68] = {
5516, 4500, 4500, 550, 1750, 500, 600, 500, 600, 500, 600,
500, 1750, 550, 600, 500, 600, 500, 1750, 500, 1750, 500, 600,
500, 600, 550, 600, 500, 1750, 500, 600, 500, 600, 500, 1750, 500,
650, 500, 600, 500, 1750, 500, 600, 500, 600, 550, 600, 500, 1750,
500, 600, 500, 1750, 500, 1750, 500, 600, 500, 1750, 550, 1700, 550,
1700, 550, 600, 500, 1750, 500
};
void setup()
{
Serial.begin(9600);
}
void loop()
{
if (buttonPressed) {
irsend.sendRaw(soundDown, 68, 32); // Send code
}
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: IR led signalen ontvangen met IR sensor
Heb je al eens op het web gezocht? Meerdere voorbeelden te vinden...
Re: IR led signalen ontvangen met IR sensor
Jazeker, er zijn inderdaad veel voorbeelden te vinden. En ik heb ook al veel geprobeerd, maar nog niets werkend gekregen.
Op dit moment heb ik het volgende (voorbeeld van IRremote library):
cpp code
Als ik op een knop van de TV afstandsbediening klik wordt dit ontvangen in het programma. Als ik vervolgens op de schakelaar klikt wordt deze zojuist ontvangen code verzonden (IR led kleurt ook paars). Alleen de TV doet er niets mee/lijkt het niet te ontvangen. Maar ik heb geen idee waarom. Ligt het aan de TV of toch aan het verzonden signaal of kan er nog een andere reden zijn?
Op dit moment heb ik het volgende (voorbeeld van IRremote library):
cpp code
#include <IRremote.h>
int RECV_PIN = 11;
int BUTTON_PIN = 12;
int STATUS_PIN = 13;
IRrecv irrecv(RECV_PIN);
IRsend irsend;
decode_results results;
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
pinMode(BUTTON_PIN, INPUT);
pinMode(STATUS_PIN, OUTPUT);
}
// Storage for the recorded code
int codeType = -1; // The type of code
unsigned long codeValue; // The code value if not raw
unsigned int rawCodes[RAWBUF]; // The durations if raw
int codeLen; // The length of the code
int toggle = 0; // The RC5/6 toggle state
// Stores the code for later playback
// Most of this code is just logging
void storeCode(decode_results *results) {
codeType = results->decode_type;
int count = results->rawlen;
if (codeType == UNKNOWN) {
Serial.println("Received unknown code, saving as raw");
codeLen = results->rawlen - 1;
// To store raw codes:
// Drop first value (gap)
// Convert from ticks to microseconds
// Tweak marks shorter, and spaces longer to cancel out IR receiver distortion
for (int i = 1; i <= codeLen; i++) {
if (i % 2) {
// Mark
rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK - MARK_EXCESS;
Serial.print(" m");
}
else {
// Space
rawCodes[i - 1] = results->rawbuf[i]*USECPERTICK + MARK_EXCESS;
Serial.print(" s");
}
Serial.print(rawCodes[i - 1], DEC);
}
Serial.println("");
}
else {
if (codeType == NEC) {
Serial.print("Received NEC: ");
if (results->value == REPEAT) {
// Don't record a NEC repeat value as that's useless.
Serial.println("repeat; ignoring.");
return;
}
}
else if (codeType == SONY) {
Serial.print("Received SONY: ");
}
else if (codeType == RC5) {
Serial.print("Received RC5: ");
}
else if (codeType == RC6) {
Serial.print("Received RC6: ");
}
else {
Serial.print("Unexpected codeType ");
Serial.print(codeType, DEC);
Serial.println("");
}
Serial.println(results->value, HEX);
codeValue = results->value;
codeLen = results->bits;
}
}
void sendCode(int repeat) {
if (codeType == NEC) {
if (repeat) {
irsend.sendNEC(REPEAT, codeLen);
Serial.println("Sent NEC repeat");
}
else {
irsend.sendNEC(codeValue, codeLen);
Serial.print("Sent NEC ");
Serial.println(codeValue, HEX);
}
}
else if (codeType == SONY) {
irsend.sendSony(codeValue, codeLen);
Serial.print("Sent Sony ");
Serial.println(codeValue, HEX);
}
else if (codeType == RC5 || codeType == RC6) {
if (!repeat) {
// Flip the toggle bit for a new button press
toggle = 1 - toggle;
}
// Put the toggle bit into the code to send
codeValue = codeValue & ~(1 << (codeLen - 1));
codeValue = codeValue | (toggle << (codeLen - 1));
if (codeType == RC5) {
Serial.print("Sent RC5 ");
Serial.println(codeValue, HEX);
irsend.sendRC5(codeValue, codeLen);
}
else {
irsend.sendRC6(codeValue, codeLen);
Serial.print("Sent RC6 ");
Serial.println(codeValue, HEX);
}
}
else if (codeType == UNKNOWN /* i.e. raw */) {
// Assume 38 KHz
irsend.sendRaw(rawCodes, codeLen, 38);
Serial.println("Sent raw");
}
}
int lastButtonState;
void loop() {
// If button pressed, send the code.
int buttonState = digitalRead(BUTTON_PIN);
if (lastButtonState == HIGH && buttonState == LOW) {
Serial.println("Released");
irrecv.enableIRIn(); // Re-enable receiver
}
if (buttonState) {
Serial.println("Pressed, sending");
digitalWrite(STATUS_PIN, HIGH);
sendCode(lastButtonState == buttonState);
digitalWrite(STATUS_PIN, LOW);
delay(50); // Wait a bit between retransmissions
}
else if (irrecv.decode(&results)) {
digitalWrite(STATUS_PIN, HIGH);
storeCode(&results);
irrecv.resume(); // resume receiver
digitalWrite(STATUS_PIN, LOW);
}
lastButtonState = buttonState;
}
Als ik op een knop van de TV afstandsbediening klik wordt dit ontvangen in het programma. Als ik vervolgens op de schakelaar klikt wordt deze zojuist ontvangen code verzonden (IR led kleurt ook paars). Alleen de TV doet er niets mee/lijkt het niet te ontvangen. Maar ik heb geen idee waarom. Ligt het aan de TV of toch aan het verzonden signaal of kan er nog een andere reden zijn?
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: IR led signalen ontvangen met IR sensor
wat voor output krijg je op de serial?
Re: IR led signalen ontvangen met IR sensor
nicoverduin schreef:wat voor output krijg je op de serial?
Het volgende:
Received unknown code, saving as raw
m2500 s1050 m300 s1050 m300 s600 m250 s600 m1200 s1450 m300 s600 m300 s600 m300 s600 m300 s600 m300 s550 m300 s600 m300 s600 m300 s600 m300 s600 m250 s600 m750 s1050 m300 s600 m300 s550 m300 s600 m300
Pressed, sending
Sent raw
Pressed, sending
Sent raw
Released
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: IR led signalen ontvangen met IR sensor
Ik kwam hier een lib tegen https://github.com/z3t0/Arduino-IRremote. Weet niet of je die al getest hebt. Maar die ondersteund best veel types.
Maar kijkend naar de code ga je er nu vanuit dat het 38kHz zend freq. Ik weet niet eens of dat wel zo is..
Wat voor TV is het eigenlijk?
Maar kijkend naar de code ga je er nu vanuit dat het 38kHz zend freq. Ik weet niet eens of dat wel zo is..
Wat voor TV is het eigenlijk?
Re: IR led signalen ontvangen met IR sensor
Volgens mij heb ik nog niet naar die lib gekeken, dus dat ga ik zeker nog doen!
Wat betreft de frequentie heb je helemaal gelijk. Maar ik kan nergens vinden wat de frequentie dan zou moeten zijn (Philips TV). Ik heb 38, 36 en 39.2 geprobeerd, alle drie zonder resultaat.
Wat betreft de frequentie heb je helemaal gelijk. Maar ik kan nergens vinden wat de frequentie dan zou moeten zijn (Philips TV). Ik heb 38, 36 en 39.2 geprobeerd, alle drie zonder resultaat.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: IR led signalen ontvangen met IR sensor
Tja dan wordt het drifitig googelen.... Er is zat geschreven over afstandsbedieningen en hoe ze werken.
10 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 104 gasten