Pages: [1]   Go Down
Author Topic: SoftPWM LEDs leuchten durcheinander  (Read 177 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo hab mit einem Beispielprogramm gestartet.
wenn ich es so laufen lasse ohne SoftPWM geht alles einwandfrei. sobald ich aber die Ausgänge per SoftPWMSet ansprechen möchte dann leuchten irgendwie andere LEDs die nicht leuchten sollten aber die angesprochenen überhaupt nicht.

Vielleicht hab ich ja einen Fehler den ich übersehen habe.

Ohne SoftPWM:
Code:
// Kanäle auf Ausgang, und dann deaktivieren
  pinMode(L_BLK_RE, OUTPUT);
  digitalWrite(L_BLK_RE, LOW);
  pinMode(L_FAHRLICHT_RE, OUTPUT);
  digitalWrite(L_FAHRLICHT_RE, LOW);
  pinMode(L_STANDLICHT1_RE, OUTPUT);
  digitalWrite(L_STANDLICHT1_RE, LOW);
  pinMode(L_STANDLICHT2_RE, OUTPUT);
  digitalWrite(L_STANDLICHT2_RE, LOW);
  pinMode(L_FERNLICHT_RE, OUTPUT);
  digitalWrite(L_FERNLICHT_RE, LOW);

  pinMode(L_FERNLICHT_LK, OUTPUT);
  digitalWrite(L_FERNLICHT_LK, LOW);
  pinMode(L_STANDLICHT1_LK, OUTPUT);
  digitalWrite(L_STANDLICHT1_LK, LOW);
  pinMode(L_STANDLICHT2_LK, OUTPUT);
  digitalWrite(L_STANDLICHT2_LK, LOW);
  pinMode(L_FAHRLICHT_LK, OUTPUT);
  digitalWrite(L_FAHRLICHT_LK, LOW);
  pinMode(L_BLK_LK, OUTPUT);
  digitalWrite(L_BLK_LK, LOW);

  pinMode(L_BLK_H_RE, OUTPUT);
  digitalWrite(L_BLK_H_RE, LOW);
  pinMode(L_BLK_H1_RE, OUTPUT);
  digitalWrite(L_BLK_H1_RE, LOW);
  pinMode(L_RUECKFAHRLICHT_RE, OUTPUT);
  digitalWrite(L_RUECKFAHRLICHT_RE, LOW);
  pinMode(L_BREMSE_RE, OUTPUT);
  digitalWrite(L_BREMSE_RE, LOW);
  pinMode(L_BREMSE_I_RE, OUTPUT);
  digitalWrite(L_BREMSE_I_RE, LOW);
  pinMode(L_BREMSE_II_RE, OUTPUT);
  digitalWrite(L_BREMSE_II_RE, LOW);

  pinMode(L_BLK_H_LK, OUTPUT);
  digitalWrite(L_BLK_H_LK, LOW);
  pinMode(L_BLK_H1_LK, OUTPUT);
  digitalWrite(L_BLK_H1_LK, LOW);
  pinMode(L_RUECKFAHRLICHT_LK, OUTPUT);
  digitalWrite(L_RUECKFAHRLICHT_LK, LOW);
  pinMode(L_BREMSE_LK, OUTPUT);
  digitalWrite(L_BREMSE_LK, LOW);
  pinMode(L_BREMSE_I_LK, OUTPUT);
  digitalWrite(L_BREMSE_I_LK, LOW);
  pinMode(L_BREMSE_II_LK, OUTPUT);
  digitalWrite(L_BREMSE_II_LK, LOW);


  pinMode(LED, OUTPUT);
  digitalWrite(LED, LOW);

Code:
void showHeadLights() {
  dbgOut("H:");
  dbgOutLn(headLightState);
  switch (headLightState) {

  case STAND:
    digitalWrite(L_BLK_RE, 0);
    digitalWrite(L_FAHRLICHT_RE, 0);
    digitalWrite(L_STANDLICHT1_RE, 0);
    digitalWrite(L_STANDLICHT2_RE, 0);
    digitalWrite(L_FERNLICHT_RE, 0);

    digitalWrite(L_FERNLICHT_LK, 0);
    digitalWrite(L_STANDLICHT1_LK, 0);
    digitalWrite(L_STANDLICHT2_LK, 0);
    digitalWrite(L_FAHRLICHT_LK, 0);
    digitalWrite(L_BLK_LK, 0);

    digitalWrite(L_BLK_H_RE, 0);
    digitalWrite(L_BLK_H1_RE, 0);
    digitalWrite(L_RUECKFAHRLICHT_RE, 0);
    digitalWrite(L_BREMSE_RE, 1);
    digitalWrite(L_BREMSE_I_RE, 1);
    digitalWrite(L_BREMSE_II_RE, 1);

    digitalWrite(L_BLK_H_LK, 0);
    digitalWrite(L_BLK_H1_LK, 0);
    digitalWrite(L_RUECKFAHRLICHT_LK, 0);
    digitalWrite(L_BREMSE_LK, 1);
    digitalWrite(L_BREMSE_I_LK, 1);
    digitalWrite(L_BREMSE_II_LK, 1);
   
    break;


SoftPWM Version:
Code:
void showHeadLights() {
  dbgOut("H:");
  dbgOutLn(headLightState);
  switch (headLightState) {

  case STAND:
    digitalWrite(L_BLK_RE, 0);
    digitalWrite(L_FAHRLICHT_RE, 0);
    digitalWrite(L_STANDLICHT1_RE, 0);
    digitalWrite(L_STANDLICHT2_RE, 0);
    digitalWrite(L_FERNLICHT_RE, 0);

    digitalWrite(L_FERNLICHT_LK, 0);
    digitalWrite(L_STANDLICHT1_LK, 0);
    digitalWrite(L_STANDLICHT2_LK, 0);
    digitalWrite(L_FAHRLICHT_LK, 0);
    digitalWrite(L_BLK_LK, 0);

    digitalWrite(L_BLK_H_RE, 0);
    digitalWrite(L_BLK_H1_RE, 0);
    digitalWrite(L_RUECKFAHRLICHT_RE, 0);
    SoftPWMSet(L_BREMSE_RE, 255);
    SoftPWMSet(L_BREMSE_I_RE, 255);
    SoftPWMSet(L_BREMSE_II_RE, 255);

    digitalWrite(L_BLK_H_LK, 0);
    digitalWrite(L_BLK_H1_LK, 0);
    digitalWrite(L_RUECKFAHRLICHT_LK, 0);
    SoftPWMSet(L_BREMSE_LK, 255);
    SoftPWMSet(L_BREMSE_I_LK, 255);
    SoftPWMSet(L_BREMSE_II_LK, 255);
   
    break;
Logged

Switzerland
Offline Offline
Faraday Member
**
Karma: 111
Posts: 5250
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du hast den Link zur verwendeten Bibliothek vergessen.

Ausserdem solltest Du den ganzen Code posten und nicht nur Ausschnitte davon, denn der Fehler könnte ja an einem ganz anderen Ort liegen als Du denkst.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@pylon
Danke ja hatte nur auszugweise gepostet aber hole den ganzen code jetzt mal nach.
Hab nur noch nicht alle Ausgänge auf SoftPWM umgestellt denn schon in diesem stadium lief es nicht und das hätte es ja.

Konnte ihn nicht als code posten also hänge ich die Datei mal an.
Hardware ist ein atmega644pa

Ich wäre für Hilfe echt dankbar.

* rc_lightcontrol_0_1.ino (15.39 KB - downloaded 7 times.)
Logged

Offline Offline
Full Member
***
Karma: 14
Posts: 169
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

der Verfasser des Original- Sketches ist auch hier im Forum unterwegs
"willie1968"
schreib' ihn doch einmal per PN an
Logged

ich habe noch keinen Alkohol getrunken, keine Drogen oder bunte Pillen genommen und bin auch nicht schwanger -> nehmt es einfach so hin

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@Mike60 Danke für die Antwort.
Hab ihn direkt mal angeschrieben vielleicht hilft das.

Bin aber für jeden Input offen.

Gruß
Daniel
Logged

Offline Offline
Full Member
***
Karma: 7
Posts: 102
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

SoftPWM ist aber nicht von mir.  smiley-wink

Ich vermute, die Softpwm kann mit dem 644'er nicht. UNd kommt dann mit der Pin zu PWM Zuordnung durcheinander.
Kannste das mal mit einem UNO oder Duemilanove ausprobieren. (Also mit einem 328?)
Logged

und Tschoe
Willie
http://www.rcarduino.tk

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

@willie1968:
Hab schon SoftPWM drauf laufen lassen nur nicht in dem umfang.
werde es aber dann auch mal versuchen auf einem arduino uno laufen zu lassen.

Danke
Logged

Offline Offline
Full Member
***
Karma: 7
Posts: 102
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ist ja auch nur zur Fehlersuche.
Es kann sein, daß da einige Anschlüsse einfach anders gehandelt werden...
Logged

und Tschoe
Willie
http://www.rcarduino.tk

Pages: [1]   Go Up
Jump to: