تبلیغات

مترجم سایت

Elctrical-Control-Engineering - مقدار یک پتانسیومتر را خوانده و وضعیت آن را به عنوان خروجی در Serial Monitor نرم افزار چاپ کنید.
 
Elctrical-Control-Engineering
درباره وبلاگ


The department’s research activities encompass several broad areas, reflecting the multi-disciplinary nature of the control and mechatronics field. These include:


• Smart sensors and actuators
• Process tomography
• Intelligent machines
• Advanced and intelligent control algorithms
• Process control and its advancements
• Real-time control system
• Robot design and intelligent robot controllers
• Modeling and control of mechatronic systems
• Industrial automations
• Nanotechnology-based mechatronics and robotics

مدیر وبلاگ :
نویسندگان
آمار وبلاگ
  • کل بازدید :
  • بازدید امروز :
  • بازدید دیروز :
  • بازدید این ماه :
  • بازدید ماه قبل :
  • تعداد نویسندگان :
  • تعداد کل پست ها :
  • آخرین بازدید :
  • آخرین بروز رسانی :

Analog Read Serial

این مثال به شما نشان می دهد که چطور با استفاده از پتانسیومتر، ورودی آنالوگ را از محیط فیزیکی بخوانید. پتانسیومتر یک وسیله مکانیکی ساده است که زمانی که محور آن می چرخد، مقدارهای مختلف مقاومت را ایجاد می کند. با عبور ولتاژ از میان پتانسیومتر و به سمت ورودی آنالوگ از روی برد آردوینو، می توانید مقدار مقاومت تولید شده توسط پتانسیومتر را به عنوان یک مقدار آنالوگ اندازه گیری کنید. در این مثال شما می توانید وضعیت پتانسیومترتان را بعد از برقرار کردن ارتباط سریال بین برد آردوینو و کامپیوتر کنترل کنید.

سخت افزار مورد نیاز

  • برد آردوینو
  • پتانسیومتر 10 کیلو اهمی

مدار

3 عدد سیم را از پتانسیومتر به برد آردوینو وصل کنید. اولین سیم، از یکی از پین های خارجی پتانسیومتر به زمین، دومی از 5 ولت به یکی از پین های خارجی دیگر پتانسیومتر و سومی از ورودی صفر آنالوگ به پین وسطی پتانسیومتر می رود.

برای بزرگ شدن تصویر روی آن کلیک کنید.

این تصویر با استفاده از نرم افرار Fritzingایجاد شده است. برای مثال های بیشتر مدار به صفحه پروژه های Fritzing مراجعه کنید.

شما با چرخاندن محور پتانسیومتر، مقدار مقاومت روی یک طرف wiper را که به پین مرکزی پتانسیومتر وصل شده است، تغییر می دهید. این عمل، ولتاژ پین مرکزی را تغییر می دهد. زمانی که مقاومت بین مرکز و کناره ای که به 5 ولت متصل است به صفر نزدیک می شود (و مقاومت سمت دیگر به 10 کیلو اهم نزدیک می شود) ولتاژ در پین مرکزی به 5 ولت نزدیک می شود. زمانی که مقاومت معکوس می شود، ولتاژدر پین مرکزی به سمت صفر ولت یا زمین می رود. این ولتاژی که شما به عنوان ورودی می خوانید، آنالوگ است.

آردوینو یک مدار داخلی به نام analog-to-digital converter دارد که ولتاژ متغیر را می خواند و آن را به عددی بین 0 تا 1023 تبدیل می کند. زمانی که محور در یک جهت می چرخد، ولتاژ صفر به سمت پین می رود و مقدار ورودی، صفر می شود. زمانی که محور به سمت مخالف می چرخد، ولتاژ پنج به سمت پین می رود و مقدار ورودی 1023 می شود. در این بین analogRead() یک عدد بین صفر تا 1023 را بر می گرداند که با مقدار ولتاژ اعمال شده روی پین متناسب است.

شماتیک

برای بزرگ شدن تصویر اینجا را کلیک کنید.

کد

در کد زیر، تنها کاری که شما باید در تابع setup انجام دهید، شروع ارتباط سریال، با سرعت 9600 بیت داده بر هر ثانیه، بین برد آردوینو و کامپیوتر می باشد. این عمل توسط دستور زیر انجام می شود:

Serial.begin(9600);

بعد در تابع Loop() برنامه، لازم است متغیری را برای ذخیره مقدار مقاومتی که از پتانسیومتر می آید (و عددی بین صفر تا 1023 می باشد و محدوده ای مناسب برای نوع int خواهد بود)، تعریف کنید.

int sensorValue = analogRead(A0);

در انتها، لازم است که این اطلاعات را روی پنجره سریالتان به عنوان مقدار دهدهی (DEC) چاپ کنید. شما می توانید این کار را با دستور Serial.println() در آخرین خط کدتان انجام دهید:

Serial.println(sensorValue, DEC)

اکنون، وقتی Serial Monitor را (با مستقیم کلیک کردن روی دکمه ای که سمت راست دکمه آپلود در بالای برنامه است)، در محیط برنامه نویسی آردوینو باز می کنید، باید رشته ای ثابت از اعداد را در محدوده ی 1023 - 0 بینید، این اعداد مرتبط با موقعیت پتانسیومتر هستند. هنگامی که شما پتانسیومترتان را می چرخانید، اعداد به سرعت تغییر می کنند.

/*
  AnalogReadSerial
  Reads an analog input on pin 0, prints the result to the serial monitor.
  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.
 */


// 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);
  // print out the value you read:
  Serial.println(sensorValue);
  delay(1);        // delay in between reads for stability
}





نوع مطلب :
برچسب ها :
لینک های مرتبط :

       نظرات
چهارشنبه 26 شهریور 1393
دوشنبه 16 مرداد 1396 01:11 ب.ظ
Thanks on your marvelous posting! I quite enjoyed reading it, you're a great author.I will be sure to bookmark your blog and definitely will come back down the
road. I want to encourage one to continue your great posts, have a nice day!
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر