Toggle Nav

آموزش راه اندازی ماژول کی‌پد 4 در 4 لمسی خازنی TTP229 با آردوینو

فهرست مطالب

ویژگی‌های ماژول کی‌پد 4 در 4 لمسی خازنی TTP229

کلیدها یک از پرکاربردترین المان‌ها در الکترونیک هستند. با استفاده از سوئیچ‌ها کاربر می‌تواند با سیستم ارتباط برقرار کند. در حالت عادی هر کلید یک پایه دیجیتال میکروکنترلر را اشغال می‌کند. اما وقتی از ماژول‌هایی مانند کی‌پد 4 در 4 استفاده کنیم، می‌توانیم پایه‌های اشغالی میکروکنترلر را کاهش دهیم. با استفاده از این ماژول می‌توانیم از 16 سوئیچ، با اشغال تنها 2 پایه میکروکنترلر استفاده کنیم. 
این ماژول دارای 16 کلید لمسی خازنی برمبنای آی‌سی TTP229 می‌باشد. پین‌های خروجی 1 تا 8 برای روشن و خاموش کردن کلیدهای 1 تا 8 به طور مستقیم می‌باشد. 2 پین سریال نیز جهت استفاده از مد حالت 16 کلید وجود دارد.

نحوه عملکرد

این ماژول مانند یک ماتریس 4×4 شامل 4 ردیف و 4 ستون می‌باشد که جمعا برابر 16 عدد سوئیچ است. ماژول کی پد 4 در 4 لمسی خازنی می‌تواند در مدهای مختلف تنظیم شود. مهمترین حالت‌های کاری آن به شرح زیر است:

  • 2 پایه TP2 مدارباز باشد: در این حالت فقط 8 پین‌ خروجی جهت استفاده از 8 کلید لمسی فعال می‌باشند. با لمس هر کلید، پایه مخصوص آن HIGH می‌شود و با برداشتن انگشت دوباره LOW می‌شود.
  • 2 پایه TP2 اتصال کوتاه باشد: در این حالت 2 پین سریال جهت استفاده از هر 16 کلید لمسی فعال است. در این حالت به طور همزمان فقط می‌توان یک کلید را لمس کرد.

معرفی پایه های (Pinout) ماژول کی‌پد 4 در 4 لمسی خازنی TTP229

کی‌پد 4 در 4 TTP229 دارای 12 پایه به شرح زیر است:

  • VCC: تغذیه ماژول 2.4 تا 5.5 ولت
  • GND: زمین
  • SCL: پایه ورودی سریال کلاک
  • SD0: پایه خروجی سریال کلاک
  • OUT1: پایه خروجی دیجیتال 1
  • OUT2: پایه خروجی دیجیتال 2
  • OUT3: پایه خروجی دیجیتال 3
  • OUT4: پایه خروجی دیجیتال 4
  • OUT5: پایه خروجی دیجیتال 5
  • OUT6: پایه خروجی دیجیتال 6
  • OUT7: پایه خروجی دیجیتال 7
  • OUT8: پایه خروجی دیجیتال 8

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

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

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

آردوینو UNO R3 × 1
ماژول کی‌پد 4 در 4 لمسی خازنی TTP229 × 1
سیم جامپر نری-مادگی × 1

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

آردوینو IDE

راه اندازی ماژول کی‌پد 4 در 4 لمسی خازنی TTP229 با آردوینو

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

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

گام دوم: کد حالت 8 کلید

کد زیر را روی برد آردوینو آپلود کنید. دقت کنید که برای این حالت بایستی 2 پایه TP2 مدار باز باشد.


   /*
  XD-62B-TTP229-4x4-Keypad-8
  made on 11 Nov 2020
  by Amir Mohammad Shojaee @ Electropeak
  https://electropeak.com/learn/
*/

void setup(){
  for(int x=2;x<10;x++)
  pinMode(x,INPUT);
  Serial.begin(9600);
}

void loop(){
  for(int y=2;y<10;y++){
    if (digitalRead(y)==HIGH)
    Serial.println(y-1);
  }
}

در این برنامه 8 پایه ورودی آردوینو از پایه 2 تا 9 را  به 8 عدد کلید ماژول متصل کرده‌ایم و با لمس هر یک از کلیدها، شماره آن در خروجی Serial Monitor ظاهر می‌گردد.

خروجی کد به شکل زیر است. همانطور که مشاهده می‌کنید کلید شماره 5 لمس شده است.

گام سوم: کد حالت 16 کلید

کد زیر را روی برد آردوینو آپلود کنید. دقت کنید که برای این حالت بایستی دو پایه TP2 اتصال کوتاه باشد.  

    /*
  XD-62B-TTP229-4x4-Keypad-16
  modified on 11 Nov 2020
  by Amir Mohammad Shojaee @ Electropeak
  https://electropeak.com/learn/

  based on forum.hobbycomponents.com examples
*/

/* Define the digital pins used for the clock and data */
#define SCL_PIN 10
#define SDO_PIN 11

/* Used to store the key state */
byte Key;

void setup()
{
  /* Initialise the serial interface */
  Serial.begin(9600);
  /* Configure the clock and data pins */
  pinMode(SCL_PIN, OUTPUT);  
  pinMode(SDO_PIN, INPUT); 
}

/* Main program */
void loop()
{
  /* Read the current state of the keypad */
  Key = Read_Keypad();
  
  /* If a key has been pressed output it to the serial port */
  if (Key)
    Serial.println(Key); 

  /* Wait a little before reading again 
     so not to flood the serial port*/
  delay(100);
}


/* Read the state of the keypad */
byte Read_Keypad(void)
{
  byte Count;
  byte Key_State = 0;

  /* Pulse the clock pin 16 times (one for each key of the keypad) 
     and read the state of the data pin on each pulse */
  for(Count = 1; Count <= 16; Count++)
  {
    digitalWrite(SCL_PIN, LOW); 
    
    /* If the data pin is low (active low mode) then store the 
       current key number */
    if (!digitalRead(SDO_PIN))
      Key_State = Count; 
    
    digitalWrite(SCL_PIN, HIGH);
  }  
  
  return Key_State; 
}

در این برنامه از طریق 2 پایه دیجیتال  که یکی ورودی و دیگری خروجی است، کار دریافت دیتا و ارسال کلاک را انجام می‌دهیم. در نهایت نیز با لمس هر یک از کلیدها، شماره آن در خروجی Serial Monitor ظاهر می‌گردد.

خروجی کد به شکل زیر است. همانطور که مشاهده می‌کنید کلیدها به طور تصادفی لمس شده‌ اند.

از این مطلب خوشتان آمد؟

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

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

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

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