AnalogInOutSerial

Bu örnek, bir analog giriş pininin nasıl okunacağını, sonucun 0 ila 255 arasında bir aralıkla nasıl eşleneceğini, bir LED'i kısmak veya aydınlatmak ve değerleri yazdırmak için bir çıkış piminin darbe genişliği modülasyonunu (PWM) ayarlamak için bu sonucu kullanın Arduino Yazılımının (IDE) seri monitörü.

Gerekli Donanım

  • Arduino veya Genuino Kurulu
  • Potansiyometre
  • Kırmızı LED
  • 220 ohm direnç

Devre

Tencerenizden bir pimi 5V'ye, orta pimi analog pim 0'a ve kalan pimi şasiye bağlayın. Ardından, bir seri LED ile dijital pim 9'a 220 ohm akım sınırlama direnci bağlayın. LED'in uzun, pozitif ayağı (anot), dirençten gelen çıkışa, daha kısa, negatif bacak (katot) toprağa bağlı olmalıdır.

Şematik

Kod

Aşağıdaki çizimde, iki pin ataması (potansiyometremiz için analog 0 ve outputValue için dijital 9) ve iki değişken ( sensorValue ve outputValue setup() sonra, setup() işlevinde yaptığınız tek şey seri iletişim başlatmaktır.

Ardından, ana döngüde, potansiyometreden okunan ham analog değerini saklamak için sensorValue atanır. analogRead 0 ila 1023 arasında bir analogWrite aralığı ve yalnızca 0 ila 255 arasında bir analogWrite aralığı vardır, bu nedenle potansiyometreden gelen verilerin LED'i karartmak için kullanmadan önce daha küçük aralığa sığacak şekilde dönüştürülmesi gerekir.

Bu değeri dönüştürmek için map () adında bir işlev kullanın:

outputValue = map(sensorValue, 0, 1023, 0, 255);

outputValue , potansiyometreden ölçeklenen değere eşit outputValue şekilde atanır. map() beş bağımsız değişkeni kabul eder: Eşlenecek değer, giriş verilerinin düşük aralık ve yüksek değerleri ile yeniden eşlenecek verilerin düşük ve yüksek değerleri. Bu durumda, sensör verileri orijinal aralığı 0 ila 1023 ila 0 ila 255 arasında eşlenir.

Daha sonra yeni eşlenen sensör verileri, potansiyometre döndürüldüğünde LED'in analogOutPin karartmasına veya parlaklığına gönderilir. Son olarak, hem ham hem de ölçeklenmiş sensör değerleri Arduino Software (IDE) seri monitör penceresine sabit bir veri akışında gönderilir.

/*
  Analog input, analog output, serial output

  Reads an analog input pin, maps the result to a range from 0 to 255 and uses
  the result to set the pulse width modulation (PWM) of an output pin.
  Also prints the results to the Serial Monitor.

  The circuit:
  - potentiometer connected to analog pin 0.
    Center pin of the potentiometer goes to the analog pin.
    side pins of the potentiometer go to +5V and ground
  - LED connected from digital pin 9 to ground

  created 29 Dec. 2008
  modified 9 Apr 2012
  by Tom Igoe

  This example code is in the public domain.

  http:egitim.aspx?e=AnalogInOutSerial
*/


// These constants won't change. They're used to give names to the pins used:
const int analogInPin = A0;  // Analog input pin that the potentiometer is attached to
const int analogOutPin = 9; // Analog output pin that the LED is attached to

int sensorValue = 0;        // value read from the pot
int outputValue = 0;        // value output to the PWM (analog out)

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
}

void loop() {
  // read the analog in value:
  sensorValue = analogRead(analogInPin);
  // map it to the range of the analog out:
  outputValue = map(sensorValue, 0, 1023, 0, 255);
  // change the analog out value:
  analogWrite(analogOutPin, outputValue);

  // print the results to the Serial Monitor:
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  Serial.print("\t output = ");
  Serial.println(outputValue);

  // wait 2 milliseconds before the next loop for the analog-to-digital
  // converter to settle after the last reading:
  delay(2);
}
[Kodu Al]

See Also

  • map()
  • analogRead()
  • analogWrite()
  • serial()

  • AnalogInput- Bir LED'in yanıp sönmesini kontrol etmek için bir potansiyometre 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.