Isi kandungan:

RaspberryPi: Pudar LED masuk dan Keluar: 4 Langkah (dengan Gambar)
RaspberryPi: Pudar LED masuk dan Keluar: 4 Langkah (dengan Gambar)

Video: RaspberryPi: Pudar LED masuk dan Keluar: 4 Langkah (dengan Gambar)

Video: RaspberryPi: Pudar LED masuk dan Keluar: 4 Langkah (dengan Gambar)
Video: Mastery Raspberry !! Cara Rakit dan Setting LCD Monitor 7 Inch Dengan Raspberry Pi 2024, Disember
Anonim
RaspberryPi: Pudar LED masuk dan Keluar
RaspberryPi: Pudar LED masuk dan Keluar

Langkah-langkah berikut adalah eksperimen untuk menggambarkan bagaimana LED berfungsi. Mereka menunjukkan cara meredupkan LED pada kadar genap dan bagaimana memudarnya masuk dan keluar.

Anda perlu:

  • RaspberryPi (Saya menggunakan Pi yang lebih tua, Pi-3 saya sedang digunakan, tetapi Pi mana pun akan berfungsi.)
  • Papan roti
  • LED merah 5 mm
  • Perintang 330 Ω (Tidak kritikal 220-560 Ω akan berfungsi.)
  • Kawat Hookup

Pi-cobbler yang saya gunakan dari Adafruit tidak diperlukan, tetapi menjadikan papan roti lebih mudah.

WiringPi adalah satu set perpustakaan untuk memprogram RaspberryPi di C. Petunjuk untuk memuat turun, memasang dan menggunakan terdapat di

Untuk memasang wiringPi ikuti arahan di halaman ini:

Untuk mendapatkan senarai nombor pin wiringPi masukkan gpio readall di baris arahan.

Dalam versi yang lebih baru Raspian wiringPi dipasang secara lalai.

Langkah 1: Modulasi Lebar Nadi

Modulasi Lebar Nadi
Modulasi Lebar Nadi
Modulasi Lebar Nadi
Modulasi Lebar Nadi
Modulasi Lebar Nadi
Modulasi Lebar Nadi

LED sentiasa berjalan pada voltan yang sama tanpa mengira kecerahan. Kecerahan ditentukan oleh pengayun gelombang persegi dan jumlah masa voltan tinggi menentukan kecerahan. Ini dipanggil Pulse Width Modulation (PWM). Ini dikendalikan oleh fungsi wiringPi pwmWrite (pin, n) di mana n mempunyai nilai dari 0 hingga 255. Sekiranya n = 2 LED akan dua kali lebih terang daripada n = 1. Kecerahan selalu berganda apabila n berganda. Jadi n = 255 akan dua kali lebih terang daripada n = 128.

Nilai n sering dinyatakan sebagai peratusan yang disebut kitaran tugas. Gambar menunjukkan jejak osiloskop untuk 25, 50 dan 75% kitaran tugas.

Langkah 2: LED dan Perintang

LED dan Perintang
LED dan Perintang

Ini tidak perlu, tetapi mempunyai beberapa kemudahan ini dapat membuat papan roti menjadi lebih mudah.

Pateri perintang ke LED pendek dari LED. Gunakan perintang 220-560 Ohm.

Langkah 3: Peredupan Tidak Sekata

Peredupan Tidak Sekata
Peredupan Tidak Sekata

Bina litar seperti dalam rajah. Ini sama seperti litar untuk mengedipkan LED. Ia menggunakan pin wiringPi 1 kerana anda perlu menggunakan pin yang diaktifkan PWM. Susun program dan jalankan. Anda akan melihat bahawa LED yang lebih terang semakin perlahan ia malap. Apabila hampir mendekat, ia akan semakin malap dengan cepat.

/******************************************************************

* Kompilasi: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade1.c -lwiringPi * * Execute: sudo./fade1 * * Semua nombor pin adalah nombor pendawaianPi kecuali dinyatakan sebaliknya. ************************************************** **************** / #masuk int main () {wiringPiSetup (); // Persediaan diperlukan oleh wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mark / Space mode int i; sementara (1) {untuk (i = 255; i> -1; i--) {pwmWrite (1, i); kelewatan (10); } untuk (i = 0; i <256; i ++) {pwmWrite (1, i); kelewatan (10); }}}

Langkah seterusnya menunjukkan cara meredup LED pada kadar tetap, dan satu untuk pernyataan.

Langkah 4: Langkah 4: Naik dan Turun dalam Satu Untuk (), dan dengan Nilai Seimbang

Agar LED redup pada kadar tetap, penundaan () mesti meningkat pada kadar eksponen kerana separuh kitaran tugas akan selalu menghasilkan separuh kecerahan.

Garisan itu:

int d = (16-i / 16) ^ 2;

mengira kuadrat terbalik bagi kecerahan untuk menentukan panjang kelewatan. Susun dan jalankan program ini dan anda akan melihat bahawa LED akan pudar masuk dan padam pada kadar tetap.

/******************************************************************

* Kompilasi: gcc -o fade1 -Wall -I / usr / local / include -L / usr / local / lib * fade2.c -lwiringPi * * Execute: sudo./fade2 * * Semua nombor pin adalah nombor pendawaianPi kecuali dinyatakan sebaliknya. ************************************************** **************** / #masuk int main () {wiringPiSetup (); // Persediaan diperlukan oleh wiringPi pinMode (1, PWM_OUTPUT); // pwmSetMode (PWM_MODE_MS); // Mark / Space mode semasa (1) {int i; int x = 1; untuk (i = 0; i> -1; i = i + x) {int d = (16-i / 16) ^ 2; // calc inverse square of index pwmWrite (1, i); kelewatan (d); jika (i == 255) x = -1; // tukar arah di puncak}}}

Disyorkan: