- Reikalingos medžiagos:
- Grandinės schema:
- „Arduino“ skaičiuoklės programa:
- „Arduino“ skaičiuoklės modeliavimas:
- „Arduino“ skaičiuoklės darbas:
Programavimas visada yra įdomus, o „Arduino“ yra nuostabi platforma, jei dar tik pradedate naudoti „Embedded“ programavimą. Šioje pamokoje sukursime savo skaičiuoklę su „Arduino“. Reikšmes galima siųsti per klaviatūrą (4 × 4 klaviatūra), o rezultatą galima peržiūrėti LCD ekrane (16 × 2 taškų matrica). Šis skaičiuotuvas galėjo atlikti paprastas operacijas, tokias kaip sudėjimas, atimtis, daugyba ir padalijimas su sveikaisiais skaičiais. Bet kai suprasite koncepciją, galite įdiegti net mokslines funkcijas naudodami „Arduino“ integruotas funkcijas.
Šio projekto pabaigoje jūs sužinosite, kaip naudotis 16x2 LCD ir klaviatūra su „Arduino“, taip pat kaip lengva juos programuoti naudojant lengvai prieinamas bibliotekas. Jūs taip pat suprasite, kaip užprogramuoti „Arduino“ tam tikrai užduočiai atlikti.
Reikalingos medžiagos:
- „Arduino Uno“ (veiks bet kokia versija)
- 16 × 2 LCD ekranas
- 4 × 4 klaviatūra
- 9 V akumuliatorius
- Breadboard ir jungiamieji laidai
Grandinės schema:
Visa šio „ Arduino“ skaičiuoklės projekto schema pateikta aukščiau. Grandinės schemoje parodytą + 5 V ir įžeminimo jungtį galima gauti iš „Arduino“ 5 V ir įžeminimo kaiščio. Pats „Arduino“ gali būti maitinamas iš nešiojamojo kompiuterio arba per nuolatinės srovės lizdą, naudojant 12 V adapterį arba 9 V akumuliatorių.
Skystųjų kristalų ekraną valdome 4 bitų režimu su „Arduino“, todėl prie „Arduino“ yra prijungti tik paskutiniai keturi LCD duomenų bitai. Klaviatūra turės 8 išvesties kaiščius, kurie turi būti prijungti nuo 0 iki 7 kaiščių, kaip parodyta aukščiau. Norėdami patikrinti savo ryšį su „Arduino“, galite naudoti šią ryšio lentelę, taip pat galite patikrinti „4x4“ klaviatūros sąsają su „Arduino“.
„Arduino“ PIN kodas: |
Prisijungęs prie: |
D0 |
1 g kaištis klaviatūra |
D1 |
2 -asis klaviatūros kaištis |
D2 |
3 -oji kaištis klaviatūra |
D3 |
4 -asis klaviatūros kaištis |
D4 |
5 -asis klaviatūros kaištis |
D5 |
6 -asis klaviatūros kaištis |
D6 |
7 -asis klaviatūros kaištis |
D7 |
8 -asis klaviatūros kaištis |
D8 |
Užregistruokite LCD ekrano kaištį (4 kaištis) |
D9 |
Įgalinti LCD kaištį (6 kaištis) |
D10 |
4 duomenų kaištis (11 kaištis) |
D11 |
4 duomenų kaištis (11 kaištis) |
D12 |
4 duomenų kaištis (11 kaištis) |
D13 |
4 duomenų kaištis (11 kaištis) |
+ 5 V |
Prijungtas prie Vdd LCD kaiščio (2 kaištis) |
Žemė |
Prijungtas prie Vss, Vee ir RW LCD kaiščių (1,3 ir 5 kaiščiai) |
Kai kurios „Arduino“ plokštės gali rodyti klaidą įkeliant programą, jei prie „0“ ir „1“ kontaktų yra kas nors prijungta, taigi, jei turite kokių nors problemų, tiesiog nuimkite klaviatūrą įkeldami programą.
Kai jūsų ryšys bus atliktas, jūsų aparatūra atrodys maždaug taip žemiau
„Arduino“ skaičiuoklės programa:
Visa šio projekto „ Arduino“ programa pateikiama šio projekto pabaigoje. Kodas yra padalintas į mažus reikšmingus gabalėlius ir paaiškinamas toliau.
Kaip sakyta anksčiau, mes naudosime bibliotekas sąsają su „Arduino“ su LCD ir klaviatūra. Taigi pirmiausia pridėkime juos prie „Arduino IDE“. LCD biblioteka jau yra įtraukta į „Arduino“ pagal numatytuosius nustatymus, todėl mes neturime dėl to jaudintis. Klaviatūros bibliotekai spustelėkite nuorodą, kad atsisiųstumėte ją iš „Github“. Jūs gausite ZIP failą, tada pridėkite šį libą prie „Arduino“ naudodami „Sketch“ -> „Įtraukti biblioteką“ -> „.ZIP“ failą ir nurodykite vietą į šį atsisiųstą failą. Kai tai atliksite, visi būsime pasirengę programuoti.
Nors klaviatūrai naudoti naudojome biblioteką, turime paminėti keletą detalių (parodyta žemiau) apie „Arduino“ klaviatūrą. Kintamasis ROWS ir COLS pasakys, kiek eilučių ir stulpelių turi mūsų klaviatūra, o klavišų schema rodo klaviatūros klavišų eiliškumą. Klaviatūra, kurią naudoju šiame projekte, atrodo taip, kaip raktų žemėlapis taip pat reiškia tą patį.
Toliau mes paminėjome, prie kurių kaiščių klaviatūra yra prijungta naudojant kintamą masyvo eilutę Pins ir colPins .
konstatavimo baitas ROWS = 4; // Keturios eilutės konstatavimo baitas COLS = 4; // Trys stulpeliai // Apibrėžkite klavišų „Keymap“ simbolių klavišus = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; baitų eilutėPins = {0, 1, 2, 3}; // Prijunkite klaviatūras ROW0, ROW1, ROW2 ir ROW3 prie šių „Arduino“ kaiščių. baitų colPins = {4, 5, 6, 7}; // Prijunkite klaviatūras COL0, COL1 ir COL2 prie šių „Arduino“ kaiščių.
Paminėję, kokio tipo klaviatūrą naudojame ir kaip ji prijungta, galime sukurti klaviatūrą naudodami šias detales naudodamiesi žemiau esančia eilute
Klaviatūra kpd = Klaviatūra (makeKeymap (raktai), rowPins, colPins, ROWS, COLS); // Sukurkite klaviatūrą
Panašiai mes taip pat turime pasakyti, prie kurių „Arduino“ kaiščių yra prijungtas LCD ekranas. Pagal mūsų schemą apibrėžimai būtų panašūs į žemiau
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Smeigtukai, prie kurių prijungtas LCD ekranas LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // sukurti LCD
Sąrankos funkcijos viduje mes tiesiog parodome projekto pavadinimą ir tada einame į „loop“, kur yra pagrindinis projektas.
Iš esmės, mes turime patikrinti, ar klaviatūroje kas nors nėra įvesta skystųjų kristalų ekrane. Tai yra būtent tai, kas daroma ciklo funkcijos viduje, kaip parodyta žemiau
raktas = kpd.getKey (); // paspausto rakto reikšmės saugojimas char, jei (raktas! = NO_KEY) DetectButtons (); if (rezultatas == tiesa) CalculateResult (); „DisplayResult“ ();
Kas vyksta kiekvienoje funkcijoje, paaiškinama naudojant komentarų eilutes, pereikite visą žemiau esantį kodą, sukinėkitės, kad suprastumėte, kaip jis iš tikrųjų veikia. Jei turite kokių nors abejonių dėl konkrečios eilutės, drąsiai naudokitės komentarų skiltimi ar forumais.
„Arduino“ skaičiuoklės modeliavimas:
Taip pat galime pabandyti imituoti projektą naudodami „Proteus“ programinę įrangą. „Proteus“ neturi „Arduino“ komponento, tačiau jį galima lengvai atsisiųsti ir pridėti prie jo bibliotekos. Kai turėsite „Arduino“ komponentą „Proteus“, tiesiog pridėkite raidinį ir skaitmeninį LCD ir klaviatūrą, kad užmegztumėte ryšį, kaip parodyta grandinės schemoje.
Tada atsisiųskite „hex“ failą iš čia ir pridėkite jį prie „Arduino“ dukart spustelėdami lentą „Proteus“ ir nurodydami „programos failą“ į šį atsisiųstą hex failą. Simuliacijos momentinis kadras parodytas žemiau, o visas darbas parodytas žemiau esančiame vaizdo įraše.
Pastaba: Pateiktas šešioliktainis failas nėra toks pat kaip toliau pateiktos programos originalas. Jis buvo modifikuotas, nes modeliavimo klaviatūros klavišas ir tikroji aparatinės įrangos klaviatūra skiriasi.
„Arduino“ skaičiuoklės darbas:
Prijunkite jungtis pagal schemą ir įkelkite žemiau esantį kodą. Jei tai rodo klaidą, įsitikinkite, kad pridėjote biblioteką, kaip nurodyta aukščiau pateiktoje instrukcijoje. Taip pat galite išbandyti modeliavimą, kad patikrintumėte, ar problema susijusi su jūsų aparatine įranga. Jei viskas bus padaryta taip, kaip turėtų būti, jūsų aparatinė įranga atrodys maždaug taip žemiau, o LCD tai parodys
Kadangi čia naudojama klaviatūra neturi tinkamai pažymėtų ženklų, aš laikiau abėcėles operatoriais, kaip nurodyta toliau
Simbolis klaviatūroje |
Manoma, kad yra |
„A“ |
Papildymas (+) |
„B“ |
Atimtis (-) |
„C“ |
Daugyba (*) |
„D“ |
Skyrius (/) |
„*“ |
Išvalyti (C) |
„#“ |
Lygus (=) |
Galite naudoti žymeklį, kad parašytumėte, ką kiekvienas mygtukas iš tikrųjų reiškia.
Tai padarę, galite tiesiogiai pradėti naudoti skaičiuoklę. Įveskite skaičių ir pasirodys antroje eilutėje, paspauskite operandą ir įveskite antrąjį skaičių, galiausiai paspauskite mygtuką „#“, kad gautumėte rezultatą. Taip pat galite pabandyti sukurti šį jutikliniu ekranu pagrįstą „Arduino“ skaičiuoklę.