You are on page 1of 23

УНИВЕРЗИТЕТ У ИСТОЧНОМ САРАЈЕВУ

ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ

БРОЈАЊЕ ОСОБА У ПРОСТОРИЈИ


ИНФРАЦРВЕНИМ СЕНЗОРОМ ЗА УДАЉЕНОСТ –
Infra red proximity sensor SHARP GP2Y0A21YK0F
- семинарски рад из предмета Микропроцесорски системи -

Студент: Драгутин Авдаловић Ментор: доц. др Слободан Лубура


Број индекса: 1381

Мај 2018.
Инфрацрвени сензор удаљености

Садржај

1. УВОД......................................................................................................................................3
2. Микроконтролери.................................................................................................................4
2.1 О микроконтролерима.....................................................................................................4
2.2 PIC Микроконтролери – основне карактеристике.......................................................4
2.3 Основне карактеристике PIC16F877A микроконтролера............................................5
3. Инфрацрвени сензори удаљености....................................................................................6
3.1 Основне карактеристике инфрацрвених сензора удаљености....................................6
3.2 Логика инфрацрвених сензора.......................................................................................6
3.3 Области кориштења инфрацрвених сензора.................................................................7
4. Анализа принципа рада инфрацрвеног сензора.................................................................8
4.1 Основне карактеристике инрацрвеног сензора удаљености Infrared proximity
sensor SHARP GP2Y0A21YK0F...........................................................................................8
4.2 Приказ производа............................................................................................................9
4.3 Спецификације и ограничења производа....................................................................10
4.4 Рад...................................................................................................................................10
4.4 Примјер излазне карактеристике и блок дијаграм.....................................................11
5. Комуникациони стандард RS 232 и MAX 232 коло.........................................................12
5.1 RS 232 стандард.............................................................................................................12
5.2 MAX 232 коло................................................................................................................12
6. Практична реализација.......................................................................................................15
6.1 Опис задатка..................................................................................................................15
6.2. Реализација...................................................................................................................16
6. Закључак..............................................................................................................................23

Драгутин Авдаловић
2
Инфрацрвени сензор удаљености

1. УВОД

Инфрацрвени сензор за удаљеност даје бесконтактну функцију мјерења удаљености.


У овом раду биће описан поступак бројања особа у просторији уз кориштење
микроконтролера PIC16F877A и два инфрацрвена сензора за удаљеност SHARP
GP2Y0A21YK0F, као и комуникација сензора са рачунаром помоћу RS232 порта и
интерфејсног кола MAX232. Задатак сензора SHARP GP2Y0A21YK0F јесте да
инфрацрвеним зраком одреди удаљеност објекта који пролази кроз поље сензора, и
пошаље то микроконтролеру. Микроконтролер тако добија информацију о томе да ли је
један од сензора активиран, тј. да ли је особа у његовом опсегу, те на основу мјерења са
два таква сензора, алгоритам који се извршава на микроконтролеру рачуна да ли је
особа изашла или ушла у просторију.
У другом поглављу овог рада говори се о PIC микроконтролерима и њиховим
карактеристикама. Затим су, у трећем поглављу, описане карактеристике инфрацрвених
сензора, начин њиховог рада и главне карактеристике. У поглављима број 4 и 5 описане
су особине инфрацрвеног сензора SHARP GP2Y0A21YK0F, као и карактеристике
RS232 комуникационог стандарда и интерфејсног кола MAX232. Затим, у поглављу
број 6 слиједи опис практичне реализације поменутог система за бројање особа.

Драгутин Авдаловић
3
Инфрацрвени сензор удаљености

2. Микроконтролери

