Pioneer Receiver SX-205RDS Infrarood RC DIY Volume-regeling

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Allereerst iedereen de beste wensen. :)
Onlangs heb ik bovenstaande Pioneer opgepikt :
Afbeeldingslocatie: http://i.imgur.com/h6Rj1s.jpg
Nu zit daar geen afstandsbediening bij en ook met andere merken RC's die ik in huis heb kan ik geen volume regelen. Nu leek het mij een uitdaging om zelf in ieder geval een volume-regeling te maken hoewel wellicht onhaalbaar.

Wat heb ik zelf zoal gedaan aan dit projectje ?
Ik had een IR-Led liggen en een IR-receiver, heb er een Basicstamp en een Scope bijgepakt en deze PDF pag 81-99 en ben wat gaan experimenteren om enigzins de basis door te nemen.
http://www.parallax.com/P...docs/prod/sic/Signals.pdf
Daar zit een programma bij waarmee je een uitgezonden signaal vanaf een RC kunt uitlezen en dat levert o.a. de volgende beelden op een usb-scope en een debug-terminal :
Afbeeldingslocatie: http://s8.postimage.org/c30f0zhj5/img98.jpg
Afbeeldingslocatie: http://s2.postimage.org/7bxvab3qt/img99.jpg
klik
Leuk, maar voor de rest heb ik daar weinig aan.
Ik wil te weten komen welke bitserie de IR-Receiver in de Pioneer 'beschouwt' als Volume Up & Down en dat kan ik hiermee niet uitlezen natuurlijk.
Mijn redenatie is als volgt, als ik eenmaal weet welke pulstrein door de Pioneer opgevat wordt als volume-regeling, dat ik dan zelf met 2 knoppen die trein in beweging kan zetten met een MC en een IR-led.
Maar waar begin ik daar mee, hoe kom ik ten eerste er achter waaruit die pulstrein bestaat voor dit specifieke apparaat ? Iemand enige tip om mij een een beetje in de goede richting te loodsen ?
Alvast bedankt.

Acties:
  • 0 Henk 'm!

  • Raven
  • Registratie: November 2004
  • Niet online

Raven

Marion Raven fan

Heb je toevallig iemand in de omgeving met een universele afstandsbediening (Logitech Harmony bijv.) die je even kan lenen? Misschien dat een lokale GoTter wel even wil langskomen, ik woon overigens aan de verkeerde kant van het land ;)

Als je iemand hebt gevonden, dan kun je met die universele kijken of de receiver wordt ondersteund en als dat het geval is, de code's opvangen met de IR-receiver.

[ Voor 28% gewijzigd door Raven op 01-01-2013 10:40 ]

After the first glass you see things as you wish they were. After the second you see things as they are not. Finally you see things as they really are, and that is the most horrible thing in the world...

Oscar Wilde


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
@Raven,
Bedankt voor de tip maar zelfs al zou ik zo iemand kennen dan is het niet gezegd dat ik daarmee de signalen kan decoden. Het programma dat ik liet zien pakt namelijk ook lang niet alles, bij veel knoppen van diverse rc's gaf die totaal geen resultaat.
Ook gezien de response op dit topic waarbij je zou denken dat niemand zich ooit bezig heeft gehouden met IR-RC wordt het lastig iemand te vinden op Got die dat even wil uitlenen. Bovendien wil ik niemand er mee lastig vallen.
Voor eventuele geïnteresseerden, ik heb wel een aantal pagina's gevonden die betrekking hebben op deze materie, zelfs pagina's met complete Pioneer IR&HEX-codes maar laat nou net mijn remootje er niet tussen zitten .... :-(

http://courses.cs.tau.ac....IR_on_IOIO/IR_on_IOIO.htm
http://www.adrian-kingston.com/IRFormatPioneer.htm
http://www.lirc.org/
http://forums.adafruit.com/viewtopic.php?f=25&t=28197
http://www.remotecentral..../codes/pioneer/pro_720hd/
http://www.sbprojects.com/knowledge/ir/index.php
Afbeeldingslocatie: http://i.imgur.com/W3PjMl.jpg
Er blijken zelfs diverse Arduino IR-Libraries te zijn zoals deze :
http://www.arcfn.com/2009...rared-remote-library.html
Aangezien ik geen codes voor mijn remote kan vinden zie ik eigenlijk op dit moment ook geen andere optie als het aanschaffen van de originele RC en dan jouw tip te volgen om die te 'reverse engineeren'. Het nut van het zelf maken is daarmee dan wel voorgoed van de baan.
Maar voorlopig zoek ik nog verder, wordt vervolgd (hoop ik).

ps, ik bedenk me net dat ik nog een recent model philips-tv heb met werkende rc.
Als ik deze weet om te zetten in een zelfbouw volume-regeling dan bedien ik daarmee nog niet de Pioneer maar is wel de intentie van dit projectje bereikt.

[ Voor 12% gewijzigd door kitao op 03-01-2013 08:44 . Reden: Ps ]


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
kitao schreef op woensdag 02 januari 2013 @ 17:20:
Ook gezien de response op dit topic waarbij je zou denken dat niemand zich ooit bezig heeft gehouden met IR-RC wordt het lastig iemand te vinden op Got die dat even wil uitlenen. Bovendien wil ik niemand er mee lastig vallen.
Hebben zich waarschijnlijk zat mensen daarmee beziggehouden, het is ook redelijk simpel te maken. Echter zolang je de codes niet kent en niet een werkende afstandsbediening hebt om de codes uit te halen valt er weinig voor ons te reageren.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Ok, duidelijk :/

Afbeeldingslocatie: http://i.imgur.com/2EEUhs.gif

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
furby-killer schreef op vrijdag 04 januari 2013 @ 10:52:
[...] het is ook redelijk simpel te maken [...]
Is dit echt makkelijk te doen ? Ik heb een Sony-remote weten op te pikken (zonder tv) en dat sluit beter aan bij de voorbeelden gegeven in Hfdst 7 Understanding Signals : http://www.parallax.com/P...docs/prod/sic/Signals.pdf
Ik krijg dit in beeld als ik op toets 5 van die remote druk :
Afbeeldingslocatie: http://s13.postimage.org/3uychvoc3/im1.jpg
Je ziet dan een startpuls van 2530us, een piek van 520us (die pieken zijn overal gelijk), 2 x een dal van 726us oftewel 2x een logische 0, éénmaal een dal van 1298us oftewel een logische 1, enzovoort totdat het binaire getal 00100001000 is ontstaan.
In principe zou ik met de micro dan de IR-led hetzelfde moeten laten uitzenden, deze op de Sony-TV richten (die ik niet heb) en dan zou de TV naar programma 5 moeten verspringen.
Ik zou dit als volgt kunnen programmeren zoals te zien in de volgende afbeelding :
Afbeeldingslocatie: http://s13.postimage.org/85ikhht6b/im2.jpg
Ook nu ontstaat er Start, 00100001000
Maar ik denk dat je het verschil tussen de 2 afbeeldingen al hebt gezien, de ene staat namelijk op 2ms/div en de andere op 5ms/div.
De reden daarvoor is simpel, het Freqout-commando kan op mijn basicstamp BS2 niet lager ingesteld worden als 1ms en dat geldt ook voor Pause.
Afbeeldingslocatie: http://s1.postimage.org/4krlkt7u3/im3.jpg
Dus zoals ik het zie kan ik nimmer en te nooit met mijn beschikbare hardware tijden halen zoals 520us en ook niet 1298us.
Nu weet ik niet hoe dat met Arduino zit (ben al halve dag bezig en dat wordt andere keer) maar ik zou je toch willen vragen of dit projectje uberhaupt wel haalbaar is gezien het voorgaande ?
Misschien zie ik iets over het hoofd zoals een ander toepasbaar commando die wel in tijden van microseconden een pulstrein kan uitzenden bij 38500 Hz ?

[ Voor 0% gewijzigd door kitao op 05-01-2013 15:05 . Reden: puntjes op de i ]


Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Arduino heeft een library die het voor je doet, en de hardware kan het al helemaal makkelijk aan.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Ok tnx, ik zoek verder en leg de stamp aan de kant ... :/

Afbeeldingslocatie: http://i.imgur.com/5o8Xjs.jpg

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Even een tussenstand :
Van het RC-bedienen van de Pioneer ben ik inmiddels overgestapt naar het bedienen van de Philip-TV 42PFL3605H/12 omdat ik die kan testen en daar ook een remote voor heb.
Het bedienen van de tv is inmiddels gelukt en heb hiervoor de volgende stappen genomen :
1) Deze site als leidraad :
http://www.arcfn.com/2009...al-remote-record-and.html
http://www.arcfn.com/2009...rared-remote-library.html
2) Aansluiten arduino :
Afbeeldingslocatie: http://arcfn.com/images/irrecord-schematic.gif
3) Downloaden bijbehorende library :
https://github.com/shirriff/Arduino-IRremote
Werking : je richt de remote op de IR-receiver, de code wordt ingelezen, richt vervolgens de IR-led op de tv en druk op de knop die aan pin 12 vastzit en de code wordt verzonden (bijvoorbeeld Vol.+).
Dan krijg je zoiets te zien :
Afbeeldingslocatie: http://s7.postimage.org/6fwc9ejiv/im5.jpg
klik
Dat is dus het RC6-protocol wat bij Philips voor dit soort types TV wordt gebruikt.
Nadeel van gegeven voorbeeld :
In conclusion, this is intended as a proof of concept rather than a useful product.
The main limitation is supporting one code at a time, but it's straightforward to extend the code. Also note that the record and playback functions can be separated; if you know the IR codes you're dealing with, you can use just the necessary function.
Straightforward .... maar laat ik nu weinig van programmeren afweten .. :-(
Dat wordt dus verder zoeken want dit heeft weinig nut zo. (ter verduidelijking, het programma leest een signaal en kan die dan weer uitzenden maar heeft geen capaciteit om meerdere signalen op te slaan en op aanvraag uit te zenden)
Hieronder staat een pdf'je met RC6-codes en mijn vraag is nu : Wie weet een library of programma waar ik gewoon in de seriële monitor bijvoorbeeld RC6-000,016 kan invullen waarmee het volume omhoog gaat ?
Ik kijk zelf ook verder natuurlijk, eventueel probeer ik alsnog bovenstaand programma te modificeren maar zal niet makkelijk worden.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Edit:
Ik ben eruit, toch maar de code aangepast. :)
Dit kan ik verder toepassen :
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/*
 * 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
 * http://arcfn.com
 */

