Hi,
ich hoffe ihr könnt mir mit meinem Problem weiterhelfen.
Ich sitze gerade an einem Arduino Nano und habe folgendes Problem:
Ich möchte mit einer IR-Fernbedienung einen Ausgang steuern. In dem
Beispiel soll ein Motor (im Versuch durch eine LED dargestellt) durch
klicken der Taste 1 schneller und durch Taste 3 langsamer werden.
Problem ist. Sobald der Ausgang für motor1 arbeitet empfängt der
Empfänger nichts mehr? Heißt ich kann nur genau einmal die
Geschwindigkeit von 0 auf 20 ändern? Wenn ich statt analogWrite ein
digitalWrite mache und nur an und ausschalten lasse geht das
stundenlang. Ich dachte erst das die LED vlt blöd in den Empfänger
leuchtet, aber auch wenn ich diesen komplett abschatte geht nichts.
Code:
1 | #include <IRremote.h>
|
2 |
|
3 | int RECV_PIN = 11;
|
4 | int LED = 13;
|
5 | int motor1 = 9;
|
6 | int motorregler = 0 ; //Wert für pwm
|
7 | int reglergeschwindigkeit = 20 ; //wieviel mehr pro Klick
|
8 | IRrecv irrecv(RECV_PIN);
|
9 | decode_results results;
|
10 |
|
11 | void setup()
|
12 | {
|
13 | pinMode(LED, OUTPUT);
|
14 | pinMode(motor1, OUTPUT);
|
15 | Serial.begin(9600);
|
16 | irrecv.enableIRIn(); // Start the receiver
|
17 | }
|
18 |
|
19 | void loop() {
|
20 | analogWrite(motor1, motorregler);
|
21 | if (irrecv.decode(&results)) {
|
22 | Serial.print(results.value);
|
23 | Serial.print(" ");
|
24 | Serial.println(motorregler);
|
25 | if(results.value == 2534850111) //taste 1
|
26 | { motorregler = motorregler + reglergeschwindigkeit; }
|
27 | if(results.value == 1635910171) //taste 3
|
28 | { motorregler = motorregler - reglergeschwindigkeit; }
|
29 | irrecv.resume(); // Receive the next value
|
30 |
|
31 | }
|
32 |
|
33 | }
|
Ich hoffe ich konnte das Problem genau genug beschreiben und hoffe auf
eure Hilfe