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