2.1 О микроконтролерима
Микроконтролер у суштини представља минијатурни „рачунар“ интегрисан у виду
чипа, који садржи све градивне блокове CPU-a (ALU, PC, SP, регистре, тајмере и др.).
Осим тога садржи и RAM, ROM, паралелне и серијске U/I портове, генераторе такта,
серијске и паралелне комуникационе модуле, A/D конверторе и др. Микроконтролер је
уређај опште намјене, oва функција подразумијева прибављање података, обављање
ограничене обраде над тим подацима, те управљање периферијама на основу резултата
обраде. Микроконтролери су пројектовани тако да обједине комплетан дигитални
рачунар на једном чипу, јер осим процесора садрже и меморијске и периферне
јединице. Тако се постиже да жељени систем има минималан број компоненти, чиме се
штеди простор и вријеме потребно за конструисање уређаја. Блок дијаграм
микроконтролера je приказан на слици 2.1.1.

Слика 2.1.1 Блок дијаграм микроконтролера

2.2 PIC Микроконтролери – основне карактеристике


Микроконтролери су електронске компоненте намијењене конструисању
електронских система за дигитално управљање и надзор. Микроконтролери су
првобитно настали почетком 1970-тих година, а нагли процват су остварили средином
1990-тих. Компанија Microchip је тада направила свој први једноставан
микроконтролер. Првобитно je развијен у сврху подршке PDP (Programmed Data
Processor) рачунарима гдје му је улога била управљање њиховим периферним
уређајима, па је стога назван PIC (Peripheral Interface Controller). Због тога су сви ови
чипови развијени од Microchip-а именовани као посебна класа и названи PIC.
Драгутин Авдаловић
4
Инфрацрвени сензор удаљености

PIC фамилија садржи велики број различитих компоненти, које су замишљене да


задовоље што шири спектар потреба уз минималну цијену, a одликују се малом
потрошњом, разумном величином, те погодним паковањем (Through Hole или Surface
Mount). Могућност микроконторолера да складишти и покрене јединствене програме
чини га свестраном компонентом. Тако, на примјер, једноставно се може
испрограмирати да извршава одлуке засноване на предефинисаним ситуацијама
(улазно-излазна логика) и вишеструким изборима. Способност микроконтролера да
извршава математичке и логичке функције омогућава му да опонаша софистицирана
логичка и електронска кола. Слично, могуће је програмирати микроконтролер тако да се
понаша као неурално коло или као контролер заснован на примјени фази (fuzzy) логике.
Сви PIC микроконтролери посједују RISC архитектуру (RISC - Reduce Instruction Set
Computer).

2.3 Основне карактеристике PIC16F877A микроконтролера


PIC16F877A је 10-битни микроконтролер са флеш меморијом и 40 пинова, чији
распоред је дат на слици 2.3.1. Одликују га ниска цијена и добре перформансе. Израђен
је у ЦМОС технологији (CMOS - complementary-symmetry metal-oxide-semiconductor ).
Овај микроконтролер може да изврши 35 једноставних инструкција. Вријеме извршења
једне инструкције је 1 тактни циклус осцилатора, са изузетком инструкције гранања код
које је вријеме извршења двоструко дуже. Максимална брзина рада му је 20 MHz.

Слика 2.3.1 Распоред пинова микроконтролера PIC16F877A

Драгутин Авдаловић
5
Инфрацрвени сензор удаљености

3. Инфрацрвени сензори удаљености

3.1 Основне карактеристике инфрацрвених сензора удаљености


Инфрацрвени сензор је уређај који може мјерити удаљеност до објекта користећи
инфрацрвену свјетлост. Инфрацрвени сензори раде на принципу емитовања
инфрацрвених пулсева и детекције рефлектованог сигнала од објекта. Естимација
удаљености до објекта се врши на темељу реконструисаног сигнала и претпоставке да
се инфрацрвена свјетлост рефлектовала од објекта. Да би се избјегла потенцијална
опасност због других извора инфрацрвене свјетлости у околини, емитовани
инфрацрвени сигнал се кодира а детектовани сигнали се игноришу све док се не
детектује сигнал одговарајућег таласног облика унутар њих. Инфрацрвени сензори
имају јако брз одзив и доста су јефтини. У индустријским примјенама, инфрацрвени
сензори су карактеристични по својој поузданости и и разноликости. Методе за
мјерење удаљености на бази инфрацрвених сензора раде поуздано под скоро свим
условима, користе се за удаљености мањег растојања (до 0.8m) самим тим што су
непропустиви за околну свјетлост, боју и рефлективност објекта. Уређаји су изузетно
отпорни, што их чини одговарајућим чак и за најтеже услове. Инфрацрвени сензори су
доказали своју поузданост и издржљивост у скоро свим индустријским областима.

3.2 Логика инфрацрвених сензора


Инфрацрвени сензори користе инфрацрвене зраке за детектовање објеката у
окружењу и извора топлоте. Принцип мjерења удаљености објекта заснива се на
мjерењу упадног угла рефлектованог инфрацрвеног ваздуха. Постоје аналогни и
дигитални сензори. Аналогни излазни сензори обезбеђују континуални напон у
зависности од удаљености објеката, док дигитални имају A/D претварач који претвара
аналогни сигнал у дигитални и зато се лакше прилагођава микроконтролерима.

Слика 3.2.1 Дијаграм једноставне операције инфрацрвеног сензора

Помоћу инфрацрвеног сензора удаљености могуће је мјерити мале удаљености


до 0.8m. Околна свијетлост нема утицаја на мјерни податак, и битно је нагласити да боја
и рефлективност нема утицаја на мјерни податак.
Инфрацрвени сензор удаљености састоји се од IR емитера, фокусне леће и
позицијски осјетљивог детектора као што је приказано на дијаграму изнад. Принцип
Драгутин Авдаловић
6
Инфрацрвени сензор удаљености

рада је једноставан и састоји се од емитовања инфрацрвеног сигнала са IR емитера ка


циљној површини. Након рефлекције од циљаног објекта детектор детектује
рефлектовани инфрацрвени сноп уз помоћ на позицију осјетљивог детектора. Локација
свјетлосне сјене на детектору одговара удаљености од циљне површине. Угао под којим
се рефлектују промјене се мијења у складу са растојањем од објекта те се може
користити као мјера удаљености од објекта. Таласна дужина која се најчешће користи
износи 980 nm. Иако невидљива за људско око, може се трансформисати у видљиву
свијетлост.

3.3 Области кориштења инфрацрвених сензора

Слика 3.3.1 Неки од начина кориштења инфрацрвених сензора

Најважније области коришћења инфрацрвених сензора удаљености су:

1. Мјерење динамичких промјена удаљености


2. Мјерење динамичких промјена висине
3. Мјерење динамичких промјена дубине
4. Бројање броја јединица
5. Бесконтактни прекидач
6. Робот чистач
7. Сензори за штедњу енергије
8. Индустријска аутоматизација и контрола
9. Уређаји за забаву (роботи, аркадне игре)

Драгутин Авдаловић
7
Инфрацрвени сензор удаљености

4. Анализа принципа рада инфрацрвеног сензора

4.1 Основне карактеристике инрацрвеног сензора удаљености


Infrared proximity sensor SHARP GP2Y0A21YK0F
SHARP GP2Y0A21YK0F је сензор за мерење удаљености, који се састоји од
интегрисаног PSD-а (position sensitive detector - осјетљивог на позицију детектора),
IRED-a (infrared emitting diode - инфрацрвене емитујуће диоде) и кола за обраду
сигнала.
Инфрацрвени сензор удаљености користи инфрацрвену свијетлост на излазу и
очитава рефлектовану инфрацрвену свијетлост помоћу фотодиоде. Резултирајућа
величина рефлектоване светлости садржи информације о растојању објекта од
фотодиоде. На пример, када се објекат налази испред сензора, емитује се инфрацрвени
пулсни сигнал који се одбија од објекта и враћа назад на сензор. Пошто објекат не може
у потпуности рефлектовати светлост, односно не може постићи 100% рефлексивност
због утицаја околине, на фотодиоду сензора се враћа само дио послатог сигнала.
Разлика коју очита сензор представља податак о удаљености. Овај уређај на излазу даје
напон у зависности од измјерене удаљености. Може се користити и као сензор
непосредне близине.
Карактеристике:
 Напон напајања: 4.5V – 5.5V DC
 Аналогни сигнал на излазу
 Струја у стању мировања: 30mA
 Радна струја: 40mA
 Опсег удаљености: 10cm – 80cm ( 3.1V за 10cm и 0.3V за 80 cm)
 Типично вријеме одзива: 39 ms
 Димензије: 29.5×13×13.5 mm
 Тежина: 3.5g
 Опсег температура: -10 do 60 °C

