در این راهنما نحوه راه اندازی ورودی خروجی های دیجیتال esp8266 را یاد خواهیم گرفت که چگونه ورودی های دیجیتال را مانند کلید بخوانید و خروجی های دیجیتال مانند LED را با استفاده از برد ESP8266 NodeMCU با Arduino IDE کنترل کنید.

ورودی‌ها و خروجی‌های دیجیتال ESP8266

پیش نیازها

ما ESP8266 را با استفاده از Arduino IDE برنامه ریزی می کنیم. بنابراین، قبل از ادامه، مطمئن شوید که افزونه بردهای ESP8266 را روی آردوینو نصب کرده اید که در پست زیر توضیح داده شده:

نصب بردهای ESP8266 در آردوینو IDE (ویندوز – مک – لینوکس)

کنترل خروجی های ESP8266

ابتدا باید GPIO را که می خواهید کنترل کنید به عنوان یک OUTPUT تنظیم کنید. از تابع pinMode() به صورت زیر استفاده کنید:

pinMode(GPIO, OUTPUT);

برای کنترل یک خروجی دیجیتال باید از تابع digitalWrite() استفاده کنید که به عنوان آرگومان، GPIO (عدد int) مورد نظر شما و وضعیت، HIGH یا LOW را می پذیرد.

digitalWrite(GPIO, STATE);

همچنین میتوانید نگاهی به راهنمای جامع پین های ESP8266 (کدام پین ها را میتوانیم استفاده کنیم؟) بیندازید تا بدانید کدام GPIO برای استفاده به عنوان خروجی مناسب تر است.

خواندن ورودی های ESP8266

ابتدا با استفاده از تابع pinMode() آن GPIO را که می خواهید بخوانید به صورت INPUT تنظیم کنید:

;pinMode(GPIO, INPUT)

 

برای خواندن یک ورودی دیجیتال، مانند یک دکمه، از تابع digitalRead() استفاده می کنید که GPIO (عدد int) مورد نظر شما را به عنوان آرگومان می پذیرد.

digitalRead(GPIO);

همچنین میتوانید نگاهی به راهنمای جامع پین های ESP8266 (کدام پین ها را میتوانیم استفاده کنیم؟) بیندازید تا بدانید کدام GPIO برای استفاده به عنوان خروجی مناسب تر است.

نمونه پروژه

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

ورودی‌ها و خروجی‌های دیجیتال ESP8266

شماتیک

قبل از ادامه، باید یک مدار را با یک LED و یک دکمه فشاری جمع کنید. ما LED را به GPIO 5 (D1) و دکمه فشاری را به GPIO 4 (D2) وصل می کنیم.

قطعات مورد نیاز

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

  • ESP8266
  • LED 5 میلی متر
  • مقاومت 330 اهم
  • دکمه فشاری
  • مقاومت 10 کیلو اهم
  • بردبورد
  • سیم های جامپر
ورودی‌ها و خروجی‌های دیجیتال ESP8266

کد تست

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

// set pin numbers
const int buttonPin = 4;     // the number of the pushbutton pin
const int ledPin =  5;       // the number of the LED pin

// variable for storing the pushbutton status
int buttonState = 0;

void setup() {
  // initialize the pushbutton pin as an input
  pinMode(buttonPin, INPUT);
  // initialize the LED pin as an output
  pinMode(ledPin, OUTPUT);
}

void loop() {
  // read the state of the pushbutton value
  buttonState = digitalRead(buttonPin);
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH
  if (buttonState == HIGH) {
    // turn LED on
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off
    digitalWrite(ledPin, LOW);
  }
}

نحوه کار کد

در دو خط زیر، متغیرهایی را برای اختصاص پین ایجاد می کنید:

const int buttonPin = 4; 
const int ledPin = 5;

دکمه به GPIO 4 و LED به GPIO 5 وصل می شود.

سپس، یک متغیر برای نگه داشتن حالت دکمه ایجاد می کنید. به طور پیش فرض، 0 است (فشرده نشده).

int buttonState = 0;

در setup()، دکمه را به عنوان INPUT و LED را به عنوان OUTPUT مقداردهی می کنید. برای اینکار، از تابع pinMode() استفاده می‌کنید که پین مورد نظر را می‌پذیرد و حالت: INPUT یا OUTPUT را به عنوان ورودی دوم دریافت میکند.

pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);

در حلقه اصلی loop() جایی است که وضعیت دکمه را می خوانید و LED را مطابق با آن تنظیم می کنید.

در خط بعدی وضعیت دکمه را می خوانید و آن را در متغیر buttonState ذخیره می کنید. همانطور که قبلا دیدیم، برای اینکار از تابع digitalRead() استفاده می کنیم.

buttonState = digitalRead(buttonPin);

دستور if پایین، high بودن وضعیت دکمه را بررسی می کند. اگر اینطور باشد، LED را با استفاده از تابع digitalWrite() روشن می کند که ledPin و حالت HIGH را به عنوان آرگومان می پذیرد.

if (buttonState == HIGH) {
digitalWrite(ledPin, HIGH);
}

اگر وضعیت دکمه HIGH نباشد، LED را خاموش می کنید. فقط LOW را به عنوان آرگومان دوم در تابع digitalWrite() تنظیم کنید.

else {
digitalWrite(ledPin, LOW);
}

آپلود کد

قبل از کلیک بر روی دکمه آپلود، به Tools > Board بروید و برد مورد استفاده خود را انتخاب کنید. در مورد من، NodeMCU 1.0 (ESP-12 E Module) است. اگر مدل ESP8266 خود را نمی‌شناسید، می‌توانید «Generic ESP8266 Module» را انتخاب کنید.

به Tools > Port بروید و پورت COM که ESP8266 به آن متصل است را انتخاب کنید. سپس، دکمه آپلود را فشار دهید و منتظر پیام “Done uploading” باشید.

نتیجه

پس از آپلود کد، مدار خود را تست کنید. هنگامی که دکمه را فشار می دهید LED شما باید روشن شود:

ورودی‌ها و خروجی‌های دیجیتال ESP8266

و وقتی دکمه را رها کردید LED خاموش شود

ورودی‌ها و خروجی‌های دیجیتال ESP8266

جمع بندی

با این راهنمای شروع، یاد گرفتید که چگونه ورودی های دیجیتال را بخوانید و خروجی های دیجیتال را با ESP8266 با استفاده از Arduino IDE کنترل کنید.

همچنین برای اطلاعات بیشتر میتوانید میتوانید پست های زیر را مطالعه نمایید:

شروع کار با ماژول ESP8266 (معرفی)

راه اندازی سنسور DS18B20 با ESP8266 در حالت تکی ، چندتایی و وب سرور (اینترنت اشیا)

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

نوشته های مشابه

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

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