Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Gehen Sie weg von der Verzögerung

Komponenten und Verbrauchsmaterialien

Arduino UNO
× 1
5 mm LED:Rot
× 2

Über dieses Projekt

Dieses Video wurde von Fragen inspiriert, die ich online säe. zum Blinken von 2 LEDs in verschiedenen Geschwindigkeiten.

Wenn wir eine LED alle 1000 Millis und die zweite alle 500 Millis blinken wollten, könnten wir immer noch eine Verzögerung verwenden, wie Sie sehen können, habe ich die 1000-Millis-Verzögerung der ersten LED in 500-Millis-Blinken des zweiten Deals aufgeteilt.

Byte LED2 =12; Void setup () { PinMode (LED_BUILTIN, OUTPUT); pinMode (LED2, OUTPUT);}void loop () { digitalWrite (LED_BUILTIN, HIGH); digitalWrite (LED2, HIGH); Verzögerung (500); digitalWrite (LED2, LOW); Verzögerung (500); digitalWrite (LED_BUILTIN, LOW); digitalWrite (LED2, HIGH); Verzögerung (500); digitalWrite (LED2, LOW); Verzögerung (500); } 

Aber was passiert, wenn wir den schnelleren in 300 Millisekunden statt in 500 Millisekunden blinken wollten. Hier macht die Verwendung von Verzögerung es sehr kompliziert bis unmöglich.

Was also tun? Hör auf, Verzögerung zu verwenden!

Wir haben sogar ein Beispiel dafür in der Arduino IDE und es heißt blinkwithoutdelay.

Ich dupliziere die Logik der ersten LED auf eine zweite und stelle die gewünschte Verzögerung ein.

Versuchen Sie es also auch und vermeiden Sie Verzögerungen. Ich werde noch eine letzte Sache sagen, der Code, den ich geteilt habe, ist bei weitem nicht perfekt, und ich dachte daran, ihn zu ändern, aber da sich dieses Video an Leute richtet, die neu bei Arduino sind, Ich habe dagegen gestimmt.

Code

  • Beispielcode
Beispielcode Arduino
const int ledPin =LED_BUILTIN;int ledState =LOW; unsigned long previousMillis =0; const langes Intervall =1000; const int ledPin2 =12;int ledState2 =LOW; unsigned long previousMillis2 =0; const langes Intervall2 =300; Void setup () { PinMode (ledPin, AUSGANG); pinMode (ledPin2, OUTPUT);}void loop () { unsigned long currentMillis =millis (); if (currentMillis - previousMillis>=Intervall) { previousMillis =currentMillis; if (ledState ==LOW) { ledState =HIGH; aufrechtzuerhalten. Sonst { ledState =NIEDRIG; } digitalWrite (ledPin, ledState); } // Ende if if (currentMillis - previousMillis2>=interval2) { previousMillis2 =currentMillis; if (ledState2 ==LOW) {ledState2 =HIGH; aufrechtzuerhalten. Sonst {ledState2 =NIEDRIG; } digitalWrite (ledPin2, ledState2); } //ende wenn }

Schaltpläne


Herstellungsprozess

  1. So schützen Sie Aluminium vor Korrosion
  2. Cloud Computing von Grund auf lernen
  3. 3 Gründe für den Umstieg von C auf C++
  4. Feuchte/Temperatur aus dem Web abrufen
  5. IoT 101-Projekt:Stream-Temperatur von Ihrem Raspberry Pi
  6. Streamen von Sensordaten von einer ppDAQC-Pi-Platte mit InitialState
  7. RASPBERRY PI WIFI-ROBOTER, KONTROLLIERT VON ANDROID SMART PHONE
  8. Verilog-Verzögerungssteuerung
  9. Woher stammt das Sägekonzept?
  10. Was kann man von The Grey Cast erwarten?