Forum: Mikrocontroller und Digitale Elektronik Arduino pwm Eingang reagiert nicht wenn pwm Ausgang läuft


von Frank B. (susefreax)


Lesenswert?

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

von grundschüler (Gast)


Lesenswert?

As sagt denn
    Serial.print(results.value);
?
Da müsstest du auslesen können, ob die IR-Funktion funktioniert.
Wird vielleicht bei der Funktion motorregler ein Interrupt abgeschaltet?

von Frank B. (susefreax)


Lesenswert?

Hi,

es kommt gar nichts mehr seriel raus. auch die TX-LED blitzt nicht mehr 
auf beim Druck auf eine Taste.

Wenn ich den PWM-Ausgang "in der Luftschweben lasse", also von der 
LED-abziehe, geht es, dann zählt er hoch und runter wie gewünscht und 
zeigt es auch seriel an. Aber sobald die LED dran hängt geht es nur noch 
etwa 1 Sekunde, danach kommt nichts mehr beim Arduino an.


ERLEDIGT!

Ausgangsbeschaltung war Fehlerhaft... Man sollte auf dem Steckbrett auch 
schauen das der Vorwiderstand an der LED nicht einfach Umgangen wird.
Mit Vorwiderstand läuft es ohne Probleme.

Kann mir jmd vlt verraten warum?^^. Schaltet der intern was ab wenn der 
Ausgangsstrom zu hoch wird?

von Axel S. (a-za-z0-9)


Lesenswert?

Frank B. schrieb:

> ERLEDIGT!
>
> Ausgangsbeschaltung war Fehlerhaft... Man sollte auf dem Steckbrett auch
> schauen das der Vorwiderstand an der LED nicht einfach Umgangen wird.
> Mit Vorwiderstand läuft es ohne Probleme.
>
> Kann mir jmd vlt verraten warum?^^. Schaltet der intern was ab wenn der
> Ausgangsstrom zu hoch wird?

Wild geraten:

Der (zu) hohe Strom durch die LED läßt die Versorgungsspannung im 
PWM-Takt einbrechen (oder zumindest deutlich absinken). Der IR-Sensor 
möchte aber gern eine glatte Versorgungsspannung haben und stellt bei 
dem Gezappel durch die PWM den Betrieb ein.

Schaltung hast du ja keine gezeigt. Aber die Hersteller der üblichen 
IR-Sensoren (TSOP xxxx) empfehlen ein RC-Glied von ein paar 100 Ohm und 
einigen 10µF, um Störungen auf der Betriebsspannung rauszufiltern. Hast 
du wahrscheinlich auch nicht gemacht.

Nicht zu vergessen: Steckbretter geben notorisch schlechten Kontakt. 
Wenn der LED-Strom sich eine unsichere Verbindung mit der Versorgung für 
den IR-Sensor teilt, dann kann das Problem auch bei niedrigeren 
LED-Strömen noch auftreten.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.