Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Menjauh Dari Penundaan

Komponen dan persediaan

Arduino UNO
× 1
LED 5 mm:Merah
× 2

Tentang proyek ini

Video ini terinspirasi dari pertanyaan yang saya tabur secara online. tentang cara mengedipkan 2 LED dengan kecepatan berbeda.

Jika kita ingin mengedipkan sebuah led setiap 1000 milis dan yang kedua setiap 500 milis, kita masih bisa menggunakan penundaan, seperti ini, seperti yang Anda lihat, saya membagi penundaan 1000 milis dari LED pertama menjadi 500 milis kedipan pada kesepakatan kedua.

byte LED2 =12; void setup() { pinMode(LED_BUILTIN, OUTPUT); pinMode(LED2, OUTPUT);}void loop() { digitalWrite(LED_BUILTIN, TINGGI); digitalWrite(LED2, TINGGI); penundaan (500); digitalWrite(LED2, RENDAH); penundaan (500); digitalWrite(LED_BUILTIN, RENDAH); digitalWrite(LED2, TINGGI); penundaan (500); digitalWrite(LED2, RENDAH); penundaan (500); } 

Tapi apa jadinya jika kita ingin mengedipkan yang lebih cepat dalam 300 milis daripada yang 500 milis. Di sinilah penggunaan delay membuatnya sangat rumit hingga tidak mungkin.

Jadi apa yang harus dilakukan? Berhenti menggunakan penundaan!

Kami bahkan mendapat contoh untuk itu di Arduino IDE dan disebut blinkwithoutdelay.

Saya menduplikasi logika LED pertama ke yang kedua dan mengatur penundaan yang diinginkan.

Jadi cobalah juga, dan hindari penundaan. Saya akan mengatakan satu hal terakhir, kode yang saya bagikan jauh dari sempurna, dan saya berpikir untuk mengubahnya, tetapi karena video ini ditujukan untuk orang-orang yang baru mengenal arduino, Saya memilih menentangnya.

Kode

  • Contoh Kode
Contoh Kode Arduino
const int ledPin =LED_BUILTIN;int ledState =RENDAH; unsigned long beforeMillis =0; interval panjang const =1000; const int ledPin2 =12;int ledState2 =RENDAH; unsigned lama sebelumnyaMillis2 =0; interval panjang const2 =300; void setup() { pinMode(ledPin, OUTPUT); pinMode(ledPin2, OUTPUT);}void loop() { unsigned long currentMillis =millis(); if (Millis saat ini - Mili sebelumnya>=interval) { Mili sebelumnya =Milis saat ini; if (ledState ==LOW) { ledState =TINGGI; } else { ledState =RENDAH; } digitalWrite(ledPin, ledState); } //end if if (Millis saat ini - sebelumnyaMillis2>=interval2) { sebelumnyaMillis2 =sewaMillis saat ini; if (ledState2 ==RENDAH) { ledState2 =TINGGI; } else { ledState2 =RENDAH; } digitalWrite(ledPin2, ledState2); } //akhiri jika }

Skema


Proses manufaktur

  1. Bagaimana Melindungi Aluminium Dari Korosi
  2. Pelajari Cloud Computing dari Awal
  3. 3 alasan untuk beralih dari C ke C++
  4. Dapatkan Kelembaban/Suhu dari Web
  5. Proyek IoT 101:Aliran Suhu dari Raspberry Pi
  6. Streaming Data Sensor dari ppDAQC Pi Plate Menggunakan InitialState
  7. ROBOT WIFI RASPBERRY PI DIKONTROL DARI PONSEL PINTAR ANDROID
  8. Kontrol Penundaan Verilog
  9. Dari Mana Konsep Penggergajian Berasal?
  10. Apa yang Diharapkan dari The Grey Cast?