به نام خدا 

 برای این که یک ورودی آنالوگ رو به آردوینو دهیم میتونیم از یک پتانسیومتر استفاده کنیم . فرقی نمیکنه که پتانسیومتر چند کیلو اهم باشه . معمولا از 5 کیلو به بالا استفاده میکنیم. 

مدار رو مثل شماتیک زیر سیم بندی کنید . 

خب نوبت میرسه یه توضیح برنامه:

میخوایم یه برنامه ای رو بر روی برد آپلود کنیم تا با خواندن ورودی آنالوگ آشنا بشین

 /* Stage 5: Send Sensor Value to Serial Monitor
     Written by ScottC on 7/7/2012 */

  int sensorVal = 0;  

  void setup() {
 // Setup Serial communication with computer
    Serial.begin(9600);
  }

  void loop() {
 // Read the value from the sensor:
    sensorVal = analogRead(A0);
 
 // Send the value to the Serial Monitor
    Serial.print("Sensor Value=");
    Serial.println(sensorVal);

 // Interval between readings = 1 second
    delay(1000);                
  }

از همین برنامه یه نمونه دیگه میخوام بزارم که اسم گذاری هاش فرق میکنه ولی در عمل هر دو تا یکی اند . 

int potPin = 0;

void setup() 

{

  Serial.begin(9600);

}

void loop() 

{

  int reading  = analogRead(potPin);

  Serial.println(reading);

  delay(500);

}

 

 

هر دو برنامه بالا یکی اند . فقط میخواستم نشون بدم که شما میتونید برای پایه های آردوینو اسم دلخواه بزارین . مثلا برنامه اول برای پایه a0  اسم sensorval گذاشته و برنامه دوم اسم اون رو pot pin .

یک تفاوت دیگه هم دارن اینکه برنامه اول هر یک ثانیه یک ثانیه مقدار پتانسیومتر رو پرینت میکنه ولی دومی هر نیم ثانیه

دکمه سریال مانیتور هم در بالا سمت راست نرم افزار به شکل دره بین قرار داره که با زدن اون میتونید مقادیر رو ببینید.

نکته : اگه تو برنامه مقدار serial.begin هر عددی بود مراقب باشید که با سریال مانیتور یکی باشد. مثل شکل زیر

 

برنامه ی بالا رو روی برد خودتون آپلود کنید . 

این برنامه به این صورت کار میکنه که مقدار ولتاژ رو پتانسیومتر رو میخونه و اون رو از 0 تا 1023 روی سریال مانیتور آردوینو نشون میشه . شما میتونید با چرخوندن ولوم پتانسیومتر این مقدار رو به صورت لحظه ای روی سریال مانیتور ببینید . 

حالا ورودی آنالوگ به چه دردی میخوره؟ 

شما میتونید این مقدار رو برای زمان تاخیر چشمک زدن یک ال ای دی بزارید. اگه این کارو بکنید با چرخوندن ولوم پتانسیومتر زمان چشمک زدن ال ای دی کم و زیاد میشه 

اینم از برنامش

int sensorPin = A0; // select the input pin for the potentiometer int ledPin = 13; // select the pin for the LED int sensorValue = 0; // variable to store the value coming from the sensor void setup() { // declare the ledPin as an OUTPUT: pinMode(ledPin, OUTPUT); } void loop() { // read the value from the sensor: sensorValue = analogRead(sensorPin); // turn the ledPin on digitalWrite(ledPin, HIGH); // stop the program for <sensorValue> milliseconds: delay(sensorValue); // turn the ledPin off: digitalWrite(ledPin, LOW); // stop the program for for <sensorValue> milliseconds: delay(sensorValue); }

حالا برنامه بالا چی کار میکنه . همونجوری که گفتم مقدار پتانسیومتر رو میریزه توی تاخیر چشمک زدن ال ای دی . به همین راحتی .

و  برنامه بعدی : شما میتونید با ولوم پتانسیومتر سرعت یک موتور دی سی رو کنترل کنید که در آموزش بعدی برنامه ی اون رو قرار میدم.