Სარჩევი:
- ნაბიჯი 1: მასალების შედგენა
- ნაბიჯი 2: სქემატური და ციკრუტი
- ნაბიჯი 3: კოდი
- ნაბიჯი 4: ღირებულებების კორექტირება
- ნაბიჯი 5: პროექტი კრიტიკისა და განხილვის შემდეგ
- ნაბიჯი 6: ზოგიერთი Soldring სამუშაოს შემდეგ
- ნაბიჯი 7: ჭეშმარიტების მომენტი
- ნაბიჯი 8: დასასრული
ვიდეო: ერთი პინი 4 × 4 კლავიატურა: 10 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:18
ყოველ ჯერზე, როდესაც ვხედავ კლავიატურას, მას აქვს ბევრი ქინძისთავები, ეს არის თქვენი Arduino ქინძისთავების დიდი ნარჩენები, ასე რომ შეგვიძლია კლავიატურის გაშვება ერთი და მხოლოდ ერთი პინით?.პასუხი აქ არის.
ნაბიჯი 1: მასალების შედგენა
აპარატურა:
01 Arduino UNO
02 პურის დაფები
01 LCD I2C– ით
16 დააჭირეთ ღილაკს
04 რეზისტორები 1.5 kΩ
04 რეზისტორი 620 Ω
04 რეზისტორი 220 Ω
08 რეზისტორი 100 Ω
01 რეზისტორი 1 kΩ
07 მხტუნავ მავთულები
პროგრამული უზრუნველყოფა:
Arduino IDE დაინსტალირებულია თქვენს კომპიუტერში
ნაბიჯი 2: სქემატური და ციკრუტი
იდეა იმაში მდგომარეობს, რომ ჩვენ გვაქვს 4*4 მატრიცა ბიძგის ღილაკზე, რომელიც დაკავშირებულია ვერტიკალურად მიწასთან მარჯვენა ტყვიით და ჰორიზონტალურად სხვა ტყვიით (ღილაკის ტყვიით) და რეზისტენტებით 1.5 kΩ, 620Ω, 220Ω და 100Ω, ბოლოები 4 რიგები უკავშირდება ოთხ 100Ω რეზისტორს, როგორც ეს ნაჩვენებია სქემატურად.
ყოველ ჯერზე ღილაკზე დაჭერისას თქვენ დახურავთ წრეს და დენი გადის სხვადასხვა ბილიკზე და რეზისტორების სხვადასხვა ჯაჭვზე, ამიტომაც pin A0 იღებს სხვადასხვა ანალოგურ კითხვას თითოეული დაჭერის ღილაკზე. ყველაფერი რაც თქვენ გჭირდებათ ახლა არის კოდირება.
ნაბიჯი 3: კოდი
#ჩართეთ
#ჩართეთ
LiquidCrystal_I2C LCD (0x3f, 20, 4);
int ღილაკი = A0;
int readvalue;
ბათილად დაყენება ()
{
სერიული.დაწყება (9600);
lcd. დაწყება ();
pinMode (ღილაკი, INPUT);
lcd. განათება ();
lcd.print ("გამარჯობა მსოფლიო");
დაგვიანება (2000);
lcd. წმინდა ();
lcd.print ("ერთი პინი 4*4 კლავიატურა");
დაგვიანება (2000); }
ბათილი მარყუჟი ()
{
readvalue = analogRead (ღილაკი);
Serial.println (readvalue);
if (readvalue == 852) {lcd.clear (); lcd.print ("A");}
სხვა {if (readvalue == 763) {lcd.clear (); lcd.print ("B");}
სხვა {if (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");}
სხვა {if (readvalue == 360) {lcd.clear (); lcd.print ("3");}
სხვა {if (readvalue == 335) {lcd.clear (); lcd.print ("#");}
სხვა {if (readvalue == 396) {lcd.clear (); lcd.print ("8");}
სხვა {if (readvalue == 349) {lcd.clear (); lcd.print ("5");}
სხვა {if (readvalue == 235) {lcd.clear (); lcd.print ("2");}
სხვა {if (readvalue == 279) {lcd.clear (); lcd.print ("0");}
სხვა {if (readvalue == 452) {lcd.clear (); lcd.print ("7");}
სხვა {if (readvalue == 271) {lcd.clear (); lcd.print ("4");}
სხვა {if (readvalue == 170) {lcd.clear (); lcd.print ("1");}
else {if (readvalue == 92) {lcd.clear (); lcd.print ("*");} else {}}}}}}}}}}}}}}}}}}
ნაბიჯი 4: ღირებულებების კორექტირება
სერიული მონიტორის გახსნისას ის აჩვენებს მნიშვნელობას 1023, თუ დააჭერთ ღილაკს ის მოგცემთ კიდევ ერთ კითხვას თქვენ უნდა მიიღოთ ეს მნიშვნელობები და შეიტანოთ ცვლილებები კოდში
ნაბიჯი 5: პროექტი კრიტიკისა და განხილვის შემდეგ
ეჭვგარეშეა, რომ ჩვენ ყველანი აქ ვართ იმისთვის, რომ ვისწავლოთ და გავუზიაროთ ჩვენი ცოდნა, საზოგადოების მიერ დატოვებული ზოგიერთი კომენტარის წყალობით, რომელიც ძალიან დამხმარე იყო, მე გადავწყვიტე შემეტანა ცვლილებები და გაუმჯობესება ჩემს პროექტში:
აპარატურა:
მე გადავწყვიტე ყველა კომპონენტი შევაერთო PCB– ში, რათა თავიდან ავიცილოთ პურის დაფებზე ცუდი კავშირის პრობლემა.
Კოდი:
მეგობარმა მირჩია გამომეყენებინა პროგრამული უზრუნველყოფა და ეს მხოლოდ მარყუჟია (მაგალითად, მარყუჟის „for“), რომ პროგრამას წაკითხვის წაკითხვას გარკვეული დრო დასჭირდეს, რაც იმას ნიშნავს, რომ ის ბევრ კითხულობს (ჩემს გამოცდაში 500), მაგრამ სჭირდება მხოლოდ ბოლო
for (i = 1; i <= 500; i ++) {// მიიღეთ მხოლოდ მე -500 ანალოგი
მნიშვნელობა = analogRead (ღილაკი);} // ეს არის გარკვეული დრო, რათა თავიდან აიცილოთ ცუდი კითხვა
მისმა მეორე მეგობარმა მირჩია შემედარებინა "readvalue" რიგი მნიშვნელობებით და არა ერთი, რადგან "readvalue" იღებს ბევრ მნიშვნელობას ერთი და იმავე ღილაკზე. მაგალითად, "A" იძლევა კითხვას: 849, 850, 851 852, 853, 854, 855 ეს არის 7 მნიშვნელობის დიაპაზონი: ბარიერი (852) და 3 მნიშვნელობა მარცხნივ და მარჯვნივ. რაც ჩვენ უნდა გავაკეთოთ აქ არის შევადაროთ აბსოლუტური მნიშვნელობა განსხვავების "readvalue" და "852" შორის "3".
if (abs (readvalue-852) <= 8) {lcd.clear (); lcd.print ("A");}
ნაბიჯი 6: ზოგიერთი Soldring სამუშაოს შემდეგ
ნაბიჯი 7: ჭეშმარიტების მომენტი
როგორც ხედავთ, პროგრამა ხანდახან აბნევს ღილაკებს, მაგრამ მაინც მუშაობს, თეორიულად წრეში არაფერია ცუდი, მაგრამ კოდს მეტი კალიბრაცია სჭირდება.
ნაბიჯი 8: დასასრული
ვიმედოვნებ, რომ მოგწონთ ეს პროექტი და თქვენ ცდილობთ ამის გაკეთებას, შეიძლება თქვენ ჩემზე უკეთესად გააკეთებთ.
მკითხეთ, თუ გაქვთ შეკითხვები, დატოვეთ კომენტარები და არ დაგავიწყდეთ ხმის მიცემა, თუ მოგწონთ ეს.
გირჩევთ:
ICSP დამაკავშირებელი არდუინო ნანოსთვის გასაყიდი პინის სათაურის გარეშე, მაგრამ პოგოს პინი: 7 ნაბიჯი
ICSP კონექტორი Arduino Nano– სთვის Soldered Pin Header But Pogo Pin: გააკეთეთ ICSP კონექტორი Arduino Nano– ს გარეშე soldered pin header დაფაზე, მაგრამ Pogo Pin. ნაწილები 3 × 2 Pin Socket x1 - APitch 2.54 მმ Dupont Line Wire Female Pin Connector Housing Terminals x6 -BP75-E2 (1.3 მმ კონუსური თავი) საგაზაფხულო ტესტის ზონდი Pogo Pin
On Off Latch Circuit ერთად UC. ერთი დაჭერით ღილაკი. ერთი პინი. დისკრეტული კომპონენტი .: 5 ნაბიჯი
On Off Latch Circuit ერთად UC. ერთი დაჭერით ღილაკი. ერთი პინი. დისკრეტული კომპონენტი .: გამარჯობა ყველას, ვეძებდით ჩართვის/გამორთვის წრეს ქსელში. ყველაფერი რაც ვიპოვე არ იყო ის რასაც ვეძებდი. ჩემს თავს ვესაუბრებოდი, აუცილებლად არსებობს ამის საშუალება. ეს არის ის, რაც მჭირდებოდა.-მხოლოდ ერთი დაჭერის ღილაკი ჩართვისა და გამორთვისთვის.-უნდა გამოიყენოთ მხოლოდ
Arduino AREF პინი: 6 ნაბიჯი
Arduino AREF პინი: ამ გაკვეთილში ჩვენ შევხედავთ, თუ როგორ შეგიძლიათ გაზომოთ მცირე ძაბვები უფრო დიდი სიზუსტით თქვენი Arduino– ს ან თავსებადი დაფის ანალოგური პინების გამოყენებით AREF პინთან ერთად. თუმცა, პირველ რიგში, ჩვენ გავაკეთებთ გადახედვას, რომ გაზარდოთ სიჩქარე
RGB ერთი ღილაკი USB კლავიატურა: 6 ნაბიჯი (სურათებით)
RGB ერთი ღილაკი USB კლავიატურა: ოდესმე გიგრძვნიათ საჭიროება ჰქონდეთ პატარა, მაგრამ ფუნქციონალური, RGB უკანა განათების კლავიატურა, რომელიც არ აღემატება ერთი გასაღების ზომას? არა? ვისაც აინტერესებს, მაინც გააკეთე ერთი! ეს ინსტრუქცია გაუძღვება იმ ნაბიჯებს, რომლებიც გჭირდებათ იმისათვის, რომ გახადოთ თქვენი საკუთარი, ოდნავ უსარგებლო
სწრაფი და ბინძური Das კლავიატურა (ცარიელი კლავიატურა): 3 ნაბიჯი
სწრაფი და ჭუჭყიანი Das კლავიატურა (ცარიელი კლავიატურა): Das Keyboard არის ყველაზე პოპულარული კლავიატურის სახელი კლავიშებზე წარწერების გარეშე (ცარიელი კლავიატურა). Das კლავიატურა 89,95 დოლარად იყიდება. ეს ინსტრუქცია გაგიძღვებათ, თუკი თქვენ თვითონ გააკეთებთ მას რომელიმე ძველი კლავიატურით, რომლის გარშემოც იწექით