Слика 4.1.1 SHARP GP2Y0A21YK0F инфрацрвени сензор

Драгутин Авдаловић
8
Инфрацрвени сензор удаљености

4.2 Приказ производа

Слика 4.2.1 SHARP GP2Y0A21YK0F сензор (позадина) и начин повезивања

Vcc = +5V DC (Напајање)


Vо – output voltage (излазни напон на сензору – мјера удаљености)
GND = GND (Уземљење)

Слика 4.2.2 Димензије сензора SHARP GP2Y0A21YK0F и распоред пинова

Драгутин Авдаловић
9
Инфрацрвени сензор удаљености

4.3 Спецификације и ограничења производа

Parameter Min Typ. Max Unit

Радни напон 4.50 5.0 5.5 V

Струја у стању мировања - 30 40 mA

Мјерење удаљености 10 - 80 cm

Излазни напон 0.25 0.4 0.55 V

Излазна разлика напона 1.65 1.9 2.15 V

4.4 Рад
IR сензор користи принцип триангулације и CCD сензора за мерење удаљености и
одређивање присуства објекта у видном пољу.

Слика 4.4.1 Распршивање и детектовање свјетлости

Идеја на којој се заснива рад сензора је следећа:


 емитер одашиље импулсе инфрацрвене свјетлости
 свјетлост путује кроз простор и наилази на неки објекат или наставља своју
путању.
Драгутин Авдаловић
10
Инфрацрвени сензор удаљености

У случају да не наиђе на објекат на својој путањи, она се теоретски никад неће


одбити и сензор нема очитања. У случају да се светлост рефлектује (прецизније
распрши) од објекта, она се враћа на детектор и ствара троугао између емитера, тачке
рефлексије и детектора. Углови тог троугла зависе од удаљености од објекта. Пријемник
сигнала је заправо прецизни објектив који преноси рефлектовану свјетлост на разне
дијелове линеарног CCD сензора на основу угла одбијања зрака. CCD сензор може
одредити дати угао под којим светлост одбила и на основу тога израчунати удаљеност
објекта. Ова метода је скоро потпуно независна од светлости околине и боје објекта.

4.4 Примјер излазне карактеристике и блок дијаграм


Блок дијаграм IR сензора дат је на следећој слици:

Слика 4.4.2 Блок дијаграм ИР сензора

У зависности од удаљености објекта, ИР сензор на свом излазу даје одговарајући


напон. Како је опсег рада овог сензора од 10 cm до 80 cm, излазни напон вриједности за
удаљености испод 10 cm и преко 80 cm се не могу узети као тaчни. Излазна
карактеристика сензора требала би приближно изгледати као на слици испод:

Слика 4.4.1 Излазна карактеристика U(d)

Драгутин Авдаловић
11
Инфрацрвени сензор удаљености

5. Комуникациони стандард RS 232 и MAX 232 коло


