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

Mengontrol Kecerahan LED dengan PWM melalui Tombol Push pada Arduino Mega

Komponen dan Perlengkapan

Aplikasi dan Layanan Online

Tentang Proyek

Proyek ini menunjukkan cara memudar-kan LED (Light-emitting diodes) menggunakan Arduino. Proyek dibagi menjadi 3 bagian:

Memudar-kan Lampu:

Di akhir bagian ini, proyek Anda seharusnya terlihat seperti ini.

Seperti yang Anda lihat, lampu menyala lebih terang, kemudian perlahan menjadi redup lagi dalam urutan lampu lalu lintas. Sekarang, mari kita mulai.

Skematik:

Mengontrol Kecerahan LED dengan PWM melalui Tombol Push pada Arduino Mega

Seperti yang Anda lihat, LED terhubung ke pin 3, 6, dan 9. Anda dapat menghubungkan LED ke pin mana pun yang Anda suka tetapi harus mengubahnya di kode setelahnya.

Kode:

Untuk memulai, tambahkan ini ke kode Anda. Ini menunjukkan komponen mana, dalam hal ini, LED mana yang masuk ke pin mana.

int ledRed = 9; int ledYellow = 6; int ledGreen = 3;

Selanjutnya, di dalam fungsi void setup(), tentukan apakah pin adalah Input atau Output.

void setup() { pinMode(ledRed, OUTPUT); pinMode(ledYellow, OUTPUT); pinMode(ledGreen, OUTPUT); }

Terakhir, tambahkan yang berikut ke dalam fungsi void loop(). Ini memberi tahu MCU apa yang harus dilakukan.

