- Потребне компоненте:
- ТЦС3200 сензор у боји ради
- Пиноут ТЦС3200 сензора у боји:
- Кружни дијаграм
- Објашњење кода
У овом пројекту радићемо на иновативној идеји пројекта ардуино, где можемо рачунати новчанице папирне валуте и израчунати њихов износ, осетом папирне валуте помоћу Цолор Сенсор-а и Ардуино-а. ТЦС230 сензор у боји користиће се за откривање новчаница, а Ардуино УНО за обраду података и приказивање преосталог стања на ЛЦД екрану од 16к2.
Потребне компоненте:
- Ардуино УНО
- ТЦС230 сензор у боји
- ИР сензор
- Бреадбоард
- 16 * 2 алфанумерички ЛЦД
- Повезивање жица
ТЦС3200 сензор у боји ради
Сензор у боји ТЦС3200 користи се за препознавање широког спектра боја. Претходно смо повезали ТЦС3200 сензор у боји са Ардуином и Распберри пи, а такође смо направили и неке корисне пројекте попут машине за сортирање у боји.
ТЦС230 сензор има уграђене инфрацрвене ЛЕД диоде које се користе за осветљавање предмета чија се боја детектује. Ово осигурава да на објекат неће утицати спољна светлост која га окружује. Овај сензор очитава фотодиоду од 8 * 8 низа, која се састоји од 16 фотодиода са црвеним филтрима, 16 са плавим филтерима, 16 са зеленим филтерима и 16 фотодиода без икаквог филтера. Сваки од сензорских низова у ова три низа одабире се засебно у зависности од захтева. Отуда је познат као програмабилни сензор. Модул се може представити тако да осети одређену боју и остави остале. Садржи филтере за ту селекцију. Постоји четврти режим који се назива „режим без филтера“ у којем сензор детектује бело светло.
Излазни сигнал сензора у боји ТЦС230 је квадратни талас са радним циклусом од 50% и његова фреквенција је пропорционална интензитету светлости изабраног филтера.
Пиноут ТЦС3200 сензора у боји:
ВДД - Осигурач напона на сензору. Испоручује се са 5В једносмерне струје.
ГНД - Референтни пин за уземљење сензора у боји
С0, С1- улази за одабир скалирања излазне фреквенције
С2, С3 - улази за избор типа фото-диоде
ОУТ - Излазни клин сензора у боји
ОЕ- Омогућити пин за излазну фреквенцију
У овом пројекту смо користили и ИР сензор, чији рад се може разумети на следећем линку.
Кружни дијаграм
Испод је дијаграм кола за Ардуино бројач новца:
Овде сам направио малу структуру попут машине за превлачење ПОС валута помоћу картона. У овој структури су сензори у боји и ИЦ сензори фиксирани на картону као што је приказано на доњој слици.
Овде се ИР сензор користи за осећање присуства валуте у утору, а ако постоји напомена, сензор боје ће препознати боју напомене и послати вредност боје Ардуину. А Ардуино даље израчунава вредност валуте на основу боје ноте.
Објашњење кода
Комплетни код заједно са демо видеом дат је на крају чланка. Овде је детаљно објашњење комплетног кода дато у наставку.
Прво, укључите све библиотеке у програм. Овде нам је потребна само ЛЦД библиотека која ће бити укључена у програм. Затим пријавите све променљиве коришћене у коду.
#инцлуде
Унутар подешавања () одштампајте поруку добродошлице на ЛЦД екрану и дефинишите све правце података дигиталних пинова коришћених у овом пројекту. Даље, подесите скалирање излазне фреквенције сензора у боји, у мом случају је постављено на 20% што се може подесити давањем ХИГХ пулса на С0 и ЛОВ пулса на С1.
воид сетуп () {Сериал.бегин (9600); лцд.бегин (16, 2); лцд.сетЦурсор (0, 0); лцд.принт („Паметни новчаник“); лцд.сетЦурсор (0, 1); лцд.принт ("Цирцуит Дигест"); кашњење (2000); лцд.цлеар (); пинМоде (2, ОУТПУТ); // С0 пинМоде (3, ОУТПУТ); // С1 пинМоде (11, ОУТПУТ); // С2 пинМоде (12, ОУТПУТ); // С3 пинМоде (13, ИНПУТ); // ОУТ дигиталВрите (2, ВИСОКО); дигиталВрите (3, ЛОВ); }
Унутар бесконачне петље () прочитајте све излазе података са сензора. Излаз из ИР сензора може се пронаћи очитавањем А0 пина, а излазне фреквенције боја могу се пронаћи позивањем појединачних функција написаних као црвена (), плава () и зелена (). Затим све одштампајте на серијском монитору. То је потребно када треба да додамо нову валуту нашем пројекту.
инт сензор = дигиталРеад (А0); инт ред1 = ред (); инт блуе1 = блуе (); инт греен1 = греен (); Сериал.принтлн (ред1); Сериал.принтлн (плава1); Сериал.принтлн (зелено1); Сериал.принтлн ("-----------------------------");
Затим напишите све услове за проверу излазне фреквенције сензора у боји са референтном фреквенцијом коју смо претходно поставили. Ако се подудара, наведени износ одузима од стања новчаника.
ако је (ред1> = 20 && ред1 <= 25 && блуе1> = 30 && блуе1 <= 35 && греен1> = 30 && греен1 <= 35 && а == 0 && сенсор == ХИГХ) {а = 1; } иначе ако (сензор == ЛОВ && а == 1) {а = 0; иф (тотал> = 10) {лцд.сетЦурсор (0, 1); лцд.принт ("10 рупија !!!"); укупно = укупно-10; кашњење (1500); лцд.цлеар (); }}
Овде смо поставили услове само за боју од 10 рупија и 50 рупија, можете поставити више услова да бисте открили више не. новчаница.
Напомена: Излаз фреквенције може се разликовати у вашем случају у зависности од спољног осветљења и подешавања сензора. Стога се препоручује да проверите излазну фреквенцију своје валуте и у складу с тим подесите референтну вредност.
Доњи код ће приказати расположиво стање у новчанику на ЛЦД екрану 16к2.
лцд.сетЦурсор (0, 0); лцд.принт ("Тотал Бал:"); лцд.сетЦурсор (11, 0); лцд.принт (укупно); кашњење (1000);
Следећа функција ће добити излазну учесталост боја садржаја црвене боје у валути. Слично томе, можемо написати друге функције да бисмо добили вредност за садржај плаве и зелене боје.
инт ред () {дигиталВрите (11, ЛОВ); дигиталВрите (12, ЛОВ); фреквенција = пулсеИн (ОутПут, ЛОВ); повратна фреквенција; }
Дакле, тако се бројач новца заснован на Ардуину може лако направити помоћу неколико компоненти. Можемо је даље модификовати интегришући неку обраду слике и камеру за откривање валуте помоћу слике, на тај начин ће бити тачније и моћи ће открити било коју валуту.