ich bin neu hier im Forum sowie auch Neuling bzgl. Arduino
bzw. Programmierung vom Arduino.
Folgendes hatte ich vor:
Es gibt bereits einen Project Code für eine Volume Control
Dieser wäre für meine zwecke soweit auch gut geeignet.
Ich brauche jedoch den RC5 Philips Code um mein Gerät anzusteuern.
Weiterhin würde ich gern später noch ein paar zusätzliche Taster ansteuern
wollen wie z.B. On/Off/Play/Skip+/Skip-/Stop/Pause
Bisher ist es mir auch nach vielen Stunden probieren leider nicht gelungen das
auf den RC5 Code zu ändern …… geschweige denn die weiteren Extras
Ich wäre sehr erfreut wenn sich jemand bereit erklären würde mir bei der Umsetzung
zu helfen
Setze Deinen Code bitte in Codetags (</>-Button oben links im Forumseditor oder [code] davor und [/code] dahinter ohne *).
So ist er auch auf portablen Geräten lesbar. Das kannst Du auch noch nachträglich ändern.
Zur IRremote Bibliothek gibt es ein Beispielprogramm zum Auslesen der originalen Fernbedienung, einschließlich NEC und RC5. Damit kannst Du herausfinden, welcher Code zu welcher Taste gehört, und das dann auf dem Arduino abspielen.
agmue:
In D sind viele Dinge genormt, aber bei der Zuordnung der Codes zu den Tasten macht vermutlich jeder Hersteller, was ihm in den Sinn kommt.
Natürlich macht da jeder was ihm in den Sinn kommt. Wie sonnst soll der Hersteller denn sonst eine Ersatzfernbedienung zu völlig überteuerten Preisen an den Kunden bringen können?
Ich habe jetzt ausgelesen aber dennoch vielen Dank für den Link
Wie gesagt mich wundert es das die Codes doch unterschiedlich sind und es dennoch
funktioniert, denn mit Marantz CD Player Codes aus dem link geht es auch, obwohl diese anders sind.
Hier mal das Auslese Ergebnis
volumeUp 10
volumeDown 11
powerOn 40C
powerOff 40C
Play 35
Stop 36
Pause 30
SkipUp 20
SkipDown 21
CDInput 50F CD Player Menu
TOC 52D
Select/Ok 17
Menu 12
Wie in dem Code weiter unten zu sehen musste ich das dann noch etwas abändern und danach
hat es dann funktioniert.
Besteht evtl. noch die Möglichkeit eine Art Beschleunigung für den Encoder zu realisieren ?
Mit jedem Raster ändert sich die Lautstärke in 0.5 db schritten was mir zu langsam ist.
int val;
int encoder0PinA = A2;
int encoder0PinB = A1;
int encoder0Pos = 0;
int encoder0PinALast = LOW;
int n = LOW;
static int cero=0;
long unsigned int irCode;
int cmdReceived;
void setup(){
Serial.begin(9600);
pinMode (encoder0PinA, INPUT);
pinMode (encoder0PinB, INPUT);
}
void loop(){
n = digitalRead(encoder0PinA);
if ((encoder0PinALast == LOW) && (n == HIGH)) {
if (digitalRead(encoder0PinB) == LOW) {
encoder0Pos--;
irsend.sendRC5(0x510,12);
Serial.println ("volume up");
} else {
irsend.sendRC5(0x511,12);
Serial.println ("volume down");
encoder0Pos++;
}
Serial.println (encoder0Pos);
}
encoder0PinALast = n;
}
Andere Variante: Du merkst Dir den Zeitpunkt der letzten Encoderbetätigung (millis) und vergleichst beim nächsten Mal, wie lange das her ist.
Kurzer Abstand (schnell gedreht) größere Änderung (z.B. 3), ansonsten 1.
Beispiele hier.
Gruß Tommy
Edit: Diesen Wert nimmst Du in eine Schleife, in der das sendRC5 ausgeführt wird.
@HotSystems ...... kläre mich auf ...... was läuft da falsch ?
Ich habe jetzt schon ein paar mal drüber geguckt, konnte aber
keinen wirklichen Fehler finden.
Wie gesagt, ich bin blutiger Anfänger sowie auch schon etwas in die Jahre
gekommen.
Von Jahr zu Jahr habe ich morgens immer mehr Gesicht zu waschen
und brauche noch viel Nachhilfe. :-*
In den nächsten Tagen werde ich noch versuchen das ein und andere
zu ändern.
JoSMask: @HotSystems ...... kläre mich auf ...... was läuft da falsch ?
Ich habe jetzt schon ein paar mal drüber geguckt, konnte aber
keinen wirklichen Fehler finden.
Bitte nicht falsch verstehen.
Es geht nicht um einen Fehler im Sketch, sondern wie du die Code-Tags anwendest.
Am Anfang des Sketches gehört ein Start-Tag [code], ans Ende ein Ende-Tag [/code], allerdings ohne die * (Sterne).