Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
Aşağıdakı addımlar LED -lərin necə işlədiyini göstərmək üçün təcrübələrdir. Bir LED -in bərabər nisbətdə necə qaralacağını və onu necə söndürüb söndürəcəyini göstərirlər.
Sizə lazım olacaq:
- Arduino (duet istifadə etdim)
- Çörək lövhəsi
- 5 mm qırmızı LED
- 330 Ω Rezistor (Kritik deyil 330-560 work işləyəcək.)
- 22 Ölçü Qatı Bağlama Teli
Bu təcrübələr üçün lazım olan hissələr bütün Arduino başlanğıc dəstlərinə daxil edilmişdir.
Addım 1: Pulse Modulyasiyası Açıqlandı
LEDlər parlaqlıqdan asılı olmayaraq həmişə eyni gərginlikdə işləyirlər. Parlaqlıq bir kvadrat dalğa osilatörü ilə müəyyən edilir və gərginliyin yüksək olduğu müddət parlaqlığı təyin edir. Buna Pulse Width Modulation (PWM) deyilir. Bu, n -nin 0 -dan 255 -ə qədər bir dəyərə sahib olduğu Arduino analogWrite (pin, n) funksiyası ilə idarə olunur. Əgər n = 2 olarsa, LED n = 1 -dən iki dəfə daha parlaq olacaq. N ikiqat olduqda parlaqlıq həmişə ikiqat artır. Beləliklə, n = 255, n = 128 -dən iki qat daha parlaq olacaq.
N -nin dəyəri çox vaxt vəzifə dövrü adlanan faizlə ifadə olunur. Şəkillər 25, 50 və 75% iş dövrü üçün osiloskop izlərini göstərir.
Addım 2: Qaranlıqlaşdırma
Diaqramdakı kimi dövrə qurun. Bu, bir LED -in yanıb -sönməsi dövrəsinə bənzəyir. PWM effektiv bir pin istifadə etməyiniz lazım olduğu üçün pin 9 istifadə edir.
Aşağıdakı eskizi Arduino IDE -ə kopyalayın/yapışdırın və işə salın.
Diqqət yetirin ki, LED nə qədər parlaqdırsa, o qədər yavaş olur. Ən qaranlığa yaxınlaşdıqca çox tez qaralacaq.
boş quraşdırma ()
{pinMode (9, ÇIXIŞ); } void loop () {int pin = 9; for (int i = 255; i> -1; i--) {analogWrite (pin, i); gecikmə (10); } üçün (int i = 0; i <256; i ++) {analogWrite (pin, i); gecikmə (10); }}
}
Növbəti addım, LED -in sabit bir nisbətdə və bir ifadə üçün necə söndürülməsini göstərir.
Addım 3: Birdə Yuxarı və Aşağı ()
LED -in sabit bir sürətlə sönməsi üçün gecikmə () eksponensial bir sürətlə artmalıdır, çünki iş dövrünün yarısı həmişə parlaqlığın yarısını yaradır. İlk düşüncəm map () funksiyasından istifadə etmək idi, amma xətti idi.
Xətt:
int d = (16-i/16)^2;
gecikmənin uzunluğunu təyin etmək üçün parlaqlığın tərs kvadratını hesablayır.
Aşağıdakı eskizi Arduino IDE -ə kopyalayın/yapışdırın və LED -in sabit bir sürətlə sönüb sönəcəyini görəcəksiniz.
boş quraşdırma ()
{pinMode (9, ÇIXIŞ); } boşluq döngəsi () {int x = 1; int pin = 9; üçün (int i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; analogWrite (pin, i); gecikmə (d); əgər (i == 255) x = -1; // zirvədə istiqaməti dəyişdirin}}