5.1 RS 232 стандард
RS232 спада у single-ended стандард (подаци се преносе преко једног проводника).
Сам назив „RS“ представља скраћеницу од ,,Recomended Standard“. RS232 стандард
потпуно дефинише једну врсту асинхроне серијске комуникације. Стандард прво
дефинише тип, структуру и могуће брзине преноса серијске поруке битова. Затим,
пошто је у питању асинхрона комуникације и порука може кренути у било ком
временском тренутку, дефинисани су и начини детекције старта и краја поруке, као и
синхронизовано читање послате поруке од стране пријемника. Стандард такође
дефинише физички ниво преноса поруке. Дефинисани су напонски нивои на линији у
току преноса поруке као и хардвер потребан за предају и пријем поруке по RS232
стандарду, чему морају да се придржавају сви RS232 примопредајници. RS232 стандард
има посебне линије за пријем и предају тако да два примопредајника могу истовремено
да шаљу и примају податке. Није важно ни ко је први ни када почео, двије линије су
потпуно независне. Уколико се то програмски и оствари онда добијамо full duplex везу .
Неки примопредајници и/или линијски уређаји не могу истовремено да примају и шаљу
податке. У том случају се пројектује half duplex веза. Ово значи да је комуникација
двосмијерна али није потпуна двосмијерна јер се одговор шаље тек након пријема
питања. Карактеристике RS232 стандарда:
- могућност директног повезивања само два уређаја (1 предајник, 1
пријемник),  независни канали за пренос и пријем (full-duplex),
- сигнализација се обавља напонским нивоима у односу на заједничку масу,
- неактивном стању линије (логичка јединица или mark) одговара негативан
ниво сигнала у односу на масу, а активном (логичка нула или space)
позитиван,
- биполарни напонски нивои (–3 V до –12 V логичка јединица и од +3 V до +12
V логичка нула),
- осјетљивост (мртва зона) ±3 V повећава отпорност линије на шум,
- максималан дозвољен напон у односу на масу: ±25 V,
- дозвољено оптерећење: од 3 kΩ до 7 kΩ,
- улазна импеданса: од 3 до 7 [kΩ],
- максимална струја на излазу: 500 mА.

5.2 MAX 232 коло


Пошто су напонски нивои код RS232 стандарда, који одговарају логичким стањима,
супротни од устаљене ТТL технике, код које логичкој 0 одговара нулти напон, а
логичкој 1 позитиван напон (+5V), за прилагођење напонских нивоа користе се посебна
електронска кола, као што је MAX232 (слика 3.2.1). МАX232 са једне стране има RS232
улазе, којима одговарају ТТL излази са друге стране, и обратно. Другим ријечима,
пријемник служи да прихвати као логичко 0 сигнал у распону од + 3V до +15V, и као
логичко 1 сигнал са амплитудом у опсегу од -3V до -15V. Опсег напона између -3V и
+3V се назива мртвом зоном и служи за смањење утицаја сметњи.

Драгутин Авдаловић
12
Инфрацрвени сензор удаљености

Слика 5.2.1 MAX 232 коло, распоред и функција пинова.

Интегрисано коло MAX232 садржи сљедеће 3 цјелине:


- Два DC-DC конвертора
- Два RS232 драјвера
- Два RS232 пријемника

Слика 4.2.2 Типична конфигурација екстерних кондензатора код MAX232 кола

Драгутин Авдаловић
13
Инфрацрвени сензор удаљености

Први DC-DC конвертор користи екстерне кондензаторе С1 и С3 за удвостручавање


напона (са +5V на +10 V), док другиконвертор користи екстерне кондензаторе С2 и С4
за инвертовање напона (са +10V на -10 V). Вриједности кондензатора С1 – С5 не треба
да буду мање од 100nF (најчешће се узимају вриједности од 100 или 220 nF, а у
изузетним случајевима, када постоји потреба за већим излазним струјама, вриједности
су до 4,7uF).

Драгутин Авдаловић
14
Инфрацрвени сензор удаљености

6. Практична реализација
6.1 Опис задатка

Задатак овога рада је коришћење инфрацрвеног сензора за удаљеност ( SHARP


GP2Y0A21YK0F ) за дeтектовање улаза/излаза особа из одређене просторије, односно
за бројање особа унутар неког објекта. Кориштена су два инфрацрвена сензора истог
типа за детектовање улаза/излаза. Сензори су међусобно удаљени 20 cm и налазе се у
истој равни. Пролаз особе се детектује када је било који од сензора активиран. Разлика
између улаза и излаза особе се детектује у зависности од тога који је сензор први
активиран. Уколико је прво активиран сензор који је удаљенији од улаза, детектован је
улаз особе, а уколико је прво активиран сензор који је ближи улазу детектован је излаз
особе. Бројач се инкрементира или декрементира само у случају да се након окидања
првог сензора након одређеног времена активира други сензор што значи да је особа
правилно ушла/изашла. У осталим случајевим бројач чува исту вриједност и сматра се
да је дошло до грешке, или нема особа у пољу сензора. Вриједност бројача се исписује
на дисплеју, а представља тренутни број особа у просторији ако претпоставимо да је
просторија била празна прије укључивања уређаја.
Бројање особа као и било које пребројавање објеката има велики значај у
индустирији, стога овакви уређаји морају да буду тачни и прецизни. У случају бројача
особа тачност се обезбјеђује предвиђеним максималним временом проласка особе кроз
поље два сензора. Овдје је након тестирања закључено да то минимално вријеме износи
1000 ms и то је сасвим довољно да особа која се креће, чак и најмањом брзином, буде
детектована и пребројана на адекватан и тачан начин. Уколико након активирања првог
сензора прође више од 1s, а други сензор се не активира, уређај сматра да се десила
грешка и вриједност бројача се не мјења. Такође са аспекта тачности, уколико су оба
сензора истовремено активирана, уређај такође детектује грешку, тако да се и у овом
случају вриједност бројача не мјења. На овај начин је обезбјеђена тачност уређаја.

Слика 6.1.1 Случај бројања особа


Драгутин Авдаловић
15
Инфрацрвени сензор удаљености

6.2. Реализација
Реализација овог задатка има неколико фаза:
- Израда шеме сензора и шеме за PCB у програмском окружењу Proteus,
- Штампање плочице помоћу CNC машине (CNC - Computer numerical control),
- Уграђивање и лемљење елемената на плочицу (потенциометар, дисплеј 16х2,
осцилатор 8MHz, RS232, USB, програматор, кондензатори, отпорници, диоде,
конектори...),
- Тестирање веза прије уградње интегрисаних кола,
- Уградња интегрисаних кола (микроконтролер PIC16F877A и MAX232),
- Писање програмског кода и убацивање кода у микроконтролер,
- Довођење напајања и повезивање система са рачунаром,
- Тестирање.
Шема овог задатка приказана је на слици 6.2.1. Инфрацрвени сензор типа SHARP
GP2Y0A21YK0F за улаз повезан је на уземљење пином 3, а пином број 1 на напон +5V,
чиме му је обезбјеђено напајање. Пин број 2 (V01) је излазни пин, који је повезан са
микроконтролером PIC16F877A преко порта RA0, који представља излазни пин за
аналогни сигнал. Инфрацрвени сензор за излаз повезан је на уземљење пином 3, а
пином број 1 на напон +5V, чиме му је обезбјеђено напајање. Пин број 2 (V02) је
излазни пин, који је повезан са микроконтролером PIC16F877A преко порта RA1, који
представља излазни пин за аналогни сигнал

Слика 6.2.1 Шема пројекта у Proteus-у

Микроконтролер је такође спојен са конектором за програматор, RS232 конектором


преко MAX232 кола, као и екстерним осцилатором од 8MHz. Напајање је обезбјеђено

Драгутин Авдаловић
16
Инфрацрвени сензор удаљености

преко USB-а (Universal Serial Bus). Програмски код који се убацује у микроконтролер је
веома једноставан и приложен је у наставку.

sbit LCD_RS at RD4_bit;


sbit LCD_EN at RD5_bit;
sbit LCD_D4 at RD0_bit;
sbit LCD_D5 at RD1_bit;
sbit LCD_D6 at RD2_bit;
sbit LCD_D7 at RD3_bit;

sbit LCD_RS_Direction at TRISD4_bit;


sbit LCD_EN_Direction at TRISD5_bit;
sbit LCD_D4_Direction at TRISD0_bit;
sbit LCD_D5_Direction at TRISD1_bit;
sbit LCD_D6_Direction at TRISD2_bit;
sbit LCD_D7_Direction at TRISD3_bit;
// End LCD module connections

//Promjenljive
char sensorOne[7];
char sensorTwo[7];
char counterValue[7];
int ADC_sensor_one;
int ADC_sensor_two;
int counter;
int i=0;

//Funkcije za ispis na ekranu,brojanje pri ulazu i brojanje pri izlazu respektivno


int setSensorValue(int sensorVal);
void personEntering(int sensorOneProcesed);
void personLeaving(int sensorTwoProcesed);
void main()
{
//Konfigurisanje PORT A kao ulazni
TRISA = 0xFF;
//Konfigurisanje PORT D kao izlazni
TRISD=0x00;
//Konfigurisanje PORT B1 pina kao izlaznog, za testiranje ploče
TRISB1_bit = 0;
//Inicijalizacija ADC konvertera
ADC_Init();
Delay_ms(200);

Драгутин Авдаловић
17
Инфрацрвени сензор удаљености

//Inicijalizacija LCD ekrana


Lcd_Init();
Lcd_Cmd(_LCD_CURSOR_OFF);
//Postavljanje brojača na vrijednost nula - početno stanje osoba u prostoriji
counter = 0;
IntToStr(counter,counterValue);
//Ispisivanje broja osoba u prostoriji na ekranu
Lcd_Out(2,1,"unutra: ");
Lcd_Out(2,8,counterValue);
//Beskonačna petlja
while(1)
{
/*U slučaju da broj osoba padne ispod nule, setovanje da je broj osoba 0
i ispisivanje na ekranu - error handle */
if(counter<0)
{
counter=0;
IntToStr(counter,counterValue);
Lcd_Out(2,1,"unutra: ");
Lcd_Out(2,8,counterValue);
}
//Citanje vrijednosti sa analognog ulaza 0 - senzor 1
ADC_sensor_one = ADC_Get_Sample(0);
ADC_sensor_one = setSensorValue(ADC_sensor_one);
IntToStr(ADC_sensor_one,sensorOne);
//Ispisivanje na ekranu vrijednosti senzora 1 - vrijednost je obrađena funkcijom
Lcd_Out(1,1,sensorOne);
//Poziv funkcije koja obrađuje ulaz osobe
personEntering(ADC_sensor_one);
//Citanje vrijednosti sa analognog ulaza 1 - senzor 2
ADC_sensor_two = ADC_Get_Sample(1);
//Setovanje senzor inputa na stabilnu vrijednost ( 1 ili 0 )
ADC_sensor_two = setSensorValue(ADC_sensor_two);
IntToStr(ADC_sensor_two,sensorTwo);
//Ispisivanje na ekranu vrijednosti senzora 2 - vrijednost je obrađena funkcijom
Lcd_Out(1,10,sensorTwo);
//Poziv funkcije koja obrađuje izlaz osobe
personLeaving(ADC_sensor_two);
}
}

Драгутин Авдаловић
18
Инфрацрвени сензор удаљености