void loop() { // Ini hanya memudar-kan lampu merah - ledRed //ledRed for (int i=0; i<=255; i++) { analogWrite(ledRed, i); delay (30); } for (int i=255; i>=0; i--) { analogWrite(ledRed, i); delay (30); } }

Yang terjadi di sini, MCU memeriksa apakah integer 'i' lebih rendah dari 255 atau tidak. Jika iya, nilai 'i' ditambah satu. Proses ditunda 30 milidetik, kemudian, memulai ulang. Setelah nilai 'i' sama dengan atau lebih tinggi dari 255, nilai dikurangi satu setiap kali diperiksa. Setelah nilai mencapai 0, proses dilakukan lagi dari awal.

Namun, jika Anda ingin mengubah waktu yang dibutuhkan untuk memudar-kan, Anda harus mengubah semua fungsi delay() menjadi jumlah yang Anda inginkan. Itu tidak efisien. Untuk memudahkan dan mempercepat saat ingin mengubah waktu delay(), tambahkan ini di awal kode Anda.

const int fade = 30;

Itu menetapkan nilai default, dalam hal ini, waktu default. Sekarang, ubah setiap nilai delay() menjadi (fade). Anda dapat memberinya nama lain jika Anda inginkan. Akibatnya, fungsi delay() Anda seharusnya terlihat seperti ini.

delay (fade);

Dan kode seharusnya terlihat seperti:

int ledRed = 9; int ledYellow = 6; int ledGreen = 3; const int fade = 10; void setup() { pinMode(ledRed, OUTPUT); pinMode(ledYellow, OUTPUT); pinMode(ledGreen, OUTPUT); } void loop() { //ledRed for (int i = 0; i <= 255; i++) { analogWrite(ledRed, i); delay (fade); } for (int i = 255; i >= 0; i--) { analogWrite(ledRed, i); delay (fade); } //ledYellow for (int i = 0; i <= 255; i++) { analogWrite(ledYellow, i); delay (fade); } for (int i = 255; i >= 0; i--) { analogWrite(ledYellow, i); delay (fade); } //ledGreen for (int i = 0; i <= 255; i++) { analogWrite(ledGreen, i); delay (fade); } for (int i = 255; i >= 0; i--) { analogWrite(ledGreen, i); delay (fade); } //ledYellow for (int i = 0; i <= 255; i++) { analogWrite(ledYellow, i); delay (fade); } for (int i = 255; i >= 0; i--) { analogWrite(ledYellow, i); delay (fade); } }

Memudar-kan Lampu dengan Tombol Push:

Setelah bagian ini, Anda akan dapat menambahkan tombol ke proyek Anda.

Seperti yang Anda lihat, LED hanya berubah setelah saya menekan tombol. Sekarang, mari kita mulai.

Skematik:

Mengontrol Kecerahan LED dengan PWM melalui Tombol Push pada Arduino Mega

Anda mungkin telah memperhatikan semua LED tetap di tempat yang sama, tetapi ada penambahan tombol push.

Kode:

Pertama, kita perlu memberitahu MCU ke pin mana tombol terhubung. Untuk melakukan itu, tambahkan ini di awal kode Anda.

int button = 7;

Sekarang, di dalam fungsi void setup(), tambahkan ini untuk memberi tahu MCU apakah tombol adalah Input atau Output.

pinMode(button, INPUT);

Juga tambahkan ini ke fungsi.

 digitalWrite(ledRed, LOW); digitalWrite(ledYellow, LOW); digitalWrite(ledGreen, HIGH);

Itu menetapkan lampu awal. Kali ini, LED awal adalah hijau tetapi Anda dapat mengubahnya menjadi merah atau kuning jika Anda ingin.

Sekarang, ada perubahan besar di dalam fungsi void loop(). Segala yang ada di dalam loop() kini digantikan oleh fungsi bernama fadeLights() (nama bisa berbeda jika Anda ingin). Di dalam loop() sekarang harus menjadi:

void loop() { if(digitalRead(button) == HIGH) { delay(15); // software debounce if(digitalRead(button) == HIGH){ // jika tombol ditekan, fungsi fadeLights(); // fadeLights dipanggil } } else { digitalWrite(ledRed, LOW); // jika tombol tidak ditekan, LED hijau digitalWrite(ledYellow, LOW); // akan menyala dan yang lainnya tidak. digitalWrite(ledGreen, HIGH); } }

Seperti yang disebutkan sebelumnya, fungsi void fadeLights() akan memiliki yang ada di dalam loop.

void fadeLights(){ for (int i = 255; i >= 0; i--) { //mulai di hijau jadi perlu membuat hijau memudar analogWrite(ledGreen, i); delay (fade); } //ledYellow for (int i = 0; i <= 255; i++) { analogWrite(ledYellow, i); delay (fade); } for (int i = 255; i >= 0; i--) { analogWrite(ledYellow, i); delay (fade); } //ledRed for (int i = 0; i <= 255; i++) { analogWrite(ledRed, i); delay (fade); } for (int i = 255; i >= 0; i--) { analogWrite(ledRed, i); delay (fade); } //ledYellow for (int i = 0; i <= 255; i++) { analogWrite(ledYellow, i); delay (fade); } for (int i = 255; i >= 0; i--) { analogWrite(ledYellow, i); delay (fade); } //ledGreen for (int i = 0; i <= 255; i++) { analogWrite(ledGreen, i); delay (fade); } }

Jika proyek Anda bekerja seperti yang ada di video, Anda telah melakukannya dengan benar. Jika urutan tidak benar, periksa:

Dan jika lampu tidak menyala, periksa

Memudar-kan Lampu dengan Tombol (perbaikan delay):

Seperti yang mungkin Anda perhatikan, ketika saya melepaskan tombol, lampu terus memudar. Setelah bagian ini, Anda akan dapat mengedit kode Anda sehingga LED hanya memudar saat tombol ditekan.

Seperti yang Anda lihat di sini, ketika saya melepaskan tombol, LED kembali ke urutan default :

Merah - OFF

Kuning - OFF

Hijau - ON

Skematik:

Skematik tetap sama, karena kita tidak menambahkan komponen apa pun atau ingin melakukan sesuatu yang berbeda - kita masih ingin LED memudar.

Mengontrol Kecerahan LED dengan PWM melalui Tombol Push pada Arduino Mega

Kode:

Kami tidak menambahkan hal apa pun lagi jadi tidak perlu menambahkan apa pun di awal. Namun, karena kita mengubah delay, kita perlu menghapus ini.

const int fade = 10; // tidak diperlukan lagi

Tidak ada yang perlu diubah untuk fungsi setup(). Di dalam void loop(), kita perlu menambahkan pernyataan else.

void loop() { if(digitalRead(button) == HIGH) { delay(15); if(digitalRead(button) == HIGH){ fadeLights(); } } else { // tambahkan di sini digitalWrite(ledRed, LOW); digitalWrite(ledYellow, LOW); digitalWrite(ledGreen, HIGH); } }

Ini berarti ketika tombol tidak ditekan, program keluar dari fadeLights() dan pergi ke pernyataan else yang memiliki urutan LED default. Berbeda dari sebelumnya - sebelumnya, tombol tidak diperiksa sekali fadeLights() telah dipanggil.

Sekarang, ubah semua fungsi delay() menjadi ini:

for( int y = 0; y < 1000; y++){ // jika tombol dilepaskan if (digitalRead(button) == LOW) { return; }

Di setiap loop, mikroprosesor akan memeriksa tombol. Jika dilepaskan, perintah return akan dipanggil untuk menghentikan fadeLights(). Dari perkiraan saya, ketika setiap for loop dieksekusi, mungkin memakan waktu sekitar 10 mikrodetik yang berarti kita perlu melakukannya banyak kali untuk mencapai kecepatan yang diinginkan.

Semoga Anda menyukai tutorial ini dan semoga berhasil dengan proyek Anda.

Proses manufaktur

  1. Buat Game Gyroskop Real-Time dengan Arduino Nano & Sensor MPU-6050
  2. Sistem Absensi RFID berbasis Arduino yang Andalkan dengan Python
  3. Proyek Sensor Suhu & Kelembaban DHT11 dengan Indikator LED dan Speaker Piezo
  4. Buat Alat Levitasi Ultrasonik dengan Arduino – Panduan Langkah demi Langkah
  5. Unopad: Pengontrol MIDI Arduino yang Mulus untuk Ableton Live
  6. Sistem Penyiraman Otomatis Tanaman Berbasis Arduino
  7. Bangun Sensor Halangan Sederhana dengan Arduino – Tutorial Mudah LED IR & Fotodioda
  8. Find Me: Pelacak Item Cerdas dengan Arduino dan Bluetooth
  9. Mengukur Massa Bumi dengan Arduino: Panduan DIY Langkah demi Langkah
  10. Kontrol Kipas PWM 4 Pin 25 kHz dengan Arduino Uno – Bangun, Kode & Uji