Analog giriş ve çıkış komutları: analogRead(), analogWrite() (Arduino Programlama, 6) Featured

Rate this item
(1 Vote)

Analog sinyaller var, yok şeklinde olan sinyaller değildir. Belirli bir sınır aralığı içindeki tüm değerleri alabilir. Yani ışığın sadece açık veya kapalı olması durumlarını değil, ışığın şiddetini ayrıntılı bir şekilde kontrol edebileceğimiz sinyallerdir. Bazı evlerde ışığın şiddetini ayarlayan anahtarlar bulunmaktadır. Arduino’da (uno modeli için) analog pinler A0 ile A5 arasında numaranmış pinlerdir. Analog pinler 10 bitlik analog dijital çeviriciye sahip olduğu için analog pinler 0-1023 arasında değer alabilmektedir. 

analogRead:

Analog pinden değeri okur.
Kullanımı:  analogRead(pin);

analogRead(A0);

 

analogWrite:

Analog değer yazmak için PWM pinleri kullanılır. PWM pinleri arduino da “ ~ ” işareti ile gösterilmektedir. 3,5,6,9,10,11 numaralı pinler Arduino Uno için PWM pinleridir. Örneğin bir motoru yavaş veya hızlı sürmek için PWM pinleri kullanılabilir. Işık şiddetini ayarlamak için de.

Kullanımı:  analogWrite(pin, value);

analogWrite(3, 200);  //3 numaralı pwm pinine 0-255 arasında değer gönderilir.

Not: Örneğin bir potansiyemetre ile ışığın şiddetini ayarlamak istiyorsak dikkat etmemiz gereken bir nokta var. Potansiyemetre ile analog değer alacağız ve bu değer 10 bitlik bir değer yani 0-1023 arasında. Bunu bir lede veya motora gönderirken dijital pinlerin 8 bitlik olduğunu 0-255 arasında değer alabildiğini hatırlayarak. Aldığımız değeri 4 e bölerek göndermeliyiz.

Şimdi potansiyemetre kullanarak ledin parlaklığını artırıp azaltan bir program yazalım. Lütfen buraya dikkat edelim, yazalım dedim, kopyalamayın :)
Potansiyemetre ve ledin devresini görmek için Potansiyemetre ile Led Yakma örneğini inceleyebilirsiniz.

#define led 3
#define pot A0
void setup() {
Serial.begin(9600);
}
void loop() {
int deger = analogRead(pot);
deger=map(deger,0,1023,0,255);
Serial.println(deger);
delay(100);
analogWrite(led,deger);
}

Bu örneği yaptıysak ufak bir hareket katalım. Bu örneği sınıfta yaptıktan sonra öğrencilerimizden biri (Umut Kaan) "Ledin birinin parlaklığı artarken, diğerinin azalmasını nasıl yaparız?" şeklinde bir soru sordu. Ve bu soruyu tüm sınıfa yönelttik. Şimdi size soruyoruz iki ledli bir devre tasarlayıp Umut'un bu sorusuna cevap bulmaya çalışın.

İpucu: Ledin biri 200 şiddetinde yanarken, diğeri 55 şiddetinde yanacak, 
          Ledin biri 20 şiddetinde yanarken, diğeri 235 şiddetinde yanacak...

 

CTRL Bizde

Kendi halinde bir kaç kişiyiz,. Karşılaştığımız sorunları çözmek için bazen "çok zaman" harcadığımızı fark edip

devamı

Yeni Eklenenler