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...