/*
Nuliranje vrijednosti
Nuliranje se vrsi zbog neigurnosti senzora, odnosno zbog prevelikog broja citanja sa
analognog ulaza senzora u sekundi.
Zbog toga je za brojanje osoba ili predmeta najbolje uzeti da sve vrijednosti izvan
opsega mjerenja senzora odnosno izvan opsega 15-80cm udaljenosti od senzora budu
nulirane,tj. postavljene na integer vrijednost 0.
Vrijednosti koje su u opsegu senzora se stavljaju na integer 1 vrijednost što znači da je
senzor aktiviran.
Na ovaj način su greške eliminisane i brojač je relativno tačan.
*/
int setSensorValue(int sensorVal)
{
if(sensorVal > 50)
{
sensorVal = 1;
}
else if(sensorVal < 50)
{
sensorVal = 0;
}
return sensorVal;
}
/*Funkcija za brojanje pri ulazu
Ispituje se da li je prvi senzor aktiviran,ako jeste onda se ispituje stanje na drugom
senzoru u tom trenutku i ukoliko je drugi senzor na aktivnom stanju 1, na brojač osoba u
prostoriji se dodaje jedna osoba.
Isto vazi za obrnut smjer ali u tome slucaju neko je izasao iz sobe tako da se od brojaca
oduzima jedna osoba. */
void personEntering(int sensorOneProcesed)
{
if(sensorOneProcesed == 1)
{
i = 0;
/*Petlja koja traje 1s od trenutka kada je prvi senzor aktiviran te prati stanje
drugog senzora*/
while(i < 20)
{
//Uzimanje vrijednosti senzora 2 i ispis na ekranu
ADC_sensor_two = ADC_Get_Sample(1);
ADC_sensor_two = setSensorValue(ADC_sensor_two);
IntToStr(ADC_sensor_two,sensorTwo);
Lcd_Out(1,10,sensorTwo);
/*Ako je senzor dva aktiviran, dodaj 1 na brojač osoba, ispiši na ekranu i
terminiraj funkciju naredbom return*/

Драгутин Авдаловић
19
Инфрацрвени сензор удаљености

if(ADC_sensor_two == 1)
{
counter += 1;
IntToStr(counter,counterValue);
Lcd_Out(2,1,"unutra: ");
Lcd_Out(2,8,counterValue);
return;
}
Delay_ms(50);
i++;
}
}
}
/*
Funkcija za brojanje pri izlazu
Ispituje se da li je drugi senzor aktiviran,ako jeste onda se ispituje stanje na prvom
senzoru u tom trenutku i ukoliko je prvi senzor na aktivnom stanju 1, od brojača osoba u
sobi se oduzima jedna osoba */
void personLeaving(int sensorTwoProcesed)
{
if(sensorTwoProcesed == 1)
{
i = 0;
while(i < 20)
{
ADC_sensor_one = ADC_Get_Sample(0);
ADC_sensor_one = setSensorValue(ADC_sensor_one);
IntToStr(ADC_sensor_one,sensorOne);
Lcd_Out(1,1,sensorOne);
if(ADC_sensor_one == 1)
{
counter -= 1;
IntToStr(counter,counterValue);
Lcd_Out(2,1,"unutra: ");
Lcd_Out(2,8,counterValue);
return;
}
Delay_ms(50);
i++;
}
}
}

Драгутин Авдаловић
20
Инфрацрвени сензор удаљености

Графички приказ алгоритма дат је на слици 6.2.2:

Слика 6.2.2 Графички приказ алгоритма

Драгутин Авдаловић
21
Инфрацрвени сензор удаљености

Графички приказ алгоритма којим се врши бројање на улазу, дат је на слици


6.2.3. Алгоритам за бројање при излазу је исти, с тим да је редослијед читања са
сензора другачији.

Слика 6.2.3 Графички приказ алгоритма за бројање при улазу као подфункције главног
програма
Драгутин Авдаловић
22
Инфрацрвени сензор удаљености

6. Закључак
У овом раду детаљно је описан рад инфрацрвеног сензора за удаљеност и успјешно
је реализовано бројање особа у просторији помоћу два инфрацрвена сензора за
удаљеност SHARP GP2Y0A21YK0F са микроконтролером. Резултат бројања се, преко
програма који је написан у MikroC-у, обрађује и исписује на дисплеј. Овај пројекат је
изузетно користан и може се примјенити у разним другим пројектима и задацима који
имају сличне захтјеве.

Драгутин Авдаловић
23

You might also like