Kai tik einame balsuoti už rinkimus, pamatome elektronines balsavimo mašinas. Šiame projekte mes suprojektuosime ir sukursime paprastą balsavimo mašiną, naudodami mikrovaldiklį „ATmega32A“. Nors mes galime naudoti valdiklį norėdami gauti daugiau nei 32 žmonių balsavimo mašiną, kad viskas būtų paprasta, ketiname sukurti keturių žmonių balsavimo sistemą. Turėsime keturis mygtukus keturiems žmonėms ir, kai tik paspausite mygtuką, balsuojama už atitinkamą asmenį ir kiekvieno žmogaus balsų skaičius rodomas LCD.
Būtini komponentai
Techninė įranga:
ATMEGA32
Maitinimo šaltinis (5v)
AVR-ISP PROGRAMuotojas
JHD_162ALCD (16x2 LCD)
100nF kondensatorius (penki vienetai), 100uF kondensatorius (prijungtas prie maitinimo šaltinio)
mygtukas (penki vienetai), 10KΩ rezistorius (penki gabalai).
Programinė įranga:
„Atmel“ studija 6.1
progisp arba flash magija.
Grandinės schema ir darbo paaiškinimas
Kaip parodyta aukščiau pateiktoje elektroninio balsavimo aparato grandinėje, ATMEGA32 mikrovaldiklio PORTA yra prijungtas prie 16x2 LCD duomenų prievado. Čia reikia nepamiršti išjungti JTAG ryšio ATMEGA PORTC, keičiant saugiklių baitus, jei norite naudoti PORTC kaip įprastą ryšio prievadą. 16x2 LCD ekrane yra 16 kontaktų, jei yra užpakalinė lemputė, jei nėra užpakalinės šviesos, bus 14 kontaktų. Galima maitinti arba palikti galinio apšvietimo kaiščius. Dabar 14 kaiščių yra 8 duomenų kaiščiai (7-14 arba D0-D7), 2 elektros tiekimo kaiščių (1 & 2 arba Vss & VDD arba GND & + 5V), 3 -oji kaištis kontrasto valdymas (V formos,-kontroliuoja, kaip storio simboliai turėtų būti parodyta), 3 valdymo kaiščiai (RS & RW & E).
Grandinėje galite pastebėti, kad aš paėmiau tik du valdymo kaiščius, nes tai suteikia galimybę geriau suprasti. Kontrasto bitai ir READ / WRITE nėra dažnai naudojami, todėl juos galima sutrumpinti. Tai padidina LCD kontrasto ir skaitymo režimą. Mes tiesiog turime valdyti ENABLE ir RS smeigtukus, kad galėtume atitinkamai siųsti simbolius ir duomenis.
LCD jungtys pateikiamos žemiau:
PIN1 arba VSS - žemė
PIN2 arba VDD arba VCC - + 5v maitinimas
PIN3 arba VEE - žemė (pradedantiesiems suteikia maksimalų kontrastą)
PIN4 arba RS (registro pasirinkimas) - uC PD6
PIN5 arba RW (skaitymas / rašymas) - įžeminimas (įjungus skystųjų kristalų ekraną skaitymo režimu, palengvinamas vartotojo ryšys)
PIN6 arba E (įjungti) - uC PD5
PIN7 arba D0 - PA0 iš uC
PIN8 arba D1 - u1 PA1
PIN9 arba D2 - uC PA2
PIN10 arba D3 - UC PA3
PIN11 arba D4 - PA u4
PIN12 arba D5 - u5 PA5
PIN13 arba D6 - u6 PA6
PIN14 arba D7 - uC PA7
Grandinėje matote, kad mes naudojome 8 bitų ryšį (D0-D7), tačiau tai nėra privaloma. Mes galime naudoti 4 bitų ryšį (D4-D7), tačiau su 4 bitų ryšio programa tampa šiek tiek sudėtinga, todėl aš tiesiog perėjau su 8 bitų ryšiu.
Taigi, vien stebint aukščiau pateiktą lentelę, mes sujungiame 10 LCD kontaktų su valdikliu, kuriame 8 kontaktai yra duomenų kaiščiai ir 2 valdikliai. Čia yra penki mygtukai, keturi skirti padidinti kandidatų balsus, o penktas - atstatyti kandidato balsus į nulį.
Čia esantys kondensatoriai skirti panaikinti mygtukų atšokimo efektą. Jei jie bus pašalinti, valdiklis kiekvieną kartą paspaudus mygtuką gali suskaičiuoti daugiau nei vieną. Smeigtukams prijungti rezistoriai yra skirti srovei riboti, kai mygtukas paspaudžiamas kaiščiui žemyn nuleisti.
Kai tik paspaudžiamas mygtukas, atitinkamas valdiklio kaištis nusileidžia ant žemės ir tokiu būdu valdiklis supranta, kad tam tikras mygtukas yra paspaustas ir reikia atlikti atitinkamus veiksmus, tai gali padidinti kandidatų balsus arba iš naujo nustatyti balsus, atsižvelgiant į paspaustą mygtuką.
Kai paspaudžiamas atitinkamą asmenį rodantis mygtukas, valdiklis jį pasiima ir padidina atitinkamo asmens numerį savo atmintyje, po to padidindamas, jis parodo atitinkamų asmenų balus 16x2 LCD ekrane.
Šios mikrokontrolerio pagrindu veikiančios elektroninės balsavimo mašinos veikimas yra paaiškinamas žingsnis po žingsnio žemiau esančiu C kodu,