INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Schleifen
28.10.2015, 15:16
Beitrag #9
RE: Schleifen
@Thorsten
Ok, sorry, das hattest du so
Zitat:welches angeblich funktioniert
nicht geschrieben. Jetzt ist es auch für mich klar, danke.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.10.2015, 15:31
Beitrag #10
RE: Schleifen
Hallo,
kann es sein, dass die Switch-Anweisung nur mit einer Zahl klar kommt? In einem Beispiel auf http://www.arduino.cc steht u.a. folgendes:

Zitat:The switch statement expects single number values for each case;

VG
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.10.2015, 17:36 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2015 18:13 von Sienog.)
Beitrag #11
RE: Schleifen
(28.10.2015 13:31)Thorsten Pferdekämper schrieb:  Hi,
Du redest da ziemlich wirres Zeug. Warum sollte "case" und "PWM" nicht unter einen Hut zu bringen sein? ...und warum sollte ein break nach einer while-Schleife irgend einen Einfluss auf die Schleife haben?
Am besten, Du postest mal das Coding mit dem digitalWrite sowie das Coding, bei dem Du i ausgibst. Außerdem auch vielleicht mal wie die LED genau angeschlossen ist.
Gruß,
Thorsten

Hier ist der Code der die LED an und ausschalten lässt, mit einer MSTech FB
Code:
#include "IRremote.h"

IRrecv irrecv(7);        
decode_results results;        

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
}
int i=0;
void loop()
{
  if (irrecv.decode(&results))
  {
    translateIR();
    irrecv.resume();
  }
}
void translateIR()
{
  Serial.println(results.value, DEC);
  switch(results.value)
  
  {
  case 0xEF1016E9:// MS Tech: "Taste 1" LED3 an
    digitalWrite(3, HIGH);
    break;
    
  case 0xEF108E71:// MS Tech: "Taste 0" LED3 aus
    digitalWrite(3, LOW);
    break;

  default: //Andere Taste, soll led 5 für 100 Aufblinken
    digitalWrite(5, HIGH);
    delay(100);
    digitalWrite(5, LOW);  
  }
  delay(500);
}

Der Code bewirkt dass die Taste1 die LED1 an macht, die Taste0 aus.
Tasten die nicht zugewiesen sind, lassen die LED2 für 100 aufleuchten.
Die LED's sind über ein widerstand am minus angeschlossen. Pin's 3 und 5 sollen das PWM-Signal ausgeben.
i habe ich an vielen stellen versucht auszulesen, das bringt alles wenig, weil die LED bei analogWrite nicht angeht selbst wenn i gleich 255 laut Serial Monitor ist.

PS: Wäre die Frage nicht wirr, hätte ich keine.

Hab nochmal was ausprobiert und zwar, im case DEC statt HEX und i im case auslesen, die schleife funktioniert.
Es liegt tatsächlich am analogWrite welches ins case nicht möchte.

Code:
#include "IRremote.h"

