هر دو ماژول ESP8266-12E و ESP8266-07 یک پین ADC دارند که به راحتی قابل دسترسی است. این بدان معناست که آن بردهای ESP8266 می توانند سیگنال های آنالوگ را بخوانند. در این آموزش نحوه راه اندازی ADC در ESP8266 با استفاده از زبان های برنامه نویسی Arduino IDE، MicroPython یا Lua را به شما نشان خواهیم داد.

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

به عنوان مثال، نحوه خواندن مقادیر آنالوگ را از پتانسیومتر به شما نشان خواهیم داد. این پست در سه بخش تقسیم شده است:

  • خواندن مقادیر ADC ماژول ESP8266 در arduino ide
  • خواندن مقادیر ADC ماژول ESP8266 در MicroPython
  • خواندن مقادیر ADC ماژول ESP8266 در Lua/NodeMCU

هنگامی که به دنبال پین ADC ماژول ESP8266 میگردید ممکن است با واژه های زیر برخورد کنید:

  • ADC (Analog-to-digital Converter)
  • TOUT
  • Pin6
  • A0
  • Analog Pin 0

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

پین ADC دارای وضوح 10 بیتی است، به این معنی که مقادیری بین 0 تا 1023 دریافت خواهید کرد.

محدوده ولتاژ ورودی پین ADC ماژول ESP8266 بین 0 تا 1 ولت است اگر از تراشه تکی استفاده می کنید. با این حال، اکثر بردهای توسعه ESP8266 دارای یک تقسیم کننده ولتاژ داخلی هستند، بنابراین محدوده ورودی 0 تا 3.3 ولت است. بنابراین، به طور خلاصه:

  • محدوده ولتاژ ADC در بردهای توسعه : 0 تا 3.3 ولت (به عنوان مثال: ESP8266 12-E NodeMCU Kit، WeMos D1 Mini، …)
  • محدوده ولتاژ ADC در تراشه : 0 تا 1 ولت (به عنوان مثال: تراشه ESP-07، تراشه ESP-12E، …)

با کیت ESP8266 12-E NodeMCU و سایر بردهای توسعه ESP8266، دسترسی به A0 بسیار آسان است، فقط لازم است یک سیم جامپر را به پین وصل کنید (شکل زیر را ببینید).

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

اگر از یک تراشه ESP8266 مانند ESP8266-07 استفاده می کنید، باید یک سیم را به آن پین لحیم کنید.

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

برای اینکه نحوه استفاده از adc با ESP8266 را به شما نشان دهیم، مقادیر آنالوگ را از یک پتانسیومتر می خوانیم. برای این کار، باید یک پتانسیومتر به برد خود وصل کنید.

سخت افزاری که برای تکمیل این آموزش نیاز دارید در اینجا آمده است:

  • برد توسعه ماژول ESP8266 (توصیه میشود جهت راه اندازی ساده تر حتما از برهای توسعه استفاده کنید)
  • تراشه تکی ESP8266 (در صورت عدم استفاده از برد توسعه)
  • مقاومت های 100 و 200 اهم (در صورت استفاده از تراشه تکی)
  • پتانسیومتر 1 کیلو
  • بردبورد
  • سیم های جامپر

در صورتی که از برد توسعه استفاده میکنید شماتیک زیر را پیاده سازی کنید

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

اگر از تراشه ESP8266 با محدوده ولتاژ ورودی 0 تا 1 ولت استفاده می کنید، باید مطمئن شوید که ولتاژ ورودی در پایه A0 از 1 ولت تجاوز نکند. بنابراین، همانطور که در زیر نشان داده شده است، به یک مدار تقسیم کننده ولتاژ نیاز دارید.

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

جهت اطلاعات بیشتر این مقاله را میتوانید مطالعه نمایید: راهنمای جامع پین های ESP8266 (کدام پین ها را میتوانیم استفاده کنیم؟)

این بخش نحوه خواندن مقادیر آنالوگ با ESP8266 را با استفاده از Arduino IDE نشان می دهد.

برای آپلود کد در ESP8266، ابتدا باید بردهای ESP8266 را نصب کنید، البته اگر قبلاً این کار را نکرده اید. میتوانید دستور العمل های این آموزش را دنبال کنید: نصب بردهای ESP8266 در آردوینو IDE (ویندوز – مک – لینوکس)

کد زیر را در آردوینو IDE خود کپی کنید.

/*********
  Rui Santos
  Complete project details at https://randomnerdtutorials.com  
*********/

const int analogInPin = A0;  // ESP8266 Analog Pin ADC0 = A0

int sensorValue = 0;  // value read from the pot

