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
Millis für count-down
13.10.2014, 15:57
Beitrag #1
Millis für count-down
Hallo Arduinos,
bin schon im Traum Scetches am zusammen basteln, so bin ich am rum probieren! Jetzt habe ich eine Aufgabenstellung, da komme ich irgendwie nicht so richtig weiter und weiss auch nicht, warum mein Ansatz nicht laufen will.
Die Problemstellung ist folgende: Mit einem Drehgeber wird ein Wertebereich von -20 bis + 20 festgelegt. Dieser Wertebereich wird auf 6 cases gemapt. Soweit so gut.
In den 6 cases sollen 6 unterschiedliche Zeiten auf Null zurück laufen, z.B. case 0: Signal für 10 sek an, case 1: Signal für 8 sek an u.s.w. und das Ganze ohne delay!
Bis jetzt habe ich folgenden Scetch:

PHP-Code:
if (nextAction == AUTO_MOVE)   
      
//Drehgebersignale werden auf einen zahlenbereich von -20 bis +20 für den master_count1 begrenzt
  
if (master_count1 < -20) {master_count1 = -20;}
  if (
master_count1 20) {master_count1 20;}
 
     
//Der Drehgeberbereich wird auf 6 cases  gemapt
  
int zeitwahl map (master_count1master_count1Minmaster_count1Max05);
  
  
digitalWrite (10LOW); 
  
  
  
unsigned long currentMillis millis(); 
    
//Je nach case soll die LED an Pin10 für eine bestimmte Zeit leuchten. case 0 = 10 sek, case 2 = 8 sek. usw.
    
switch (zeitwahl
    {
      case 
0:
      
      if (
currentMillis previousMillis >= 10000
      {
digitalWrite(10HIGH);}
      
previousMillis currentMillis;
      
Serial.print("case0:  ");
      
Serial.println(master_count1);
      
Serial.println(master_count);
      
delay(10);
   break;
     
     
   case 
1:
          if (
currentMillis previousMillis <= 8000
    {
digitalWrite(10HIGH);}
    
// save the current time as the last time you changed an LED 
    
previousMillis currentMillis;
       
Serial.print("case1:  ");
       
Serial.println(master_count1);
        
Serial.println(master_count);
        
delay(10);
   
break;   
   
   case 
2:
     
     if (
currentMillis previousMillis <=  6000
    {
digitalWrite(10HIGH);}
    
// save the current time as the last time you changed an LED 
    
previousMillis currentMillis;
      
Serial.print("case2:  ");
     
Serial.println(master_count1);
        
delay(10);
    
break;
      
   case 
3:
  
       if (
currentMillis previousMillis <= 4000
     {
digitalWrite(10HIGH);}
    
// save the current time as the last time you changed an LED 
    
previousMillis currentMillis;
      
Serial.print("case3:  ");
     
Serial.println(master_count1);
        
delay(10);
    
break;
   
   case 
4:
    
     if (
currentMillis previousMillis <=  2000)
     {
digitalWrite(10HIGH);}
    
// save the current time as the last time you changed an LED 
    
previousMillis currentMillis;
      
Serial.print("case4:  ");
     
Serial.println(master_count1);
        
delay(10);
break;
      
   case 
5:
  
      if (
currentMillis previousMillis <=  1000
     {
digitalWrite(10HIGH);}
    
// save the current time as the last time you changed an LED 
    
previousMillis currentMillis;
      
Serial.print("case5:  ");
     
Serial.println(master_count1);
        
delay(10);
    
break;
   
   
digitalWrite (10LOW);          
     default:  
  ;
    }
   }


Die Probleme sind:
- Die LED an PIN 10 leuchtet nicht wie gewollt
- Das Blinken der LED 6 im Menüpunkt ACTION-MENU1 geht nur bei Auswahl des Bereiche für case 0 und 1.

Bin für jeden Tipp und jede Hilfe dankbar!
VG
Nimes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Problem mit Delay und Millis funnyzocker 1 453 26.06.2016 09:54
Letzter Beitrag: hotsystems
  Mehrere Abläufe gleichteitig mit "Millis" MarkusSpielt 3 657 11.04.2016 18:23
Letzter Beitrag: MarkusSpielt
  Leds blinken lassen mit if-Abfrage und millis ferdi 11 1.505 24.10.2015 08:54
Letzter Beitrag: Bitklopfer
  Multitasking mit millis statt delay LEDstar 2 1.240 15.04.2015 11:25
Letzter Beitrag: Bitklopfer
  Problem mit millis() bei Programmablauf pahe87 7 1.278 24.03.2015 12:24
Letzter Beitrag: Thorsten Pferdekämper
  Delay ersetzen durch millis oder Interrupt HTO 6 4.602 28.11.2014 11:02
Letzter Beitrag: Thorsten Pferdekämper
  usleep() und uclock() als Ersatz für delay / millis ? HaWe 5 1.237 08.10.2014 08:54
Letzter Beitrag: HaWe
  millis() overflow - Problem - Erklärung? DL1AKP 6 5.202 24.02.2014 08:21
Letzter Beitrag: rkuehle

Gehe zu:


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