İçindekiler:

RaspberryPi: Bir LED'i Açma ve Kapatma: 4 Adım (Resimlerle)
RaspberryPi: Bir LED'i Açma ve Kapatma: 4 Adım (Resimlerle)

Video: RaspberryPi: Bir LED'i Açma ve Kapatma: 4 Adım (Resimlerle)

Video: RaspberryPi: Bir LED'i Açma ve Kapatma: 4 Adım (Resimlerle)
Video: Göklerde kartal gibiydim ❤️‍🩹😂 ( Sesi kullanıp, benzer içerikler yapabilirsiniz 🥰 ) 2024, Kasım
Anonim
RaspberryPi: Bir LED'i Soluklaştırın ve Çıkarın
RaspberryPi: Bir LED'i Soluklaştırın ve Çıkarın

Aşağıdaki adımlar, LED'lerin nasıl çalıştığını gösteren deneylerdir. Bir LED'in eşit oranda nasıl karartılacağını ve nasıl açılıp kapatılacağını gösterirler.

İhtiyacın olacak:

  • RaspberryPi (Daha eski bir Pi kullandım, Pi-3'üm kullanımda, ancak herhangi bir Pi çalışacak.)
  • ekmek tahtası
  • 5 mm kırmızı LED
  • 330 Ω Direnç (Kritik değil 220-560 Ω çalışacaktır.)
  • Bağlantı Teli

Adafruit'ten kullandığım Pi-cobbler gerekli değil ama breadboard yapmayı kolaylaştırıyor.

WiringPi, RaspberryPi'yi C'de programlamak için bir dizi kitaplıktır. İndirme, kurma ve kullanma talimatları https://www.wiringpi.com/ adresinde bulunmaktadır.

Kablolama Pi'yi kurmak için bu sayfadaki talimatları izleyin:

Kablolama Pi pin numaralarının bir listesini almak için komut satırına gpio readall girin.

Raspian kablolamanın daha yeni sürümlerinde Pi varsayılan olarak kurulur.

Adım 1: Darbe Genişliği Modülasyonu

Darbe Genişliği Modülasyonu
Darbe Genişliği Modülasyonu
Darbe Genişliği Modülasyonu
Darbe Genişliği Modülasyonu
Darbe Genişliği Modülasyonu
Darbe Genişliği Modülasyonu

LED'ler, parlaklıktan bağımsız olarak her zaman aynı voltajda çalışır. Parlaklık bir kare dalga osilatörü tarafından belirlenir ve voltajın yüksek olduğu süre parlaklığı belirler. Buna Darbe Genişliği Modülasyonu (PWM) denir. Bu, n'nin 0 ila 255 arasında bir değere sahip olduğu kablolamaPi pwmWrite(pin, n) işlevi tarafından kontrol edilir. n=2 ise LED, n=1'den iki kat daha parlak olacaktır. n iki katına çıktığında parlaklık her zaman iki katına çıkar. Yani n=255, n=128'in iki katı parlak olacaktır.

n'nin değeri genellikle görev döngüsü adı verilen bir yüzde olarak ifade edilir. Resimler, %25, 50 ve %75 görev çevrimleri için osiloskop izlerini göstermektedir.

Adım 2: LED ve Direnç

LED ve Direnç
LED ve Direnç

Bu gerekli değildir, ancak bunlardan birkaçının kullanışlı olması, breadboarding'i çok daha kolay hale getirebilir.

Bir LED'in kısa ledine bir direnç lehimleyin. 220-560 Ohm'luk bir direnç kullanın.

3. Adım: Eşit Olmayan Karartma

Dengesiz Karartma
Dengesiz Karartma

Devreyi şemadaki gibi kurunuz. Bu tıpkı bir LED'i yanıp sönen devre gibidir. PWM etkinleştirilmiş bir pin kullanmanız gerektiğinden kablolama Pi pin 1'i kullanır. Programı derleyin ve çalıştırın. LED ne kadar parlaksa o kadar yavaş karardığını fark edeceksiniz. En loşluğa yaklaştıkça çok hızlı kararır.

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

* Derleme: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * Yürütme: sudo./fade1 * * Aksi belirtilmedikçe tüm pin numaraları kablolamaPi numaralarıdır. ************************************************************ ****************/ #include int ana() { kablolamaPiSetup(); // Kablolama Pi pinMode (1, PWM_OUTPUT) tarafından gerekli kurulum; // pwmSetMode(PWM_MODE_MS); // İşaret/Boşluk modu int i; while(1) { for (i = 255; i > -1; i--) { pwmWrite(1, i); gecikme(10); } for (i = 0; i < 256; i++) { pwmWrite(1, i); gecikme(10); } } }

Bir sonraki adım, LED'in sabit bir oranda ve bir for ifadesi ile nasıl kısılacağını gösterir.

Adım 4: Adım 4: Yukarı ve Aşağı Bir For() ve Eşit Oranda

LED'in sabit bir oranda kararması için gecikmenin () üstel bir oranda artması gerekir, çünkü görev döngüsünün yarısı her zaman parlaklığın yarısını üretecektir.

Çizgi:

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

gecikmenin uzunluğunu belirlemek için parlaklığın ters karesini hesaplar. Bu programı derleyin ve çalıştırın, LED'in sabit bir oranda yanıp söneceğini göreceksiniz.

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

* Derleme: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * Yürütme: sudo./fade2 * * Aksi belirtilmedikçe tüm pin numaraları kablolamaPi numaralarıdır. ************************************************************ ****************/ #include int ana() { kablolamaPiSetup(); // Kablolama Pi pinMode (1, PWM_OUTPUT) tarafından gerekli kurulum; // pwmSetMode(PWM_MODE_MS); // Mark/Boşluk modu while(1) { int i; int x = 1; for (i = 0; ben > -1; ben = ben + x) { int d = (16-i/16)^2; // indeksin ters karesini hesapla pwmWrite(1, i); gecikme(d); eğer (i == 255) x = -1; // zirvede yön değiştir } } }

Önerilen: