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

Kedipkan Dua LED dengan Kecepatan Berbeda pada Arduino Tanpa delay()

Komponen dan perlengkapan

Arduino UNO × 1

5 mm LED: Merah × 2

Tentang proyek ini

Video ini terinspirasi dari pertanyaan yang saya temukan online tentang cara membuat 2 LED berkedip dengan kecepatan berbeda.

Jika kita ingin membuat satu LED berkedip setiap 1000 milidetik dan yang lain setiap 500 milidetik, kita masih bisa menggunakan delay, seperti ini. Seperti yang Anda lihat, saya membagi delay 1000 milidetik pada LED pertama menjadi berkedip 500 milidetik pada LED kedua.

byte LED2 = 12; void setup() { pinMode(LED_BUILTIN, OUTPUT); pinMode(LED2, OUTPUT); } void loop() { digitalWrite(LED_BUILTIN, HIGH); digitalWrite(LED2, HIGH); delay(500); digitalWrite(LED2, LOW); delay(500); digitalWrite(LED_BUILTIN, LOW); digitalWrite(LED2, HIGH); delay(500); digitalWrite(LED2, LOW); delay(500); } 

Tetapi apa yang akan terjadi jika kita ingin membuat yang lebih cepat berkedip setiap 300 milidetik alih-alih 500 milidetik? Di sinilah penggunaan delay menjadi sangat rumit, bahkan mustahil.

Jadi, apa yang harus dilakukan? Berhenti menggunakan delay!

Kami bahkan memiliki contohnya di Arduino IDE yang disebut blinkwithoutdelay.

Saya meniru logika LED pertama ke yang kedua dan mengatur delay yang diinginkan.

Cobalah juga, dan tinggalkan delay. Saya akan katakan satu hal terakhir, kode yang saya bagikan jauh dari sempurna, dan saya memikirkan untuk mengubahnya tetapi, karena video ini bertujuan untuk pemula Arduino, saya memilih untuk tidak melakukannya.

Kode

const int ledPin = LED_BUILTIN; int ledState = LOW; unsigned long previousMillis = 0; const long interval = 1000; const int ledPin2 = 12; int ledState2 = LOW; unsigned long previousMillis2 = 0; const long interval2 = 300; void setup() { pinMode(ledPin, OUTPUT); pinMode(ledPin2, OUTPUT); } void loop() { unsigned long currentMillis = millis(); if (currentMillis - previousMillis >= interval) { previousMillis = currentMillis; if (ledState == LOW) { ledState = HIGH; } else { ledState = LOW; } digitalWrite(ledPin, ledState); } //end if if (currentMillis - previousMillis2 >= interval2) { previousMillis2 = currentMillis; if (ledState2 == LOW) { ledState2 = HIGH; } else { ledState2 = LOW; } digitalWrite(ledPin2, ledState2); } //end if } 

Skema

Kedipkan Dua LED dengan Kecepatan Berbeda pada Arduino Tanpa delay()

Proses manufaktur

  1. Melindungi Aluminium dari Korosi: Strategi Ahli untuk Ketahanan Jangka Panjang
  2. Menguasai Komputasi Cloud dari Nol: Panduan Praktis untuk Pemula
  3. Mengapa Beralih dari C ke C++ Dapat Meningkatkan Pengembangan Terbenam
  4. Pemantauan Suhu dan Kelembaban Real-Time melalui Web pada Raspberry Pi 4
  5. Tutorial IoT untuk Pemula: Streaming Data Suhu dari Raspberry Pi
  6. Streaming Data Suhu Real-Time dari ppDAQC Pi-Plate ke InitialState dengan Raspberry Pi Tanpa Monitor
  7. Membuat Robot yang Dikontrol WiFi dengan Raspberry Pi & Android Smart Phone
  8. Memahami Kontrol Penundaan Verilog: Teknik Waktu dan Praktik Terbaik
  9. Asal Usul Konsep Gerigian: Dari Alat Kuno hingga Mesin Modern
  10. Memahami Besi Kelabu Cor: Sifat, Produksi, dan Aplikasi Otomotif