Analogdan Dijitale Dönüştürme (Analog Okuma Seri) - Arduino Temelleri

Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin





Bu Arduino temellerinde, harici bir analog sinyalin Arduino analog girişine beslendiği ve karşılık gelen orantılı bir dijital okumaya çevrildiği veya dönüştürüldüğü kod uygulama prosedürünü anlamaya çalışıyoruz. Burada analog sinyal kaynağı olarak pot şeklinde değişken bir direnç kullanıyoruz.

Analog Seri Okuma

Bu örnekte, manuel işlem yoluyla bir devrede değişken bir direnç uygulamak için tasarlanmış n elektro-mekanik bir cihaz olan, potansiyometre gibi harici bir cihazdan bir analog girişi okuma yöntemini öğreniyoruz.



Bir potansiyometreden çıkan voltajın büyüklüğünü ölçmek için bir Arduino kullanılabilir ve buna karşılık gelen değişken direncini okumak ve tanımlamak için kullanılabilir. Bu, voltajı Arduino analog giriş portuna analog bir değer olarak besleyerek yapılabilir.

Burada Arduino ve bağlantılı bilgisayar arasında seri iletişim kurduktan sonra yukarıdakilerin nasıl uygulandığını göreceğiz.



Donanım Gerekli

Arduino Kurulu

10 kilohm Potansiyometre

Devre Çalışması

Yukarıdaki şemada gösterildiği gibi, pottan çıkan üç kabloyu Arduino bağlantı noktalarınıza bağlayın.

Potun dış uçlarından birinden gelen tel, tahtanın toprak veya negatif çizgisine atanır.

Diğer serbest aşırı dış uç ucu, kartın + 5V'una bağlanır.

Geriye kalan, potun merkez ucudur ve Arduino kartının analog girişine sonlandırılır.

Tencere şaftı döndürüldüğünde, sürgü kolunun hangi tarafa yaklaştığına bağlı olarak merkez uç ve dış terminal boyunca direnç yukarıdan aşağıya ve bunun tersi de geçerlidir.

Örneğin, kaydırma kolu + 5V ucuna doğru döndürüldüğünde, merkez uç 5V'a yaklaşır ve 5V ile atanan kurşuna dokunduğunda tüm değeri alma eğilimindedir. Benzer şekilde, kayar şaft toprak pota ucuna doğru hareket ettirildiğinde, merkez uç sıfır potansiyele ulaşma eğilimindedir.

Potun merkez ucu üzerindeki yukarıdaki doğrusal olarak değişen besleme voltajı, potun karşılık gelen değişken bir direncine yorumlanması için arduino analog girişi tarafından okunur.

Arduino, yukarıdaki pot hareketini etkili bir şekilde yorumlayan ve 0 ile 1023 arasındaki sayılara dönüştüren dahili bir analogdan dijitale dönüştürücü devresi içerir.

Pot şaftı üzerindeki belirli bir konum, 0 ile 1023 arasında bir orantılı sayının Arduino tarafından çevrilmesine neden olur ve 5V ve sıfır voltun son değerleri için yorumlar açıkça 0 ve 1023'tür.

Bahsedilen programda, kurulum işlevinin yalnızca seri iletişimleri başlatmak için tetiklenmesi gerekir; hız, Arduino kartınız ve bilgisayar genelinde saniyede 9600 bit veri şeklindedir.

Beklenen komut şu şekildedir:

Serial.begin (9600)

Ardından, kodunuzun ana döngüsünde, pot lead'lerinden alınan direnç değerini (0 ile 1023 arasında tartışıldığı gibi, sadece int veri türü için uygundur) sabitlemek için bir değişken uygularız:

int sensorValue = analogRead (A0)

Sonuç olarak, bu bilgiyi seri pencerenize ondalık (DEC) değer olarak yazdırın. Bunu son kod satırına uygulamak için Serial.println () komutunu kullanabilirsiniz:

Serial.println (sensorValue, DEC)

Bundan sonra, Arduino geliştirme alanında Seri Monitör her başlatıldığında (bu, programın başlığındaki 'Yükle' düğmesinin hemen sağ tarafında bulunan düğmeye tıklanarak yapılır).

çanak şaftının değişen dönüş konumuna karşılık gelen, 0-1023 arasında değişen tutarlı bir rakamlar zinciri görürüz.

Pot şaftının dönüşünü bir anda durdurursak, karşılık gelen anlık sayı Arduino'nun ekranında görüntülenecek, bu da pot şaft konumunu değiştirmeye devam ettikçe yine orantılı olarak değişecektir.

Kod

/ *
AnalogReadSerial
Pin 0'daki bir analog girişi okur, sonucu seri monitöre yazdırır.
Potansiyometrenin merkez pimini A0 pimine ve dış pimleri + 5V ve toprağa takın.

Bu örnek kod kamu malıdır.
* /

// sıfırlama düğmesine bastığınızda kurulum rutini bir kez çalışır:
geçersiz kurulum () {
// saniyede 9600 bitte seri iletişimi başlat:
Serial.begin (9600)
}

// döngü rutini sonsuza kadar tekrar tekrar çalışır:
geçersiz döngü () {
// analog pin 0'daki girişi oku:
int sensorValue = analogRead (A0)
// okuduğunuz değeri yazdırın:
Serial.println (sensorValue)
gecikme (1) // kararlılık için okumalar arasında gecikme
}




Önceki: Bir Anahtarın Durumunu İzleme (Dijital Okuma Seri) - Arduino Temelleri Sonraki: 1.25V ila 120V Şebeke Ayarlanabilir Voltaj Regülatörü Devresi