IRrecv irrecv(7);        
decode_results results;        

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(3, OUTPUT);
  pinMode(5, OUTPUT);
}
void loop()
{
  if (irrecv.decode(&results))
  {
    translateIR();
    irrecv.resume();
  }
}
int i=0;
void translateIR()
{
  Serial.println(i, DEC);
  switch(results.value)
  
  {
  case 4010809065:// MS Tech: "Taste 1" LED3 an
   while (i<255)
    {
      i=i+5;
      delay(20);
    }
    break;
    
  case 4010839665:// MS Tech: "Taste 0" LED3 aus
    analogWrite(3, LOW);
    break;

  default: //Andere Taste, soll led 5 für 100 Aufblinken
    digitalWrite(5, HIGH);
    delay(100);
    digitalWrite(5, LOW);  
  }
  delay(500);
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.10.2015, 18:52
Beitrag #12
RE: Schleifen
Hi,
in Deinem Coding (das untere) wird LED3 nie angeschaltet. Es wird nur i hochgezählt und das war's. Nur beim Ausschalten macht das Coding wirklich was.
Außerdem: Weißt Du ganz sicher, dass das auch die richtigen Codes sind? Mach doch auch mal ein Serial.println("Taste1"); bzw, Taste0 an die entsprechenden Stellen, damit Du das ganz sicher weißt.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.10.2015, 23:02
Beitrag #13
RE: Schleifen
(28.10.2015 18:52)Thorsten Pferdekämper schrieb:  Hi,
in Deinem Coding (das untere) wird LED3 nie angeschaltet. Es wird nur i hochgezählt und das war's. Nur beim Ausschalten macht das Coding wirklich was.
Außerdem: Weißt Du ganz sicher, dass das auch die richtigen Codes sind? Mach doch auch mal ein Serial.println("Taste1"); bzw, Taste0 an die entsprechenden Stellen, damit Du das ganz sicher weißt.
Gruß,
Thorsten

Ja das war nur ein test, ob die Schleife wirklich hochgezählt wird. Beim Println werden die Signale der FB richtig erkannt. Der Code ist sauber.

Wir halten fest: Kein PWM im case möglich. Case unterstützt vermutlich nur digitale an / aus Signale.

Hier leuchtet die LED wie erwartet etwas gedimmt
Code:
void setup() {
  // put your setup code here, to run once:
pinMode(3, OUTPUT);
}

void loop() {
  // put your main code here, to run repeatedly:
analogWrite(3, 20);
}


Hier wird die LED wie erwartet in 5er schritten bis 255 gebracht, 3000 gehalten und wieder von 255 bis aus und wieder 3000 pause, dann fängt loop neu an.
Code:
void setup() {
  // put your setup code here, to run once:
  pinMode(3, OUTPUT);
}
int i=0;
void loop() {
  // put your main code here, to run repeatedly:
  while (i<255)
  {
    analogWrite(3, i);
    i=i+5;
    delay(50);
  }
  delay(3000);
  while (i>-1)
  {
    analogWrite(3, i);
    i=i-5;
    delay(50);
  }
  delay(3000);
}

Also nochmal, die Codes sind ok. Nur passen sie nicht zusammen. Den Teil mit IR Receiver muss ich wohl noch überarbeiten. Trotzdem danke ich allen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
28.10.2015, 23:05
Beitrag #14
RE: Schleifen
(28.10.2015 23:02)Sienog schrieb:  Wir halten fest: Kein PWM im case möglich. Case unterstützt vermutlich nur digitale an / aus Signale.
Das kann nicht sein. Da muss was anderes faul sein.
Gruß,
Thorsten

Falls ich mit einer Antwort helfen konnte, wuerde ich mich freuen, ein paar Fotos oder auch ein kleines Filmchen des zugehoerigen Projekts zu sehen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.11.2015, 19:07
Beitrag #15
RE: Schleifen
Ich habe die Aufgabe lösen können, wenn es jemand interessiert. Hier wurden noch 2 Endschalter angebracht, damit der Nano weiß wo er dran ist. Ansonsten funktioniert die Schleife sehr gut, ich weiß allerdings nicht, ob das so gut ist, den Motor ab 0 starten zu lassen um zu beschleunigen. Der Motor läuft visuell betrachtet erst bei 40-45 von 255 los, aber das wäre wieder ein anderes Thema.
Code:
#include "IRremote.h"
int i = 0;
IRrecv irrecv(11);
decode_results results;

void setup()
{
  pinMode(2, INPUT);
  pinMode(3, INPUT);
  irrecv.enableIRIn();
}

void loop() {    
  if (irrecv.decode(&results))  {
    if (results.value == 0xEF10926D && digitalRead(2) == HIGH)  {
      while (i<255) {
        analogWrite(9, i);
        i++;
        delay(10);
      }
      delay(3000);
      while (i>-1) {
        analogWrite(9, i);
        i--;
        delay(10);
      }
    i=0;
    irrecv.resume();
    }  
    if (results.value == 0xEF10926D && digitalRead(3) == HIGH)  {
     while (i<255)  {
      analogWrite(10, i);
      i++;
      delay(10);
      }
     delay(3000);
     while (i>-1) {
      analogWrite(10, i);
      i--;
      delay(10);
     }
    }
    i=0;
    irrecv.resume();
  }
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  for- Schleifen Solarzelle? 12 1.170 28.02.2016 20:46
Letzter Beitrag: Solarzelle?
  Mehrere Schleifen parallel laufen lassen. Wie geht das?? Hendrik_Schutter 2 2.692 18.08.2014 11:19
Letzter Beitrag: Hendrik_Schutter

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste