ReadAnalogVoltage

Analog Gerilimi Okuma

Bu örnek, analog pim 0'da bir analog girişin nasıl okunacağını, analogRead'den () değerlerin voltaja nasıl dönüştürüleceğini ve Arduino Yazılımının (IDE) seri monitörüne nasıl yazdırılacağını gösterir.

Gerekli Donanım

  • Arduino veya Genuino Kurulu
  • 10k ohm potansiyometre

Devre

Potansiyometreden üç kabloyu kartınıza bağlayın. Birincisi, potansiyometrenin dış pimlerinden birinden toprağa gider. İkincisi, potansiyometrenin diğer dış piminden 5 volta gider. Üçüncüsü, potansiyometrenin orta piminden analog giriş 0'a gider.

Potansiyometrenin şaftını çevirerek, potansiyometrenin orta pimine bağlı sileceğin her iki tarafındaki direnç miktarını değiştirirsiniz. Bu merkez pimdeki voltajı değiştirir. Merkez ve 5 volta bağlı taraf arasındaki direnç sıfıra yakın olduğunda (ve diğer taraftaki direnç 10 kilohms'ye yakınsa), merkez pimdeki voltaj 5 volta yakındır. Dirençler ters çevrildiğinde, merkez pimdeki voltaj 0 volt veya toprağa yakındır. Bu voltaj, giriş olarak okuduğunuz analog voltajdır .

Kartın mikro denetleyicisinin içinde, analogdan dijitale dönüştürücü veya ADC adı verilen ve bu değişen voltajı okuyan ve 0 ile 1023 arasında bir sayıya dönüştüren bir devre vardır. Mil bir yönde tamamen çevrildiğinde, 0 vardır volt pime gidecek ve giriş değeri 0 olacaktır. Mil ters yönde tamamen çevrildiğinde, pime 5 volt gidecek ve giriş değeri 1023 olacaktır. Arada analogRead () bir sayı döndürür 0 ile 1023 arasında, pime uygulanan voltaj miktarı ile orantılıdır.

Şematik

kod

Aşağıdaki programda, kurulum işlevinde yapacağınız ilk şey, panonuzla bilgisayarınız arasında hat ile seri iletişim, saniyede 9600 bit veriye başlamaktır:

Serial.begin(9600);

Ardından, kodunuzun ana döngüsünde, potansiyometrenizden gelen direnç değerini (0 ile 1023 arasında, int veri tipi için mükemmel) depolamak için bir değişken oluşturmanız gerekir:

int sensorValue = analogRead(A0);

Değerleri 0-1023'ten pimin okuduğu voltaja karşılık gelen bir aralığa değiştirmek için başka bir değişken, bir float oluşturmanız ve biraz matematik yapmanız gerekir. 1023.0 tarafından 0.0 ile 5.0, böl 5.0 arasındaki sayılar ölçek ve için çarpın o sensorValue tarafından:

float voltage= sensorValue * (5.0 / 1023.0);

Son olarak, bu bilgileri seri pencerenize yazdırmanız gerekir. Bunu, son kod satırınızdaki Serial.println () komutuyla yapabilirsiniz :

Serial.println(voltage)

Şimdi, Seri Monitörünüzü Arduino IDE'de açtığınızda (üstteki yeşil çubuğun sağ tarafındaki simgeye tıklayarak veya Ctrl + Shift + M tuşlarına basarak), 0.0 - 5.0 arasında sabit bir sayı akışı görmelisiniz. Tencereyi çevirdiğinizde, değerler A0 pinine gelen voltaja karşılık gelen değişecektir.


/*
  ReadAnalogVoltage

  Reads an analog input on pin 0, converts it to voltage, and prints the result to the Serial Monitor.
  Graphical representation is available using Serial Plotter (Tools > Serial Plotter menu).
  Attach the center pin of a potentiometer to pin A0, and the outside pins to +5V and ground.

  This example code is in the public domain.

  http://www.arduino.cc/en/Tutorial/ReadAnalogVoltage
*/

// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
}

// the loop routine runs over and over again forever:
void loop() {
  // read the input on analog pin 0:
  int sensorValue = analogRead(A0);
  // Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):
  float voltage = sensorValue * (5.0 / 1023.0);
  // print out the value you read:
  Serial.println(voltage);
}

Ayrıca bakınız