Кад год идемо да гласамо за изборе, дођемо да видимо електронске машине за гласање. У овом пројекту ћемо дизајнирати и развити једноставну машину за гласање помоћу АТмега32А микроконтролера. Иако помоћу контролера можемо добити више од 32 особе за гласање, да бисмо све поједноставили, направићемо систем за гласање величине четири особе. Имаћемо четири тастера за четири особе и кад год се притисне дугме, глас иде за одговарајућу особу и број гласова који свака особа добије на ЛЦД-у.
Компоненте потребне
Хардвер:
АТМЕГА32
Напајање (5в)
АВР-ИСП ПРОГРАМЕР
ЈХД_162АЛЦД (16к2 ЛЦД)
100нФ кондензатор (пет комада), 100уФ кондензатор (повезан преко напајања)
дугме (пет комада), Отпорник од 10КΩ (пет комада).
Софтвер:
Атмел студио 6.1
прогисп или фласх магија.
Шема и радно објашњење
Као што је приказано у горњем кругу електронске машине за гласање, ПОРТА микроконтролера АТМЕГА32 повезана је на податковни порт од 16к2 ЛЦД-а. Овде треба имати на уму да онемогућите ЈТАГ комуникацију у ПОРТЦ-у АТМЕГА-е променом бајтова осигурача, ако желите да ПОРТЦ користите као нормалан комуникациони порт. На ЛЦД екрану од 16к2 има 16 пинова ако постоји позадинско светло, а ако нема позадинског светла, биће 14 пинова. Може се напајати или оставити игле задњег светла. Сада у 14 пинова постоји 8 пинова за податке (7-14 или Д0-Д7), 2 пина за напајање (1 и 2 или ВСС & ВДД или гнд & + 5в), трећи пин за контролу контраста (ВЕЕ - контролише колико дебели знакови треба да буду приказано), 3 контролна пина (РС & РВ & Е).
У кругу можете приметити да сам узео само два контролна клина, јер то даје флексибилност бољег разумевања. Контрастни бит и РЕАД / ВРИТЕ се не користе често, тако да могу бити кратко спојени на масу. Ово ЛЦД поставља у највећи контраст и режим читања. Само треба да контролишемо ЕНАБЛЕ и РС пинове да би у складу са тим слали знакове и податке.
Конекције које се раде за ЛЦД дате су у наставку:
ПИН1 или ВСС - уземљење
ПИН2 или ВДД или ВЦЦ - + 5в снаге
ПИН3 или ВЕЕ - земља (даје максимални контраст најбољи за почетнике)
ПИН4 или РС (Избор регистра) - ПД6 од уЦ
ПИН5 или РВ (читање / писање) - уземљење (ставља ЛЦД у режим читања олакшава комуникацију за корисника)
ПИН6 или Е (Омогући) - ПД5 од уЦ
ПИН7 или Д0 - ПА0 од уЦ
ПИН8 или Д1 - ПА1 од уЦ
ПИН9 или Д2 - ПА2 од уЦ
ПИН10 или Д3 - ПА3 од уЦ
ПИН11 или Д4 - ПА4 од уЦ
ПИН12 или Д5 - ПА5 од уЦ
ПИН13 или Д6 - ПА6 од уЦ
ПИН14 или Д7 - ПА7 од уЦ
У кругу можете видети да смо користили 8-битну комуникацију (Д0-Д7), међутим то није обавезно. Можемо користити 4-битну комуникацију (Д4-Д7), али са 4-битним програмом комуникације постаје помало сложен, па сам управо отишао са 8-битном комуникацијом.
Тако из пуког посматрања горње табеле повезујемо 10 пинова ЛЦД-а на контролер у којем су 8 пинова пинови за податке и 2 пина за контролу. Овде је присутно пет тастера, четири за повећање гласова кандидата и пето за ресетовање гласова кандидата на нулу.
Овде присутни кондензатори служе за поништавање ефекта одбијања тастера. Ако се уклоне, контролер може бројати више од сваког пута када се притисне дугме. Отпорници повезани за пинове служе за ограничавање струје када се притисне дугме за спуштање клина на земљу.
Кад год се притисне дугме, одговарајући пин регулатора се сруши на земљу и самим тим контролер препознаје да се притиска одређено дугме и предузима одговарајућа радња, то може бити повећање гласова кандидата или ресетовање гласова у зависности од притиснутог дугмета.
Када се притисне дугме које представља одговарајућу особу, контролер га бира и увећава одговарајући број особе у својој меморији, након повећања приказује резултат одговарајућих особа на ЛЦД екрану 16к2.
Рад ове електронске машине за гласање засновану на микроконтролеру је објашњен корак по корак Ц кода доле,