void setup() {
  // initialize serial communication at 115200
  Serial.begin(115200);
}

void loop() {
  // read the analog in value
  sensorValue = analogRead(analogInPin);
 
  // print the readings in the Serial Monitor
  Serial.print("sensor = ");
  Serial.print(sensorValue);
  
  delay(1000);
}

کد قبلی را در ESP8266 آپلود کنید. مطمئن شوید که برد مناسب و پورت COM را انتخاب کرده اید. به Tools> Board بروید و مدل ESP8266 مورد استفاده خود را انتخاب کنید. در مورد ما، ما از کیت ESP8266 12-E NodeMCU استفاده می کنیم.

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

به Tools > Port بروید و پورت COM که ESP8266 به آن متصل است را انتخاب کنید.

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

دکمه آپلود Arduino IDE را فشار دهید.

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

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

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

این بخش نحوه خواندن مقادیر آنالوگ با ESP8266 را با استفاده از MicroPython نشان می دهد.

برای دنبال کردن این آموزش، باید فریمور MicroPython را در برد ESP8266 خود نصب کنید. همچنین برای نوشتن و آپلود کد در برد خود به یک IDE نیاز دارید. پیشنهاد می کنیم از Thonny IDE یا uPyCraft IDE استفاده کنید:

اسکریپت زیر مقادیر آنالوگ ESP8266 را از پین A0 می خواند.

# Complete project details at https://RandomNerdTutorials.com

from machine import Pin, ADC
from time import sleep

pot = ADC(0)

while True:
  pot_value = pot.read()
  print(pot_value)
  sleep(0.1)

پس از آپلود کد روی برد ESP8266 با استفاده از Thonny IDE یا uPyCraft IDE، پتانسیومتر را بچرخانید.

برای خواندن مقادیر از پتانسیومتر، قسمت SHELL در MicroPython IDE خود را بررسی کنید.

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

این بخش نحوه استفاده از فریمور NodeMCU برای خواندن مقادیر آنالوگ با ESP8266 را نشان می دهد.

ابتدا باید ESP را با فریمور NodeMCU فلش کنید.

توصیه می کنم از ESPlorer IDE برای ارسال کامندها استفاده کنید .

برای ارسال دستورات با ESPlorer IDE، باید یک ارتباط سریالی با ESP خود برقرار کنید، این دستورالعمل ها را دنبال کنید:

  • پروگرامر ESP-12E یا FTDI خود را به رایانه خود وصل کنید
  • نرخ باود را روی 9600 تنظیم کنید
  • پورت پروگرامر ESP-12E یا FTDI خود را انتخاب کنید (برای مثال COM3)
  • Open/Close را فشار دهید
خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

سپس دستور زیر را تایپ کنید:

print(adc.read(0))

مطابق شکل زیر روی دکمه «ارسال» کلیک کنید.

خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

باید مقداری بین 0 و 1024 برگرداند. پتانسیومتر خود را بچرخانید و دستور print(adc.read(0)) را چند بار دیگر ارسال کنید تا مقدار پتانسیومتر را بدست آورید.

هنگامی که پتانسیومتر شما نزدیک به 0 ولت است، 0 را چاپ می کند و زمانی که به 3.3 ولت می رسد باید 1024 را چاپ کند.

در این آموزش نحوه خواندن مقادیر آنالوگ با استفاده از پین آنالوگ ESP8266 (A0) در محیط های آردوینو، میکرو پایتون و LUA NODE MCU را به شما نشان داده ایم. نکته مهمی که باید به آن توجه کنید این است که محدوده ورودی آنالوگ ESP8266 اگر از یک تراشه به تنهایی استفاده می کنید 0-1 ولت است یا اگر از برد توسعه استفاده می کنید 0-3.3 ولت است.

در هر صورت، همیشه باید مراقب باشید که از حداکثر ولتاژ توصیه شده تجاوز نکنید. هنگامی که به محدوده ولتاژ ورودی بالاتری نیاز دارید، می توانید یک مدار تقسیم کننده ولتاژ اضافه کنید.

منبع: https://randomnerdtutorials.com/esp8266-adc-reading-analog-values-with-nodemcu/

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]

1 دیدگاه در “خواندن مقادیر آنالوگ ADC ESP8266 در Arduino IDE ،MicroPython و Lua node mcu

  1. سعیدپور گفت:

    سلام
    واقعا خسته نباشید عالی بود
    لطفا مرا راهنمایی کنید یک مدار ممتاژ کردم با مگا۳۲ خروجی مگا رو میخوام با ماژول وای فای بفرستم به گوشی اندرویدی چه پیشنهادی برام دارید ممنونم

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *