সুচিপত্র:
- ধাপ 1: উপকরণ বিল
- ধাপ 2: পরিকল্পিত এবং Cicruit
- ধাপ 3: কোড
- ধাপ 4: মান সংশোধন
- ধাপ 5: সমালোচনা এবং পর্যালোচনার পর প্রকল্প
- ধাপ 6: কিছু বিক্রয় কাজের পরে
- ধাপ 7: সত্যের মুহূর্ত
- ধাপ 8: শেষ
ভিডিও: একটি পিন 4 × 4 কীপ্যাড: 10 টি ধাপ
2024 লেখক: John Day | [email protected]. সর্বশেষ পরিবর্তিত: 2024-01-30 08:00
প্রতিবার যখন আমি একটি কীপ্যাড দেখি, এটি অনেকগুলি পিনের সাথে আসে, এটি আপনার Arduino পিনের একটি বড় অপচয়, তাই আমরা কি এবং শুধুমাত্র একটি পিন দিয়ে একটি কীপ্যাড চালাতে পারি? উত্তর এখানে।
ধাপ 1: উপকরণ বিল
হার্ডওয়্যার:
01 আরডুইনো ইউএনও
02 ব্রেডবোর্ড
01 I2C সহ LCD
16 পুশ বোতাম
04 প্রতিরোধক 1.5 kΩ
04 প্রতিরোধক 620
04 প্রতিরোধক 220
08 প্রতিরোধক 100
01 প্রতিরোধক 1 kΩ
07 জাম্পার তার
সফটওয়্যার:
আপনার পিসিতে Arduino IDE ইনস্টল করা আছে
ধাপ 2: পরিকল্পিত এবং Cicruit
সমস্ত ধারণা হল যে আমাদের 4*4 ম্যাট্রিক্স পুশ বোতামগুলি মাটিতে উল্লম্বভাবে ডান সীসা দ্বারা এবং অনুভূমিকভাবে অন্য সীসা (বোতাম সীসা) এবং 1.5 kΩ, 620Ω, 220Ω, এবং 100Ω এর প্রতিরোধক দ্বারা সংযুক্ত রয়েছে, এর শেষগুলি 4 টি সারি চারটি 100Ω প্রতিরোধক দ্বারা সংযুক্ত করা হয়েছে যা পরিকল্পিতভাবে দেখানো হয়েছে।
প্রতিবার যখন আপনি একটি বোতাম চাপেন তখন আপনি সার্কিটটি বন্ধ করে দেন এবং কারেন্টটি একটি ভিন্ন পথ এবং প্রতিরোধকগুলির বিভিন্ন চেইন দিয়ে যায় এজন্যই পিন A0 প্রতিটি পুশ বোতামের জন্য একটি ভিন্ন এনালগ পড়া পায়। এখন আপনার যা দরকার তা হল কোডিং।
ধাপ 3: কোড
#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
LiquidCrystal_I2C lcd (0x3f, 20, 4);
int বাটন = A0;
int readvalue;
অকার্যকর সেটআপ()
{
Serial.begin (9600);
lcd.begin ();
পিনমোড (বোতাম, ইনপুট);
lcd.backlight ();
lcd.print ("হ্যালো ওয়ার্ল্ড");
বিলম্ব (2000);
lcd.clear ();
lcd.print ("এক পিন 4*4 কীপ্যাড");
বিলম্ব (2000); }
অকার্যকর লুপ ()
{
readvalue = analogRead (Button);
Serial.println (readvalue);
যদি (readvalue == 852) {lcd.clear (); lcd.print ("A");}
অন্যথায় {if (readvalue == 763) {lcd.clear (); lcd.print ("B");}
অন্য {যদি (readvalue == 685) {lcd.clear (); lcd.print ("C");}
অন্যথায় {if (readvalue == 965) {lcd.clear (); lcd.print ("D");}
অন্যথায় {if (readvalue == 565) {lcd.clear (); lcd.print ("9");}
অন্যথায় {if (readvalue == 614) {lcd.clear (); lcd.print ("6");}
অন্য {যদি (readvalue == 360) {lcd.clear (); lcd.print ("3");}
অন্যথায় {if (readvalue == 335) {lcd.clear (); lcd.print ("#");}
অন্য {যদি (readvalue == 396) {lcd.clear (); lcd.print ("8");}
অন্যথায় {if (readvalue == 349) {lcd.clear (); lcd.print ("5");}
অন্য {যদি (readvalue == 235) {lcd.clear (); lcd.print ("2");}
অন্যথায় {if (readvalue == 279) {lcd.clear (); lcd.print ("0");}
অন্য {যদি (readvalue == 452) {lcd.clear (); lcd.print ("7");}
অন্য {যদি (readvalue == 271) {lcd.clear (); lcd.print ("4");}
অন্যথায় {if (readvalue == 170) {lcd.clear (); lcd.print ("1");}
অন্য {যদি (readvalue == 92) {lcd.clear (); lcd.print ("*");} else {}}}}}}}}}}}}}}}}}
ধাপ 4: মান সংশোধন
যখন আপনি সিরিয়াল মনিটরটি খুলবেন তখন এটি 1023 এর মান দেখাবে, যদি আপনি একটি বোতাম ধাক্কা দেন তবে এটি আপনাকে আরেকটি পড়া দেবে আপনাকে সেই মানগুলি নিতে হবে এবং কোডে কিছু পরিবর্তন করতে হবে
ধাপ 5: সমালোচনা এবং পর্যালোচনার পর প্রকল্প
এতে কোন সন্দেহ নেই যে আমরা সবাই এখানে আমাদের জ্ঞান শিখতে এবং ভাগ করে নেওয়ার জন্য এসেছি, কমিউনিটির কিছু লোকের দেওয়া কিছু মন্তব্যকে ধন্যবাদ যা খুব সহায়ক ছিল, আমি আমার প্রকল্পে কিছু সমন্বয় এবং উন্নতি করার সিদ্ধান্ত নিয়েছি:
হার্ডওয়্যার:
আমি ব্রেডবোর্ডে খারাপ সংযোগের সমস্যা এড়াতে একটি পিসিবিতে সমস্ত উপাদান বিক্রি করার সিদ্ধান্ত নিয়েছি।
কোড:
একটি বন্ধু আমাকে একটি সফটওয়্যার ডিবাউন্সিং ব্যবহার করার পরামর্শ দিয়েছিল এবং এটি একটি লুপ (উদাহরণস্বরূপ "লুপ") প্রোগ্রামটি একটি পঠন বাছাই করতে কিছুটা সময় নেয় তার মানে এটি অনেক পড়া (আমার পরীক্ষায় 500) কিন্তু লাগে শুধুমাত্র শেষ।
জন্য (i = 1; i <= 500; i ++) {// শুধুমাত্র 500 তম এনালগ্রেড নিন
মান = analogRead (বাটন);} // এটি কিছু সময় নিতে সাহায্য করে এবং খারাপ রিডিং এড়ায়
অন্য একজন বন্ধু তাকে ধন্যবাদ দিয়ে আমাকে "রিডভ্যালু" এর সাথে মানগুলির একটি পরিসরের সাথে তুলনা করার পরামর্শ দিয়েছেন কারণ "রিডভ্যালু" একই ধাক্কা বোতামের জন্য অনেক মান নেয়। উদাহরণস্বরূপ "এ" একটি পড়া দেয়: 849, 850, 851 852, 853, 854, 855 তাই এটি 7 মানের একটি পরিসীমা: একটি থ্রেশহোল্ড (852) এবং 3 মান বাম এবং ডান। আমাদের এখানে যা করতে হবে তা হল "readvalue" এবং "852" এর মধ্যে "3" এর মধ্যে পার্থক্যের পরম মানের তুলনা করা।
যদি (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
ধাপ 6: কিছু বিক্রয় কাজের পরে
ধাপ 7: সত্যের মুহূর্ত
যেহেতু আপনি দেখতে পাচ্ছেন প্রোগ্রামটি মাঝে মাঝে বোতাম গুলিয়ে দেয় কিন্তু এটি এখনও কাজ করে, তত্ত্ব অনুসারে সার্কিটে কোন ভুল নেই কিন্তু কোডটি আরও ক্রমাঙ্কনের প্রয়োজন।
ধাপ 8: শেষ
আমি আশা করি আপনি এই প্রকল্পটি পছন্দ করবেন এবং আপনি এটি করার চেষ্টা করবেন, হতে পারে আপনি আমার চেয়ে ভাল করবেন।
আপনার প্রশ্ন থাকলে আমাকে জিজ্ঞাসা করুন, মন্তব্য করুন এবং যদি আপনি এটি পছন্দ করেন তবে আমাকে ভোট দিতে ভুলবেন না।
প্রস্তাবিত:
সোল্ডার্ড পিন হেডার ছাড়া আরডুইনো ন্যানোর জন্য ICSP সংযোগকারী কিন্তু পোগো পিন: 7 টি ধাপ
সোল্ডার্ড পিন হেডার ছাড়াই আরডুইনো ন্যানোর জন্য আইসিএসপি সংযোগকারী কিন্তু পোগো পিন: বোর্ডে সোল্ডার পিন হেডার ছাড়াই আরডুইনো ন্যানোর জন্য আইসিএসপি সংযোগকারী তৈরি করুন কিন্তু পোগো পিন। -BP75-E2 (1.3 মিমি কনিকাল হেড) স্প্রিং টেস্ট প্রোব পোগো পিন
ইউসি সহ অফ ল্যাচ সার্কিট। একটি পুশ বোতাম। একটি পিন। বিচ্ছিন্ন উপাদান: 5 ধাপ
ইউসি সহ অফ ল্যাচ সার্কিট। একটি পুশ বোতাম। একটি পিন। বিচ্ছিন্ন উপাদান: হ্যালো সবাই, নেটে একটি অন/অফ সার্কিট খুঁজছিল। আমি যা খুঁজে পেয়েছি তা আমি যা খুঁজছিলাম তা নয়। আমি নিজের সাথে কথা বলছিলাম, এর জন্য অবশ্যই একটি উপায় আছে। এটাই আমার দরকার ছিল।
একটি পিন কীপ্যাড রাস্পবেরি পাই ব্যবহারের গাইড: 9 টি ধাপ
ওয়ান পিন কীপ্যাড রাস্পবেরি পাই ব্যবহারের গাইড: দাবিত্যাগ: এটি একটি খোলা সোর্স প্রোডাক্টের জন্য একটি ব্যবহার নির্দেশিকা: ওয়ান পিন কীপ্যাড। এটি একটি DIY প্রকল্প নয়। যদি আপনি আপনার নিজের বোর্ডগুলি তৈরি করতে চান, তাহলে Eগল ফাইলগুলি টিউটোরিয়ালের শেষের দিকে পাওয়া যাবে। ওয়ান পিন কীপ্যাড কী? একটি পিন কীপ্যাড
8051 এর সাথে কীপ্যাড ইন্টারফেস এবং 7 সেগমেন্টে কীপ্যাড সংখ্যা প্রদর্শন: 4 টি ধাপ (ছবি সহ)
8051 এর সাথে কীপ্যাড ইন্টারফেস এবং 7 সেগমেন্টে কীপ্যাড সংখ্যা প্রদর্শন করা: এই টিউটোরিয়ালে আমি আপনাকে 8051 দিয়ে কীপ্যাড ইন্টারফেস করতে এবং 7 সেগমেন্ট ডিসপ্লেতে কীপ্যাড সংখ্যা প্রদর্শন করার বিষয়ে বলতে যাচ্ছি
আইএসপি 6 পিন থেকে 8 পিন সকেট: 4 টি ধাপ
আইএসপি 6 পিন থেকে 8 পিন সকেট: যে কারণে আমি প্রধানত এই প্রকল্পটি তৈরি করেছি সেটি ছিল ATTiny45 প্রোগ্রাম, যার একটি 8 পিন সংযোগ রয়েছে, যখন আমার USBtinyISP (Ladyada থেকে) শুধুমাত্র একটি 10 পিন এবং 6 পিন সংযোগ আছে। প্রায় weeks- weeks সপ্তাহ ইন্টারনেটে ঘুরে বেড়ানোর পর আমি কিছুই পাইনি