ویژگی های سنسور مولتی تاچ Grove با رابط I2C
سیم های اتصالی به سنسورها شامل دو رنگ قرمز و مشکی هستند. اگر مایل هستید حساسیت سنسور اثر انگشت را افزایش دهید، میتوانید سیم مشکی را حذف کنید.
Note
سیم های اتصالی به سنسورها شامل دو رنگ قرمز و مشکی هستند. اگر مایل هستید حساسیت سنسور اثر انگشت را افزایش دهید، میتوانید سیم مشکی را حذف کنید.
دیتاشیت آی سی MPR121 را می توانید از اینجا دانلود کنید.
معرفی پایه های (Pinout) سنسور مولتی تاچ Grove با رابط I2C
سنسور مولتی تاچ Grove جمعا دارای 26 پایه است. 5 تا از آنها برای اتصال به میکروکنترلر و 21 عدد نیز برای ارتباط با سنسورهای اثر انگشت میباشد. کاربرد این 5 پایه به شرح زیر است:
- VCC: تغذیه ماژول – 3 تا 5.5 ولت
- GND: زمین
- SDA: رابط I2C
- SCL: رابط I2C
- INT: پین اینتراپت
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی سنسور مولتی تاچ Grove با رابط I2C با آردوینو
گام اول: سیم بندی
مطابق مدار زیر، سنسور را به آردوینو وصل کنید.
گام دوم: نصب کتابخانه
فایل و در قسمت Library محل نصب نرمافزار آردینو کپی کنید.
توجه
اگر برای نصب کتابخانه بر روی آردوینو نیاز به راهنمایی بیشتری دارید به اینجا مراجعه کنید.
گام سوم: کد
کد زیر را روی برد آردوینو آپلود کنید.
/*
I2C-Multi-Touch-Sensor-Grove
modified on 18 oct 2020
by Amir Mohammad Shojaee @ Electropeak
Home
Based on wiki.seeedstudio.com Example
*/
#include <Wire.h> // include I2C library
#include <i2c_touch_sensor.h>
#include <MPR121.h>
// include our Grove I2C touch sensor library
// initialize the Grove I2C touch sensor
i2ctouchsensor touchsensor; // keep track of 4 pads' states
//boolean padTouched[4];
long previousMillis = 0;
long interval = 100;
void setup()
{
Serial.begin(9600); // for debugging
Serial.print("begin to init");
Wire.begin(); // needed by the GroveMultiTouch lib
touchsensor.initialize(); // initialize the feelers // initialize the containers
}
void loop()
{
unsigned char MPR_Query=0;
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval)
{
previousMillis = currentMillis;
touchsensor.getTouchState();
}
for (int i=0;i<12;i++)
{
if (touchsensor.touched&(1<<i))
{
Serial.print("pin ");
Serial.print(i);
Serial.println(" was touched");
delay(100);
}
}
}
در برنامه از رابط I2C برای برقراری ارتباط با آردوینو استفاده شده است. در ضمن با لمس هر یک از حسگرها، در خروجی، شماره آن حسگر مشخص میشود. ما برای این نمونه از 4 عدد سنسور اثر انگشت به نام های 0 تا 3 استفاده کردهایم.
خروجی کد به شکل زیر است. سنسور 0 تا 3 را به ترتیب لمس میکنیم.