Mündəricat:

RaspberryPi: Bir LEDin sönməsi və sönməsi: 4 addım (şəkillərlə)
RaspberryPi: Bir LEDin sönməsi və sönməsi: 4 addım (şəkillərlə)

Video: RaspberryPi: Bir LEDin sönməsi və sönməsi: 4 addım (şəkillərlə)

Video: RaspberryPi: Bir LEDin sönməsi və sönməsi: 4 addım (şəkillərlə)
Video: Raspberry Pi dersleri Gpio pinleri kullanımı #Ders1 2024, Iyul
Anonim
RaspberryPi: bir LED -in sönməsini söndürün
RaspberryPi: bir LED -in sönməsini söndürün

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:

  • RaspberryPi (daha köhnə bir Pi istifadə etdim, Pi-3'üm istifadə olunur, amma hər hansı bir Pi işləyəcək.)
  • Çörək lövhəsi
  • 5 mm qırmızı LED
  • 330 Ω Rezistor (Kritik deyil 220-560 work işləyəcək.)
  • Bağlama teli

Adafruit-dən istifadə etdiyim Pi-ayaqqabı lazım deyil, ancaq çörək bişirməyi asanlaşdırır.

WiringPi, RaspberryPi -ni C. -də proqramlaşdırmaq üçün yükləmək, quraşdırmaq və istifadə etmək üçün təlimatlar https://www.wiringpi.com/ ünvanındadır.

WiringPi qurmaq üçün bu səhifədəki təlimatları izləyin:

KablolamaPi pin nömrələrinin siyahısını əldə etmək üçün əmr satırında gpio readall daxil edin.

Raspian wiringPi -nin yeni versiyalarında standart olaraq quraşdırılmışdır.

Addım 1: Pulse Width Modulation

Pulse Genişliyi Modulyasiyası
Pulse Genişliyi Modulyasiyası
Pulse Genişliyi Modulyasiyası
Pulse Genişliyi Modulyasiyası
Pulse Genişliyi Modulyasiyası
Pulse Genişliyi Modulyasiyası

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 wiringPi pwmWrite (pin, n) funksiyası ilə idarə olunur, burada n 0 -dan 255 -ə qədər dəyərə malikdir. Ə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: LED və Rezistor

LED və rezistor
LED və rezistor

Bu lazım deyil, amma bunlardan bir neçəsinə sahib olmaq çörək bişirməyi çox asanlaşdıra bilər.

Bir LEDin qısa ledinə bir rezistor lehimləyin. 220-560 Ohm müqavimət istifadə edin.

Addım 3: Qaranlıqlaşdırma

Qeyri-bərabər qaralma
Qeyri-bərabər qaralma

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əli olduğunuz üçün wiringPi pin 1 istifadə edir. Proqramı tərtib edin 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.

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

* Kompilyasiya: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * İcra edin: sudo./fade1 * * Başqa cür göstərilmədiyi təqdirdə bütün pin nömrələri wiringPi nömrələridir. ************************************************ ****************/ #includ int main () {wiringPiSetup (); // wiringPi pinMode (1, PWM_OUTPUT) tərəfindən tələb olunan quraşdırma; // pwmSetMode (PWM_MODE_MS); // İşarə/Boşluq rejimi int i; while (1) {for (i = 255; i> -1; i--) {pwmWrite (1, i); gecikmə (10); } üçün (i = 0; i <256; i ++) {pwmWrite (1, 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.

Adım 4: Addım 4: (Üçün) Bir və Bir Həddə 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.

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. Bu proqramı tərtib edin və işə salın və LED -in sabit bir sürətlə sönəcəyini görəcəksiniz.

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

* Kompilyasiya: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * İcra edin: sudo./fade2 * * Başqa cür göstərilmədiyi təqdirdə bütün pin nömrələri wiringPi nömrələridir. ************************************************ ****************/ #include int main () {wiringPiSetup (); // wiringPi pinMode (1, PWM_OUTPUT) tərəfindən tələb olunan quraşdırma; // pwmSetMode (PWM_MODE_MS); // Mark/Space rejimi (1) {int i; int x = 1; (i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; // pwmWrite indeksinin tərs kvadratını hesablayın (1, i); gecikmə (d); əgər (i == 255) x = -1; // pik nöqtədə istiqaməti dəyişdirin}}}

Tövsiyə: