تبلیغات
مطالب اینترنتی - چطور از یک پین آنالوگ برای چند ورودی آنالوگ استفاده کنیم؟
درباره وبلاگ


مدیر وبلاگ : نویسنده
نویسندگان
جستجو

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


تصور کنید می خواهید با برد Nodemcu که فقط یک پین آنالوگ DC دارد، یک ایستگاه هواشناسی بسازید. برای ساخت چنین دستگاهی باید مقادیر چند سنسور آنالوگ از جمله سنسور رطوبت، دما و شدت نور را بخوانید. اما بردی که انتخاب کرده اید این امکان را ندارد. در چنین شرایطی می توانید سنسورها را مولتی پلکس (multiplex) کنید؛ به عبارت دیگر از یک پین آنالوگ برای خواندن چند ورودی آنالوگ استفاده کنید. در این ساختنی این راهکار مفید را به شما یاد می دهیم.

 

روش تسهیم یا مولتی پلکس سنسورها اینطور عمل می کند: سنسور A را روشن می کنید و مقدار آن را می خوانید؛ سپس سنسور A را خاموش می کنید و همین کار را برای سنسور B تکرار می کنید. با این روش می توانید مقادیر همه سنسورها را با تنها پین آنالوگی که دارید، بخوانید و از آنها برای ارتقای پروژه استفاده کنید. روشی که در ادامه یاد می گیرید برای هر نوع برد توسعه ای که یک پین آنالوگ داشته باشد، جواب می دهد.

گام اول: وسایل مورد نیاز

  • دو عدد پتانسیومتر ۱۰K
  • دو عدد دیود
  • مقاومت ۱۰K
  • برد آردوینو
  • برد بورد
  • کمی سیم

گام دوم: سیم کشی

ابتدا اتصالات را طبق دیاگرام بالا و الگوهای زیر ایجاد کنید:

  1. یکی از پین های کناری هر پتانسیومتر را به زمین وصل کنید.
  2. پین کناری دیگر پتانسیومتر A را به پین ۱۰ آردوینو وصل کنید.
  3. پین کناری دیگر پتانسیومتر B را به پین ۱۱ آردوینو وصل کنید.
  4. پین های وسطی هر دو پتامسیومتر را با یک دیود به پین آنالوگ ۰ وصل کنید.
  5. یک مقاومت پول داون ۱۰K بین GND و پین آنالوگ ۰ قرار بدهید.

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

گام سوم: کدها را آپلود کنید

برای استفاده از روش مولتی پلکس، باید هربار فقط سنسور یک مدار کامل باشد. با تنظیم پین GPIO 10 روی HIGH، جریان ۵ ولتی را به سنسور A می فرستیم و مدار را کامل می کنیم. پین دیگر (GPIO11) روی LOW تنظیم می شود و در نتیجه سنسور B خاموش می ماند.

برنامه آردوینو مقادیر هر دو سنسور را می خواند و یک مقدار بین ۰ تا ۱۰۲۳ را در سریال مانیتور پرینت می کند. با کلید ترکیبی CNTRL+M می توانید سریال مانیتور را در نرم افزار IDE باز کنید.

همانطور که در تصویر بالا می بینید پتانسیومتر A کاملا باز است در حالیکه پنانسیومتر دوم بسته است. بعد از اینکه پتانسیومتر A به آرامی بسته شد و هر دو مقدار به صفر نزدیک شدند، پتانسیومتر B کاملا باز می شود.

/*

 Multiple Analog inputs on one Analoge pin
 
 Show input of two sensors on one analog pin. 
 The vaues of both sensors will be displayed in the serial monitor.

 The circuit:
 * center pin of both Potentiometer/Sensors attached via a diode to analog input 0
 * one side pin (either one)of both potentiometers/sensors to ground
 * the other side of both potentiometers/sensors pin to +5V
 * pull-down resitor (10k) between analog pin 0 and ground


Created by Vincent Verheggen
Ingenerare

based on:
*example sketch analog input by David Cuartielles
*http://www.arduino.cc/en/Tutorial/AnalogInput
*sketch breagan 22 
*http://www.instructables.com/id/ESP8266-with-Multiple-Analog-Sensors/

 */

int sensorPin = A0;    // select the input pin for the potentiometer
int enable1 = 10;      // enable reading sensor A
int enable2 = 11;      // enable reading sensor B

int sensorValue1 = 0;  // variable to store the value coming from sensor A
int sensorValue2 = 0;  // variable to store the value coming from sensor B

void setup() 


Serial.begin(9600);
  // declare the enable and ledPin as an OUTPUT:
  pinMode(enable1, OUTPUT);
  pinMode(enable2, OUTPUT);


void loop() 
 // read the value from sensor A:
  digitalWrite(enable1, HIGH); 
  sensorValue1 = analogRead(sensorPin);
  Serial.println(sensorValue1);
  digitalWrite(enable1, LOW);

  delay(100);

  // read the value from sensor A:
  digitalWrite(enable2, HIGH); 
  sensorValue2 = analogRead(sensorPin);
   Serial.println(sensorValue2);
  digitalWrite(enable2, LOW);
   Serial.println("----------------------------------------");
  delay(1000);

اگر می خواهید کدها را با فرمت ino دانلود کنید، از لینک زیر استفاده کنید (رمز فایل saakhtani.ir است).

منبع

نوشته چطور از یک پین آنالوگ برای چند ورودی آنالوگ استفاده کنیم؟ – #کاردستی #علمی #خبر



لینک منبع

مطلب چطور از یک پین آنالوگ برای چند ورودی آنالوگ استفاده کنیم؟ در سایت مفیدستان.





نوع مطلب :
برچسب ها :
لینک های مرتبط :
 
لبخندناراحتچشمک
نیشخندبغلسوال
قلبخجالتزبان
ماچتعجبعصبانی
عینکشیطانگریه
خندهقهقههخداحافظ
سبزقهرهورا
دستگلتفکر