Eğitimler
AnalogInput
Bu örnekte bir değişken direnç (bir potansiyometre veya bir fotodirenç) kullanıyoruz, değerini bir Arduino veya Genuino kartının bir analog girişini kullanarak okuyoruz ve dahili LED'in yanıp sönme oranını buna göre değiştiriyoruz. Direncin analog değeri voltaj olarak okunur, çünkü analog girişler bu şekilde çalışır.
Gerekli Donanım
- Arduino veya Genuino Kurulu
- Potansiyometre veya
- 10K ohm fotodirenç ve 10K ohm direnç
- pim 13 üzerinde dahili LED veya
- 220 ohm direnç ve kırmızı LED
Devre
Bir potansiyometre ile büyütmek için resme tıklayın
Bir fotodirenç ile görüntüyü büyütmek için tıklayın
Üç kabloyu Arduino veya Genuino kartına bağlayın. Birincisi, potansiyometrenin dış pimlerinden birinden toprağa gider. İkincisi, 5 volttan potansiyometrenin diğer dış pimine gider. Üçüncüsü analog giriş 0'dan potansiyometrenin orta pinine gider.
Bu örnek için, kartın 13 numaralı pime takılı dahili LED'ini kullanmak mümkündür. Ek bir LED kullanmak için, daha uzun bacağını (pozitif bacak veya anot) 220 ohm direnç ile seri olarak 13 numaralı dijital pime, ve 13 no'lu pimin yanındaki toprak (GND) pimine daha kısa bacak (negatif bacak veya katot).
Bir fotorezistöre dayanan devre, yüksek emicili Analog girişinin voltajı ölçmesine izin vermek için bir direnç bölücü kullanır. Bu girişler hemen hemen hiç akım çekmez, bu nedenle Ohm yasası uyarınca, direncin değerine bakılmaksızın, 5V'a bağlı bir direncin diğer ucunda ölçülen voltaj her zaman 5V'dur. Fotodirenç değeri ile orantılı bir voltaj elde etmek için bir direnç bölücü gereklidir. Bu devre değişken bir direnç, sabit bir direnç kullanır ve ölçüm noktası dirençlerin ortasındadır. Ölçülen voltaj (Vout) şu formülü takip eder:
Vout = Vin * (R2 / (R1 + R2))
Vin, 5V, R2 10k ohm ve R1, karanlıkta 1M ohm'dan gün ışığında (10 lümen) 10k ohm'a ve parlak ışık veya güneş ışığında (> 100 lümen) 1k ohm'dan daha az olan fotodirenç değeridir.
Şematik
büyütmek için resme tıklayın
Potansiyometre
büyütmek için resme tıklayın
Fotodirenç
Kod
Bu kroki başında, değişken sensorPin
sizin potansiyometre takılı analog pin 0, için için ayarlanır ve ledPin
Ayrıca, başka bir değişken oluşturacağız dijital pim 13 olarak ayarlanır sensorValue
değerler sensörden okunan saklamak için .
analogRead()
komutu, 0 ila 5 volt arasındaki giriş voltaj aralığını 0 ile analogRead()
arasındaki bir dijital değere dönüştürür. Bu, mikrodenetleyicinin içindeki bir analogdan dijitale dönüştürücü veya ADC adı verilen bir devre tarafından yapılır.
Potansiyometrenin şaftını çevirerek, potansiyometrenin orta piminin (veya sileceğinin) her iki tarafındaki direnç miktarını değiştirirsiniz. Bu, merkez pim ile iki dış pim arasındaki bağıl dirençleri değiştirerek analog girişte size farklı bir voltaj verir. Şaft bir yöne tamamen çevrildiğinde, merkez pim ile toprağa bağlı pim arasında direnç yoktur. Bu durumda merkez analogRead()
voltaj 0 volttur ve analogRead()
0 analogRead()
döndürür. Mil diğer yöne tam olarak çevrildiğinde, merkez pim ile +5 volta bağlı pim arasında direnç yoktur. analogRead()
voltaj 5 volttur ve analogRead()
1023 analogRead()
döndürür. analogRead()
, pime uygulanan voltaj miktarıyla orantılı olarak 0 ile 1023 arasında bir sayı döndürür.
sensorValue
içinde saklanan bu değer, göz kırpma döngünüz için bir delay()
ayarlamak için kullanılır. Değer ne kadar yüksek olursa, döngü o kadar uzun, değer ne kadar küçükse, döngü o kadar kısa olur. Değer, döngünün başında okunur, bu nedenle açma / kapama süresi her zaman eşittir.
See Also
- pinMode()
- analogRead()
- digitalWrite()
- delay()
- AnalogInOutSerial- Bir analog giriş pinini okuyun, sonucu eşleyin ve ardından bir LED'i kısmak veya aydınlatmak için bu verileri kullanın.
- AnalogWriteMega- Arduino veya Genuino Mega kartı kullanarak 12 LED'i tek tek açıp kapatın.
- Calibration- Beklenen analog sensör değerleri için bir maksimum ve minimum tanımlayın.
- Fading- Bir LED'in solması için bir analog çıkış (PWM pin) kullanın.
- Smoothing- Bir analog girişin çoklu okumalarını düzgünleştirin.