সুচিপত্র:

একটি পিন 4 × 4 কীপ্যাড: 10 টি ধাপ
একটি পিন 4 × 4 কীপ্যাড: 10 টি ধাপ

ভিডিও: একটি পিন 4 × 4 কীপ্যাড: 10 টি ধাপ

ভিডিও: একটি পিন 4 × 4 কীপ্যাড: 10 টি ধাপ
ভিডিও: কীভাবে আরডুইনো 4x4 কীপ্যাড ব্যবহার করবেন কোডটি ডাউনলোড করুন 2024, জুলাই
Anonim
ওয়ান পিন 4 × 4 কিপ্যাড
ওয়ান পিন 4 × 4 কিপ্যাড

প্রতিবার যখন আমি একটি কীপ্যাড দেখি, এটি অনেকগুলি পিনের সাথে আসে, এটি আপনার 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

পরিকল্পিত এবং Cicruit
পরিকল্পিত এবং Cicruit
পরিকল্পিত এবং Cicruit
পরিকল্পিত এবং 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: শেষ

আমি আশা করি আপনি এই প্রকল্পটি পছন্দ করবেন এবং আপনি এটি করার চেষ্টা করবেন, হতে পারে আপনি আমার চেয়ে ভাল করবেন।

আপনার প্রশ্ন থাকলে আমাকে জিজ্ঞাসা করুন, মন্তব্য করুন এবং যদি আপনি এটি পছন্দ করেন তবে আমাকে ভোট দিতে ভুলবেন না।

প্রস্তাবিত: