Mundarija:

LEDni o'chirish va o'chirish: 3 qadam
LEDni o'chirish va o'chirish: 3 qadam

Video: LEDni o'chirish va o'chirish: 3 qadam

Video: LEDni o'chirish va o'chirish: 3 qadam
Video: Pubg mobileda tekinga emotsiya olish😱😱😱 2024, Iyul
Anonim
LEDni o'chirish va o'chirish
LEDni o'chirish va o'chirish

Quyidagi qadamlar LEDlarning qanday ishlashini ko'rsatish uchun tajribalardir. Ular LEDni qanday tezlikda kamaytirish va uni qanday o'chirish va o'chirishni tasvirlab berishadi.

Sizga kerak bo'ladi:

  • Arduino (men duet ishlatardim)
  • Non paneli
  • 5 mm qizil LED
  • 330 Ω rezistor (muhim emas 330-560 Ω ishlaydi.)
  • 22 o'lchovli qattiq ulash simlari

Ushbu tajribalar uchun zarur bo'lgan qismlar Arduino -ning barcha boshlang'ich to'plamlariga kiritilgan.

1 -qadam: Puls modulyatsiyasi tushuntiriladi

Puls modulyatsiyasi tushuntiriladi
Puls modulyatsiyasi tushuntiriladi
Puls modulyatsiyasi tushuntiriladi
Puls modulyatsiyasi tushuntiriladi
Puls modulyatsiyasi tushuntiriladi
Puls modulyatsiyasi tushuntiriladi

LEDlar yorqinligidan qat'iy nazar har doim bir xil kuchlanishda ishlaydi. Yorqinligi kvadrat to'lqinli osilator bilan aniqlanadi va kuchlanish yuqori bo'lgan vaqt yorqinlikni aniqlaydi. Bunga puls kengligi modulyatsiyasi (PWM) deyiladi. Bu Arduino analogWrite (pin, n) funktsiyasi tomonidan boshqariladi, bu erda n qiymati 0 dan 255 gacha. AnalogWrite () haqiqiy analog emas, PWM chiqaradi. Agar n = 2 bo'lsa, LED n = 1dan ikki barobar yorqinroq bo'ladi. Yorug'lik har doim ikki baravar ko'payadi. Shunday qilib, n = 255 n = 128dan ikki barobar yorqinroq bo'ladi.

N ning qiymati ko'pincha ish tsikli deb ataladigan foiz sifatida ifodalanadi. Rasmlarda 25, 50 va 75% ish tsikllari uchun osiloskop izlari ko'rsatilgan.

2-qadam: teng bo'lmagan karartma

Teng bo'lmagan karartma
Teng bo'lmagan karartma
Teng bo'lmagan karartma
Teng bo'lmagan karartma

Diagrammadagi kabi sxemani yarating. Bu xuddi LEDni o'chirish sxemasiga o'xshaydi. U 9 -pinni ishlatadi, chunki siz PWM -ga ulangan pinni ishlatishingiz kerak.

Quyidagi eskizni Arduino IDE -ga nusxalash/joylashtirish va ishga tushirish.

Ko'ryapsizmi, LED qanchalik yorug 'bo'lsa, shuncha sekin pasayadi. Eng xiralashgan joyga yaqinlashganda, u juda tez xiralashadi.

bo'sh o'rnatish ()

{pinMode (9, OUTPUT); } void loop () {int pin = 9; uchun (int i = 255; i> -1; i--) {analogWrite (pin, i); kechikish (10); } uchun (int i = 0; i <256; i ++) {analogWrite (pin, i); kechikish (10); }}

}

Keyingi qadam, LEDni doimiy tezlikda qanday o'chirishni ko'rsatib beradi.

3 -qadam: yuqoriga va pastga bitta () uchun

LEDning doimiy tezlikda xiralashishi uchun kechikish () ekspansional tezlikda oshishi kerak, chunki ish tsiklining yarmi har doim yorqinlikning yarmini beradi. Mening birinchi fikrim map () funktsiyasidan foydalanishga urinish edi, lekin u chiziqli.

Chiziq:

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

kechikish uzunligini aniqlash uchun yorqinlikning teskari kvadratini hisoblab chiqadi.

Quyidagi eskizni Arduino IDE -ga nusxa ko'chiring/joylashtiring, shunda LEDlar doimiy ravishda o'chib -o'chib turishini ko'rasiz.

bo'sh o'rnatish ()

{pinMode (9, OUTPUT); } void loop () {int x = 1; int pin = 9; uchun (int i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; analogWrite (pin, i); kechikish (d); agar (i == 255) x = -1; // tepalik yo'nalishini o'zgartirish}}

Tavsiya: