آموزش راه اندازی برد توسعه ورودی-خروجی 16 کاناله MCP23017 با آردوینو

فهرست مطالب

ویژگی های برد توسعه ورودی-خروجی 16 کاناله MCP23017-E/SS

در پروژه‌هایی که به تعداد پایه­‌های ورودی خروجی زیادی نیاز است، استفاده از برد توسعه ورودی-خروجی 16 کاناله MCP23017-E/SS گزینه مناسبی است. این برد توسعه با پروتکل ارتباطی I2C به میکروکنترلر متصل شده و عملا تعداد پایه‌­های ورودی خروجی میکروکنترلر را زیاد می­‌کند. پایه­‌های این برد توسعه را می‌­توان به راحتی به عنوان ورودی، خروجی و وقفه تنظیم نمود.

معرفی پایه ها (Pinout) برد توسعه ورودی-خروجی 16 کاناله MCP23017-E/SS

برد توسعه ورودی-خروجی 16 کاناله MCP23017-E/SS دارای 27 پایه به شرح زیر است:

7 پایه در سمت بالای برد:

  • VCC: تغذیه ماژول –5 ولت
  • GND: زمین
  • SCLپایه کلاک برای پروتکل I2C
  • SDA: پایه دیتا برای پروتکل I2C
  • RST: پایه ریست
  • ITA: خروجی وقفه پورت A
  • ITB: خروجی وقفه پورت B

20 پایه در سمت راست برد:

  • VCC: تغذیه ماژول –5 ولت
  • GND: زمین
  • PB0-7: پایه‌­های پورت B
  • VCC: تغذیه ماژول –5 ولت
  • GND: زمین
  • PA0-7: پایه­‌های پورت A

پین اوت (Pinout) این ماژول را می‌توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

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

آردوینو UNO R3 × 1
برد توسعه ورودی-خروجی 16 کاناله MCP23017-E/SS دارای ارتباط I2C × 1
سیم جامپر × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی برد توسعه ورودی-خروجی 16 کاناله MCP23017-E/SS

گام اول: سیم بندی

مطابق مدار زیر، ماژول را به آردوینو وصل کنید.

گام دوم: نصب کتابخانه

به Library manager رفته و کتابخانه Adafruit_MCP23017 را نصب کنید.

گام سوم: کد

کد زیر را روی برد آردوینو آپلود کنید. پس از آپلود کد، پنجره Serial Plotter را باز کنید.

   /*
Modified on Dec 15, 2020
Modified by MehranMaleki from Arduino Examples
Home
*/ #include <Wire.h> #include "Adafruit_MCP23017.h" // Basic pin reading and pullup test for the MCP23017 I/O expander // public domain! // Connect pin #12 of the expander to Analog 5 (i2c clock) // Connect pin #13 of the expander to Analog 4 (i2c data) // Connect pins #15, 16 and 17 of the expander to ground (address selection) // Connect pin #9 of the expander to 5V (power) // Connect pin #10 of the expander to ground (common ground) // Connect pin #18 through a ~10kohm resistor to 5V (reset pin, active low) // Output #0 is on pin 21 so connect an LED or whatever from that to ground Adafruit_MCP23017 mcp; void setup() { mcp.begin(); // use default address 0 mcp.pinMode(0, OUTPUT); Serial.begin(9600); } // flip the pin #0 up and down void loop() { int x; mcp.digitalWrite(0, HIGH); x = mcp.digitalRead(0); int i; for(i = 0; i < 40; i++) { Serial.println(x); delay(50); } mcp.digitalWrite(0, LOW); x = mcp.digitalRead(0); for(i = 0; i < 40; i++) { Serial.println(x); delay(50); } }

در کد بالا، پایه PA0 (پایه صفر برد توسعه ورودی-خروجی) به عنوان خروجی تنظیم شده است و به طور متناوب High و Low می‌­شود. مقدار این پایه نیز بر روی Serial Plotter نمایش داده می­شود.

خروجی کد به شکل زیر است.

آموزش های مشابه

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

نشانی ایمیل شما منتشر نخواهد شد.