مهندسی برق

اختراع برق باعث دگرگونی صنعت در ابعاد مختلف شد. برق یعنی زندگی

مهندسی برق

اختراع برق باعث دگرگونی صنعت در ابعاد مختلف شد. برق یعنی زندگی

مهندسی برق

با سلام

محمد حسین متانت دانش‌ آموخته رشته مهندسی برق هستم .در این وبلاگ اطلاعات مربوط به،مقالات،جزوات و کتاب ها و مطالب علمی مربوط به رشته برق ارائه می گردد.

هرگاه در پی چیزى هستى، بلند همت باش و آن‏گاه که چیره شدى، در پیروزى کریم باش.
حضرت علی (علیه السلام)

همراهان عزیز جهت خبر دار شدن از جدید ترین مطالب سایت،سایت را به دنبال داشته باشید.👇🏻

پیوندها

فهرست مطالب

  1. ویژگی های ماژول سنسور خازنی لمسی MPR121

  2. معرفی پایه ها (Pinout) ماژول سنسور خازنی لمسی MPR121

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

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

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

  4. راه اندازی ماژول سنسور خازنی لمسی MPR121 با آردوینو

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

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

    3. گام سوم: کد

ویژگی های ماژول سنسور خازنی لمسی MPR121

ماژول سنسور خازنی لمسی MPR121، یک سنسور تاچ با دقت بسیار بالا است. این ماژول دارای 12 کلید لمسی است و توسط پروتکل ارتباطی I2C به راحتی توسط هر میکروکنترلری قابل راه‌اندازی می‌باشد. بر روی این ماژول هیچ رگولاتوری وجود ندارد، پس لازم است که حتما ولتاژ تغذیه داده شده به ماژول در محدوده 1.7 تا 3.6 ولت باشد.

سنسور خازنی لمسی - سنسور تاچ MPR121

معرفی پایه ها (Pinout) ماژول سنسور خازنی لمسی MPR121

ماژول سنسور خازنی لمسی MPR121 دارای 18 پایه به شرح زیر است:

6 پایه در سمت چپ ماژول:

  • VCC: تغذیه ماژول –3.3 ولت
  • IRQ: خروجی وقفه
  • SCL: پایه کلاک برای پروتکل I2C
  • SDA: پایه دیتا برای پروتکل I2C
  • ADD: پایه تنظیم آدرس پروتکل I2C
  • GNDزمین

12 پایه در سمت راست ماژول:

  • 0-11: کلیدهای تاچ
نکته

آدرس I2C این ماژول در حالت پیش فرض 0x5A است و در صورت اتصال پایه ADD به VCC برابر 0x5B در صورت اتصال پایه ADD به SDA برابر 0x5C و در صورت اتصال پایه ADD به SCL برابر 0x5D خواهد بود.

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

پین اوت Pinout ماژول MPR121

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

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

آردوینو UNO R3 × 1  
ماژول سنسور خازنی لمسی - سنسور تاچ MPR121 × 1  
سیم جامپر × 1  

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

آردوینو IDE  

راه اندازی ماژول سنسور خازنی لمسی MPR121 با آردوینو

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

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

سیم بندی مدار اتصال MPR121 آدوینو

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

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

 

گام سوم: کد

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

   /*
  Modified on Jan 20, 2021
  Modified by MehranMaleki from Arduino Examples
  Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=6SCzCOyaf8" data-secret="6SCzCOyaf8" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
*/

#include <Wire.h>
#include "Adafruit_MPR121.h"

#ifndef _BV
#define _BV(bit) (1 << (bit))
#endif

// You can have up to 4 on one i2c bus but one is enough for testing!
Adafruit_MPR121 cap = Adafruit_MPR121();

// Keeps track of the last pins touched
// so, we know when buttons are 'released'
uint16_t lasttouched = 0;
uint16_t currtouched = 0;

void setup () {
  Serial.begin(9600);

  while (!Serial) { // needed to keep leonardo/micro from starting too fast!
    delay(10);
  }

  Serial.println("Adafruit MPR121 Capacitive Touch sensor test");

  // Default address is 0x5A, if tied to 3.3V its 0x5B
  // If tied to SDA its 0x5C and if SCL then 0x5D
  if (!cap.begin(0x5A)) {
    Serial.println("MPR121 not found, check wiring?");
    while (1);
  }
  Serial.println("MPR121 found!");
}

void loop() {
  // Get the currently touched pads
  currtouched = cap.touched();

  for (uint8_t i = 0; i < 12; i++) {
    // it if *is* touched and *wasnt* touched before, alert!
    if ((currtouched & _BV(i)) && !(lasttouched & _BV(i)) ) {
      Serial.print(i); Serial.print("  touched");
    }
    // if it *was* touched and now *isnt*, alert!
    if (!(currtouched & _BV(i)) && (lasttouched & _BV(i)) ) {
      Serial.println("         released");
    }
  }

  // reset our state
  lasttouched = currtouched;

  // comment out this line for detailed data from the sensor!
  return;

  // debugging info, what
  Serial.print("\t\t\t\t\t\t\t\t\t\t\t\t\t 0x"); Serial.println(cap.touched(), HEX);
  Serial.print("Filt: ");
  for (uint8_t i = 0; i < 12; i++) {
    Serial.print(cap.filteredData(i)); Serial.print("\t");
  }
  Serial.println();
  Serial.print("Base: ");
  for (uint8_t i = 0; i < 12; i++) {
    Serial.print(cap.baselineData(i)); Serial.print("\t");
  }
  Serial.println();

  // put a delay so it isn't overwhelming
  delay(1000);
}

 

کد بالا در ابتدا اتصال صحیح ماژول به آردوینو را چک می‌کند. سپس لمس شدن و آزاد شدن هر کدام از کلیدها را بر روی پنجره Serial Monitor نمایش می‌دهد.

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

موافقین ۱ مخالفین ۰ ۰۱/۰۲/۲۰
Mohammad hossein Metanat

متانت

محمد حسین متانت

نظرات  (۱)

عالی✌

پاسخ:
موفق باشید 

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی