کوډ ولټوئ

د آردوینو کوډ او ویډیو د څلور تڼۍ کیپډ لپاره

د آردوینو کوډ او ویډیو د څلور تڼۍ کیپډ لپاره

په دې ټیوټوریل کې به موږ زده کړو چې څنګه د آردوینو سره د څلور تڼۍ کیپډ وکاروو. دا پروژه په ځانګړي ډول د هغو غوښتنلیکونو لپاره ګټوره ده چیرې چې تاسو ډیری تڼۍ ته اړتیا لرئ مګر غواړئ د کارول شویو تارونو شمیر کم کړئ. د کیپډ په یو ځانګړي ډول سره نښلولو سره، موږ کولی شو یو فعال ترتیب یوازې د پنځو تارونو سره ترلاسه کړو پرځای د اتو.

4 key flixable keypad

د څلور تڼۍ کیپډ د تارونو پروسه ساده کوي، ځکه چې دا یو ګډ اړیکه لري چې د اړتیا وړ تارونو ټول شمیر کموي. هر تڼۍ د ټاکل شویو پنونو له لارې آردوینو سره نښلول کیږي، چې اسانه تعامل او کنټرول ته اجازه ورکوي. دا لارښود به د کیپډ تارونه، کوډ، او تمه شوي چلند پوښي، نو تاسو کولی شئ پروژه په بریالیتوب سره تکرار کړئ (په ویډیو کې په 02:30).

هارډویر تشریح شوی

د دې پروژې اصلي برخې یو څلور تڼۍ کیپډ او د آردوینو بورډ شامل دي. کیپډ څلور تڼۍ لري، او هر تڼۍ د دوو تارونو له لارې آردوینو سره نښلول کیږي — یو ګډ تار او د هر تڼۍ لپاره یو ځانګړی تار. دا ترتیب مستقیم اړیکو ته اجازه ورکوي پداسې حال کې چې ګډوډي کموي.

آردوینو د ډیجیټل انپټونو په کارولو سره د تڼۍ فشارونه تشریح کوي، د داخلي پل-اپ ریزسټرونو باندې تکیه کوي ترڅو باثباته لوستل ډاډمن کړي. کله چې یو تڼۍ فشارول کیږي، دا اړونده پن ځمکې سره نښلوي، چې آردوینو ته اجازه ورکوي د حالت بدلون کشف کړي.

ډیټاشیټ تفصیلات

جوړونکیعمومي
د پرزې شمیره4-کیلي کیپډ
منطق/IO ولټاژ5 V
د بریښنا ولټاژ5 V
د کیلیو شمیر4
د ګډ پن ډولفعال-ټیټ
د تڼۍ مقاومت1 kΩ (عادي)
بستهانعطاف وړ PCB
یادښتونه / بڼېپه ډیری ترتیبونو کې شتون لري

  • هر تڼۍ دوه اړیکو ته اړتیا لري: یو د تڼۍ لپاره او یو د ګډ ځمکې لپاره.
  • د داخلي پل-اپ ریزسټرونو کارول تارونه ساده کوي او د اجزاو شمیر کموي.
  • ډاډ ترلاسه کړئ چې ګډ پن د سم عملیات لپاره ځمکې سره نښلول شوی دی.
  • د غلط لوستلو څخه مخنیوي لپاره په سافټویر کې د تڼۍ فشارونه ډیبونس کړئ.
  • د فیډبیک لپاره د ساده سیریل چاپ سره د تڼۍ فعالیت ازموئ.

د تارونو لارښوونې

Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad

د څلور تڼۍ کیپډ آردوینو ته د تارولو لپاره، دا ګامونه تعقیب کړئ:

  • لومړی د کیلي تار د آردوینو په پن 2 سره ونښلئ.
  • دوهم د کیلي تار په پن 3 سره ونښلئ.
  • دریم د کیلي تار په پن 4 سره ونښلئ.
  • څلورم د کیلي تار په پن 5 سره ونښلئ.
  • د کیپډ ګډ تار د آردوینو په ځمکني پن سره ونښلئ.

ډاډ ترلاسه کړئ چې هر تار په خوندي ډول ونښلئ ترڅو د نرمو اړیکو څخه مخنیوی وشي. که تاسو ستونزې تجربه کړئ، هر اړیکه د ویډیو کې ښودل شویو پن ټاکلو په وړاندې دوه ځله وګورئ (په ویډیو کې په 04:15).

د کوډ مثالونه او واک ترو

لاندې کوډ ټوټه د کیپډ لپاره پنونه پیل کوي او دوی د انپټ په توګه ټاکي:

#define key1 2 // تار 1 په پن 2 سره ونښلئ
#define key2 3 // تار 2 په پن 3 سره ونښلئ
#define key3 4 // تار 3 په پن 4 سره ونښلئ
#define key4 5 // تار 4 په پن 5 سره ونښلئ

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP); // پن د انپټ په توګه وټاکئ
 pinMode(key2, INPUT_PULLUP); // پن د انپټ په توګه وټاکئ
 pinMode(key3, INPUT_PULLUP); // پن د انپټ په توګه وټاکئ
 pinMode(key4, INPUT_PULLUP); // پن د انپټ په توګه وټاکئ   
}

په پورته کوډ کې، هر کیلي د اړونده پن شمیرې سره تعریف شوې ده. د INPUT_PULLUP حالت ډاډ ورکوي چې پنونه لوړ لوستل کیږي کله چې فشار نه وي، چې د تڼۍ فشار کشف ساده کوي.

د لوپ فنکشن د هر کیلي حالت لوستي او کله چې فشارول کیږي اړونده پیغام چاپوي:

void loop() {
  int key1S = digitalRead(key1); // وګورئ چې ایا key1 فشارول شوی دی
  int key2S = digitalRead(key2); // وګورئ چې ایا key2 فشارول شوی دی
  int key3S = digitalRead(key3); // وګورئ چې ایا key3 فشارول شوی دی
  int key4S = digitalRead(key4); // وګورئ چې ایا key4 فشارول شوی دی 

  if(!key1S) {
    Serial.println("کیلي 1 فشارول شوې ده");
  }
  if(!key2S) {
    Serial.println("کیلي 2 فشارول شوې ده");
  }
  // د key3 او key4 لپاره اضافي کوډ...
  delay(100);
}

د کوډ دا برخه د هر کیلي حالت ګوري او کله چې یو کیلي فشارول کیږي سیریل مانیټر ته یو پیغام چاپوي. د delay(100) د ډیبونس اغیز ته اجازه ورکوي، ډاډ ترلاسه کوي چې ډیری فشارونه په چټکۍ سره نه ثبت کیږي.

ښودنه / څه تمه وکړو

په بریالیتوب سره د تارونو نښلولو او کوډ آردوینو ته پورته کولو وروسته، تاسو باید تمه ولرئ چې سیریل مانیټر هغه پیغامونه ښکاره کړي چې ښیي کومه کیلي فشارول شوې ده. د کیلي یو فشارول به "کیلي 1 فشارول شوې ده" او د نورو کیلیو لپاره همداسې تولید کړي. که پیغامونه نه ښکاري، خپل تارونه وګورئ او ډاډ ترلاسه کړئ چې ګډ تار ځمکې سره نښلول شوی دی.

د بیرته راګرځیدلو اړیکو څخه محتاط اوسئ، ځکه چې دا ممکن غیر متوقع چلند ته لار هواره کړي. ډاډ ترلاسه کړئ چې کارول شوي پنونه ستاسو په کوډ کې تعریف شویو سره سمون لري (په ویډیو کې په 06:45).

د ویډیو وخت نښې

  • 00:00 - پیژندنه
  • 02:30 - د تارونو تشریح
  • 04:15 - د پن ټاکل
  • 06:45 - د کیپډ ازموینه

انځورونه

4 key flixable keypad
4 key flixable keypad
Arduino wiring for 4 key keypad
Arduino wiring for 4 key keypad
50-Arduino Code for 4 key keypad
ژبه: C++
++
/*
 * This is the Arduino code for a 4-key keypad.
 * Watch the video for details and demo: https://youtu.be/BiOh_Z2N7kk
 * 
 * Written by Ahmad Shamshiri for the Robojax Video channel,
get code, wiring diagram and resources at  www.Robojax.com/RJT37
 * Date: December 28, 2017, in Ajax, Ontario, Canada
 * Permission granted to share this code, given that this
 * note is kept with the code.
 * Disclaimer: This code is "AS IS" and for educational purposes only.
 * This code has been downloaded from https://robojax.com
// Recorded December 28, 2017 for Robojax.com

#define key1 2 //connect wire 1 to pin 2
#define key2 3 //connect wire 2 to pin 3
#define key3 4 //connect wire 3 to pin 4
#define key4 5 //connect wire 4 to pin 5

void setup() {
 Serial.begin(9600);
 pinMode(key1, INPUT_PULLUP);// set pin as input
 pinMode(key2, INPUT_PULLUP);// set pin as input
 pinMode(key3, INPUT_PULLUP);// set pin as input
 pinMode(key4, INPUT_PULLUP);// set pin as input   
}

void loop() {
  int key1S = digitalRead(key1);// read if key1 is pressed
  int key2S = digitalRead(key2);// read if key2 is pressed
  int key3S = digitalRead(key3);// read if key3 is pressed
  int key4S = digitalRead(key4);// read if key4 is pressed 
 // Code written for Robojax.com video tutorial
     if(!key1S){
      Serial.println("key 1 is pressed");
     }
     if(!key2S){
      Serial.println("key 2 is pressed");
     }
     if(!key3S){
      Serial.println("key 3 is pressed");
     }
     if(!key4S){
      Serial.println("key 4 is pressed");
     }          
     delay(100);
}

هغه شیان چې تاسو ورته اړتیا لرئ

سرچینې او حوالې

تر اوسه هیڅ سرچینې نشته.

فایلونه📁

Arduino کتابتونونه (zip)