#include <IRremote.h>

IRsend irsend;

void setup()
{
  Serial.begin(9600);
}

void loop() {
 
    for (int i = 0; i < 3; i++) {
      irsend.sendRC6(0x10, 20); // Philips TV Vol.+
      delay(40);
    }  
}

Om deze regel draait het :
C++:
1
irsend.sendRC6(0x10, 20); // Philips TV Vol.+

Daar stond eerst irsendSony maar heb gewoon geprobeerd RC6 in te vullen en dat werkt.
10 is het Hex-getal voor 16 en 20 is de lengte van het signaal.
Nu kan ik ieder getal invullen op de plek waar nu 10 staat en het bijbehorende remote-signaal wordt dan verzonden richting TV.

De volgende stap wordt dan natuurlijk om de Pioneer volumeregeling alsnog aan de praat te krijgen maar nu in dit geval heb ik geen RC om op terug te kijken.

Ps, ik heb wel deze regel if (Serial.read() != -1) { weg moeten halen die in het oorspronkelijke voorbeeld staat :
C++:
1
2
3
4
5
6
7
8
void loop() {
  if (Serial.read() != -1) {
    for (int i = 0; i < 3; i++) {
      irsend.sendSony(0xa90, 12); // Sony TV power code
      delay(40);
    }
  }
}

Geen idee waarom maar met die regel erbij wordt er niks uitgezonden ? :?

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
kitao schreef op zondag 06 januari 2013 @ 10:06:
Geen idee waarom maar met die regel erbij wordt er niks uitgezonden ? :?
Er wordt gevraagd een toets in te drukken op de ser.mon......., handig die afwezige comments. :')
Ok, volgende stap en nu heb ik toch echt wat hulp nodig geloof ik.
Het Arduino Library IRremote kent het volgende voorbeeld : IRrecvDump , een klein stukje daaruit :
code:
1
2
3
4
5
6
/*
 * IRremote: IRrecvDump - dump details of IR codes with IRrecv
 * An IR detector/demodulator must be connected to the input RECV_PIN.
// Dumps out the decode_results structure.// Call this after IRrecv::decode()
// void * to work around compiler issue
//void dump(void *v) {//  decode_results *results = (decode_results *)v

Als ik mijn Philips remote erop richt en programma 5 kies dan krijg ik dit resultaat :
Afbeeldingslocatie: http://s7.postimage.org/qy8zu15dj/im6.jpg
klik
Vervolgens draai ik dit programma :
C++:
1
2
3
4
5
6
7
8
9
10
11
12
#include <IRremote.h>
IRsend irsend;
void setup()
{
  Serial.begin(9600);
}
void loop() {  
    for (int i = 0; i < 3; i++) {
      irsend.sendRC6(0x5, 20); // Philip TV CH5
      delay(40);
    }
    }

En de TV verspringt netjes naar programma 5.
Echter, wil ik ooit in staat zijn de Pioneer te gaan bedienen dan heb ik volgens mij de Raw code nodig en dus heb ik bovenstaande bijbehorende Raw-code willen proberen op de Philips :
Dan krijg ik echter dit :
Afbeeldingslocatie: http://s7.postimage.org/ijp8bkvw7/im7.jpg
Oftewel, het programma herkent het commando sendRaw, deze is immers van kleur versprongen, het bijbehorende Hex-getal 40 heb ik ingevuld maar ik krijg een fout bij het compileren ??!!

Mocht iemand nu al eerder met Raw-IR-codes bezig zijn geweest dan graag een toelichting wat er nu eigenlijk in grote lijnen verkeerd wordt gedaan.
Mag ik de sendRC6 zomaar vervangen door sendRaw?
Zo niet, waarom worden die dan beide weergegeven in IRrecvDump ?
Is er wellicht een andere reden waaom het niet compileert ?
Die hele rits getallen in de 1e afbeelding achter Raw(40) is dat nog van belang en moet je die dan soms ergens invullen ?
Punt is namelijk dat ik bij de Pioneer bij de IR discrete codes (op het web) een soortgelijke riks getallen tegenkom met voorafgaand een Hex-getal maar zolang het niet compileert kan ik dat dus niet uitproberen.
Alvast bedankt :)

Acties:
  • 0 Henk 'm!

  • Sissors
  • Registratie: Mei 2005
  • Niet online
Wat die foutmelding zegt is dat hij één pointer naar een integer wil, en 2 integers. Jij geeft hem maar twee variabelen, dus dat gaat niet goed.

Met wat zoeken komt het erop neer dat je in eerste variabele een array moet hebben waarin staat hoe lang elke puls duurt, en dan hoe lang er geen signaal is tot de volgende puls, dan het totaal aantal pulsen + leegtes, en als laatste de frequentie van de carrier (38kHz normaal).

Dat is niet dezelfde code, maar het lijkt er wel wat op. Met wat googlen is het blijkbaar pronto hex formaat, zie: http://www.remotecentral.com/features/irdisp2.htm.

Oftewel je kan het wel omzetten in jouw formaat. Wie weet is er ook een arduino library die het rechtstreeks slikt, geen idee. Als dat niet het geval is zou ik als ik jouw was eens de pronto hex code van je phillips apparaat opzoeken, en dat vergelijken met je raw data. Dan kan je zien hoe het precies zit, en dan hopelijk ook die van pioneer omzetten.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Dit is niet als kick bedoeld maar gewoon om even te laten weten dat de post van furby-killer niet onopgemerkt voorbij is gegaan.

Jouw gegeven link lijkt op eerste gezicht erg nuttig, ik had die site al diverse malen gezocht en zelfs de beginpagina van die tutorial waar jij naar verwijst.
Daar las ik echter het volgende :
This document describes the format of learned IR codes as they are displayed in ProntoEdit program.
It is assumed that the reader has a working familiarity with the Philips Pronto remote control and the ProntoEdit software system.
Ik heb daarna niet veel verder meer gelezen want ik wist niet wat een ProntoEdit programma is en ben ergens anders verder gaan zoeken.
Men kan het wijten aan google-skills maar iemand met meer ervaring ermee kan nu net dat juiste duwtje geven in de goede richting.
Ik vroeg wat die serie hex-getallen waren en dat blijken dus Pronto-codes genoemd te worden.
Bedankt daarvoor, nu ben ik een stap verder en hoewel het nog even kan duren hoop ik met deze info er toch uit te komen. :)
Ik kan het gaan testen met een Sony-remote, hoewel ik geen apparaat heb die erop reageert kan ik wel met een scope uitlezen of het 'gewone' signaal met een Pronto-code te evenaren is.
Nogmaals bedankt voor de tip.

O ja, even een mededeling voor diegenen die meelezen in dit topic en die te vinden is op dezelfde link als hierboven en van plan zijn om ook codes op iedere TV of Stereo in de buurt te gaan afsturen :
Warning: This document will give the reader enough information to develop and hand enter IR codes rather than learning them from a remote. That is not the intent of the document, merely a byproduct of the knowledge you can gain. Many devices controlled by IR remotes, in Particular TV’s, have undocumented IR code sequences used for servicing the equipment by factory trained technicians in possession of detailed service manuals and test equipment.
By causing a service code to be sent to your TV or other device, you may place it in a state where it no longer operates as desired, or at all.
An example of this might be the resetting of all convergence offsets, or altering the width or height of the picture.

Be careful, if you are not sure of what the outcome might be, perhaps you should not do it.
:/

[ Voor 27% gewijzigd door kitao op 08-01-2013 17:05 . Reden: O ja ]


Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
furby-killer schreef op maandag 07 januari 2013 @ 20:31:
Wat die foutmelding zegt is dat hij één pointer naar een integer wil, en 2 integers. Jij geeft hem maar twee variabelen, dus dat gaat niet goed.
Ok, dat heb ik gevonden, dat moet zo :
Raw Codes
For raw codes we first need to modify the output from the IRrecvDump sketch slightly, just remove the first group of digits and make all the numbers positive, then add commas between each group and put it into an array.
eg. The code received from the IRrecvDump sketch:

-14368 4500 -4500 600 -500 600 -1650 600 -550 550 -550 600 -500 600 -550 600 -500 600 -1650 600 -550 550 -1700 550 -550 600 -550 550 -550 600 -500 600 -550 600 -1600 600 -1650 600 -550 550 -550 600 -550 550 -550 600 -550 550 -550 600 -550 550 -550 600 -1650 600 -1600 600 -1650 600 -1650 600 -1650 600 -1650 600 -1650 600
becomes
unsigned int rawCode[68] = {4500, 4500, 600, 500, 600, 1650, 600, 550, 550, 550, 600, 500, 600, 550, 600, 500, 600, 1650, 600, 550, 550, 1700, 550, 550, 600, 550, 550, 550, 600, 500, 600, 550, 600, 1600, 600, 1650, 600, 550, 550, 550, 600, 550, 550, 550, 600, 550, 550, 550, 600, 550, 550, 550, 600, 1650, 600, 1600, 600, 1650, 600, 1650, 600, 1650, 600, 1650, 600, 1650, 600};
and then to send it we use the sendRaw command with the array name, array length and the frequency (38kHz):
irsend.sendRaw(rawCode,68,38);
http://nathan.chantrell.n...-infrared-remote-control/
Omdat ik niet lekker voor de TV zit overgestapt op een Sony-receiver STR-DE495 die ik nu naast de Lap heb staan.
Allereerst de remote uitgelezen met IRrecvDump door op nummer (channel) 5 te drukken :
Afbeeldingslocatie: http://s14.postimage.org/86b077zql/im9.jpg
Je ziet dan bovenaan Decoded Sony 100C en daaronder de Raw-code

sendSony(0x100C,15) verzonden met IRsendDemo en dit kwam in beeld en daar reageerde de Sony ook op :
Afbeeldingslocatie: http://s13.postimage.org/ki2f3tloj/im8.jpg
Vervolgens een uur of 5 bezig geweest om met de Rawcode hetzelfde te bereiken maar receiver gaf geen enkele respons :'(
De oplossing zat in het langer laten verzenden van het signaal; de regel
C++:
1
for (int i = 0; i < 5; i++) {

heb ik verlengd van i<3 tot i<5 en dan pakt die wel.
Het signaal is namelijk ook een stuk slechter, zelfs als ik de tijden zo dicht mogelijk bij het origineel zet namelijk 2400,1200,600,600 en ik heb ook nog zitten experimenteren met de frequentie dan komt dit in beeld:
Afbeeldingslocatie: http://s9.postimage.org/6llx3bqjv/im10.jpg
Dus al met al is het gelukt om van een bestaande remote de code om te zitten in een Rawcode, de volgende en hopelijk laatste stap zal worden om zonder remote de arduino een rawcode te geven waarmee het volume van de Pioneer kan worden geregeld.
Dan nog een vraagje, hoe komt het eigenlijk dat de signalen zo enorm van elkaar verschillen ?

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Pioneer Receiver inmiddels ook aan de praat gekregen.
In het kort is de handelswijze als volgt (evt. vragen beantwoord ik graag) :
Allereerst deze pagina als leidraad genomen en deze pagina geraadpleegd voor de Hex-codes van een pioneer receiver.
Zoals beschreven in de link zijn de 1e vier hex-woorden een soort uitleg van het gebruikte signaal en het signaal wat nodig is om om te zetten in een Rawcode is de rest erachter.
Dit gekopieerd en in notepad++ geplakt, vervolgens met calculator en find/replace de hex-getallen geconverteerd naar decimalen en dit vermenigvuldigd met 25 microseconden.
Bijvoorbeeld Hex0016 geeft Dec22 en dat levert 550 microseconden op.
Dan alle spaties vervangen met een komma, zie afbeelding (klikbaar)
Afbeeldingslocatie: http://s7.postimage.org/l1yg5vkmv/im11.jpg
Dit kopieren en plakken in de arduino-sketch levert volgende code op :
C++:
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
/*
 * 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
 * http://arcfn.com
 */
#include <IRremote.h>

IRsend irsend;
unsigned int rawCodes[68] = {8475,4250,525,525,550,525,550,1575,550,525,550,525,525,1600,550,525,525,1600,550,1575,550,1600,525,525,550,1600,525,1600,550,525,525,1600,550,525,525,1600,550,1575,550,525,550,525,525,1600,550,525,525,525,550,525,550,525,525,525,550,1600,525,1600,550,525,525,1600,550,1575,550,1600,525,25400}; 
//dit is de code voor pioneer-reciever am/fm
void setup()
{
 Serial.begin(9600);   
}

void loop() {
  if (Serial.read() != -1) { 
             for (int i = 0; i < 5; i++) {
    irsend.sendRaw(rawCodes,68,40); //68 is het aantal woorden of bits , 40 is de frequentie
      delay(40);
    }
  }
   }

En na een toets in te drukken op de ser.mon. verspringt de receiver netjes tussen AM/FM.
Is nog wel geen volume-regeling maar die codes moet ik nog opzoeken en uitproberen.
Nog een scope-afbeelding van verzonden signaal :
Afbeeldingslocatie: http://s9.postimage.org/k5b7dxkrf/im12.jpg
In principe heb je geen scope nodig om dit voor elkaar te krijgen.

Acties:
  • 0 Henk 'm!

  • kitao
  • Registratie: Juli 2012
  • Laatst online: 12-06 12:27
Laatste stap, de volume-regeling.
Eerlijk gezegd werkt het haperend, komt misschien omdat de IR-led niet versterkt wordt en omdat het een code is die eigenlijk niet helemaal passend is voor dit model.
Deze pagina als code-bron gebruikt en volgend programma geschreven :
C++:
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
#include <IRremote.h>

IRsend irsend;
//dit is de code voor pioneer-reciever SX-205RDS VOLUME UP
unsigned int VolUp[68] = {8550,4250,550,1575,550,525,550,1575,550,525,550,525,525,1600,550,525,525,1600,550,525,525,1600,550,525,525,1600,550,1575,550,525,550,1575,550,525,550,525,525,1600,550,525,525,1600,550,525,525,525,550,525,550,525,525,1600,550,525,525,1600,550,525,525,1600,550,1575,550,1600,525,1600,550,25450}; 
//dit is de code voor pioneer-reciever SX-205RDS VOLUME Down
unsigned int VolDown[74] = {8525,4250,550,1600,525,550,550,1600,525,525,550,525,550,1575,550,525,550,1575,550,525,550,1575,550,525,550,1575,550,1600,525,525,550,1600,525,525,550,1600,525,1600,550,525,525,1600,550,525,525,525,550,525,550,525,525,525,550,525,550,1575,550,525,550,1575,550,1600,525,1600,550,1575,550,25425,8525,4250,550,1600,525,525};
void setup()
{
 Serial.begin(9600);   
}

void loop() {
  if (Serial.read() ==117) { 
    // druk op toets u in ser.mon voor vol-up
             for (int i = 0; i < 5; i++) {
    irsend.sendRaw(VolUp,68,40); //68 is het aantal woorden, 40 is de frequentie
      delay(40);
    }
  }
  if (Serial.read() ==100) { 
             for (int i = 0; i < 5; i++) { // druk op toets d in ser.mon voor vol-down
    irsend.sendRaw(VolDown,74,40); //74 is het aantal woorden, 40 is de frequentie
      delay(40);
    }
  }
   }

In een ander topic zou ik graag vanaf de PC de arduino draadloos willen aansturen die dan weer de receiver infrarood aanstuurt.
@Raven en Furby, bedankt voor de inbreng en de tips :)
Pagina: 1