Orodha ya maudhui:

Pini moja 4 × 4 keypad: Hatua 10
Pini moja 4 × 4 keypad: Hatua 10

Video: Pini moja 4 × 4 keypad: Hatua 10

Video: Pini moja 4 × 4 keypad: Hatua 10
Video: 10 убеждений, от которых НЕОБХОДИМО отказаться 2024, Novemba
Anonim
Pini moja 4 × 4 Keypad
Pini moja 4 × 4 Keypad

Kila wakati ninapoona keypad, inakuja na pini nyingi, ni taka kubwa ya pini zako za Arduino, kwa hivyo tunaweza kukimbia kitufe na pini moja na moja tu? Jibu liko hapa.

Hatua ya 1: Muswada wa Vifaa

Muswada wa Vifaa
Muswada wa Vifaa

Vifaa:

01 Arduino UNO

02 Bodi za mkate

01 LCD na I2C

16 Bonyeza vifungo

Vipinga 04 1.5 kΩ

Upinzani 04 620 Ω

Kupinga 04 220 Ω

Vipinzani vya 08 100 Ω

Kupinga 01 1 kΩ

Waya za Jumper 07

Programu:

Arduino IDE imewekwa kwenye PC yako

Hatua ya 2: Mpangilio na Cicruit

Mpangilio na Cicruit
Mpangilio na Cicruit
Mpangilio na Cicruit
Mpangilio na Cicruit

Wazo lote ni kwamba tuna tumbo la 4 * 4 la vifungo vya kushinikiza vilivyounganishwa wima kwa Ardhi kwa risasi ya kulia na usawa na risasi nyingine (risasi ya kitufe) na vipinga vya 1.5 kΩ, 620Ω, 220Ω, na 100Ω, mwisho wa safu 4 zimeunganishwa na vipinzani vinne 100Ω kama inavyoonyeshwa kimkakati.

Kila wakati unapobonyeza kitufe hufunga mzunguko na mkondo hupitia njia tofauti na mnyororo tofauti wa vizuia ndio maana pini A0 inapokea Analog tofauti iliyosomwa kwa kila kitufe cha kushinikiza. Wote unahitaji sasa ni codding.

Hatua ya 3: Kanuni

# pamoja

# pamoja

LiquidCrystal_I2C LCD (0x3f, 20, 4);

Kitufe cha int = A0;

int kusoma

kuanzisha batili ()

{

Kuanzia Serial (9600);

lcd kuanza ();

pinMode (Kitufe, INPUT);

lcd taa ya nyuma ();

lcd.print ("Hello World");

kuchelewa (2000);

lcd wazi ();

lcd.print ("Siri moja 4 * 4 keypad");

kuchelewa (2000); }

kitanzi batili ()

{

kusoma = thamani ya AnalogSoma (Kitufe);

Serial.println (kusoma tena);

ikiwa (kusoma tena == 852) {lcd.clear (); lcd.print ("A");}

kingine {if (readvalue == 763) {lcd.clear (); lcd.print ("B");}

kingine {if (readvalue == 685) {lcd.clear (); lcd.print ("C");}

kingine {if (readvalue == 965) {lcd.clear (); lcd.print ("D");}

kingine {if (readvalue == 565) {lcd.clear (); lcd.print ("9");}

kingine {if (readvalue == 614) {lcd.clear (); lcd.print ("6");}

kingine {if (readvalue == 360) {lcd.clear (); lcd.print ("3");}

kingine {if (readvalue == 335) {lcd.clear (); lcd.print ("#");}

kingine {if (readvalue == 396) {lcd.clear (); lcd.print ("8");}

kingine {if (readvalue == 349) {lcd.clear (); lcd.print ("5");}

kingine {if (readvalue == 235) {lcd.clear (); lcd.print ("2");}

kingine {if (readvalue == 279) {lcd.clear (); lcd.print ("0");}

kingine {if (readvalue == 452) {lcd.clear (); lcd.print ("7");}

kingine {if (readvalue == 271) {lcd.clear (); lcd.print ("4");}

kingine {if (readvalue == 170) {lcd.clear (); lcd.print ("1");}

kingine {if (readvalue == 92) {lcd.clear (); lcd.print ("*");} else {}}}}}}}}}}}}}}}}}

Hatua ya 4: Marekebisho ya Maadili

Marekebisho ya Maadili
Marekebisho ya Maadili

Unapofungua monita ya serial itaonyesha thamani ya 1023, ukibonyeza kitufe itakupa usomaji mwingine lazima uchukue maadili hayo na ufanye mabadiliko kwenye nambari

Hatua ya 5: Mradi Baada ya Kukosoa na Kupitia

Mradi Baada ya Kukosoa na Kupitia
Mradi Baada ya Kukosoa na Kupitia

Hakuna shaka kwamba sisi sote tuko hapa kujifunza na kushiriki maarifa yetu, shukrani kwa maoni kadhaa yaliyoachwa na watu wengine kutoka kwa jamii ambayo yalisaidia sana, niliamua kufanya marekebisho na maboresho ya mradi wangu:

Vifaa:

Niliamua kuuza sehemu zote kwenye PCB ili kuzuia shida ya unganisho mbaya kwenye bodi za mkate.

Nambari:

Rafiki yangu alinishauri nitumie programu inayojiondoa na ni kitanzi tu ("kwa" kitanzi kwa mfano) kufanya programu ichukue muda kuchukua kusoma inamaanisha kuwa inasoma sana (500 katika mtihani wangu) lakini inachukua moja tu ya mwisho.

kwa (i = 1; i <= 500; i ++) {// chukua hesabu ya 500 tu

value = AnalogSoma (Kitufe);} // hiyo inasaidia kuchukua muda kuzuia usomaji mbaya

Rafiki mwingine shukrani kwake alinishauri kulinganisha "kusoma" na anuwai ya maadili sio moja kwa sababu "usomaji" unachukua maadili mengi kwa kitufe sawa cha kushinikiza. "A" kwa mfano inatoa kusoma kwa: 849, 850, 851 852, 853, 854, 855 kwa hivyo ni anuwai ya maadili 7: kizingiti (852) na maadili 3 kushoto na kulia. tunachopaswa kufanya hapa ni kulinganisha thamani kamili ya tofauti kati ya "kusoma tena" na "852" na "3".

ikiwa (abs (kusoma tena-852) <= 8) {lcd. clear (); lcd.print ("A");}

Hatua ya 6: Baada ya Kazi Fulani ya Soldring

Baada ya Kazi Fulani ya Soldring
Baada ya Kazi Fulani ya Soldring
Baada ya Kazi Fulani ya Soldring
Baada ya Kazi Fulani ya Soldring
Baada ya Kazi Fulani ya Soldring
Baada ya Kazi Fulani ya Soldring

Hatua ya 7: Wakati wa Ukweli

Kama unavyoona programu wakati mwingine inachanganya vifungo lakini bado inafanya kazi, kwa nadharia hakuna kitu kibaya na mzunguko lakini nambari inahitaji ukadiriaji zaidi.

Hatua ya 8: Mwisho

Natumai unapenda mradi huu na unajaribu kuufanya, labda utafanya vizuri zaidi kuliko nilivyofanya.

Niulize ikiwa una maswali, acha maoni na, usisahau kunipigia kura ikiwa unapenda hivyo.

Ilipendekeza: