- Необходими компоненти:
- TCS3200 Цветен сензор работи
- Pinout на TCS3200 Color Sensor:
- Електрическа схема
- Обяснение на кода
В този проект ще работим по новаторска идея за проект на arduino, където можем да преброим бележките на хартиената валута и да изчислим техния размер, като засечем хартиената валута с помощта на Color Sensor и Arduino. Цветовият сензор TCS230 ще се използва за откриване на банкноти, а Arduino UNO за обработка на данните и показване на оставащото салдо на 16x2 LCD.
Необходими компоненти:
- Arduino UNO
- TCS230 Цветен сензор
- IR сензор
- Макет
- 16 * 2 буквено-цифров LCD
- Свързване на проводници
TCS3200 Цветен сензор работи
Цветовият сензор TCS3200 се използва за засичане на широка гама от цветове. Преди това сме свързали цветния сензор TCS3200 с Arduino и Raspberry pi, а също така изградихме някои полезни проекти като Color sorting machine.
Сензорът TCS230 има вградени инфрачервени светодиоди, които се използват за осветяване на обекта, чийто цвят трябва да бъде открит. Това гарантира, че няма да има въздействие на външната светлина около него върху обекта. Този сензор отчита фотодиод от масив 8 * 8, който се състои от 16 фотодиода с червени филтри, 16 със сини филтри, 16 със зелени филтри и 16 фотодиода без никакъв филтър. Всеки от сензорните масиви в тези три масива се избира отделно в зависимост от изискването. Следователно той е известен като програмируем сензор. Модулът може да бъде представен, за да усети конкретния цвят и да остави останалите. Той съдържа филтри за тази цел. Има четвърти режим, наречен „режим без филтър“, в който сензорът открива бяла светлина.
Изходният сигнал на цветния сензор TCS230 е квадратна вълна с 50% работен цикъл и неговата честота е пропорционална на интензитета на светлината на избрания филтър.
Pinout на TCS3200 Color Sensor:
VDD - Захранващ щифт на сензора. Захранва се с 5V DC.
GND - Заземен референтен щифт на цветен сензор
S0, S1 - входове за избор на мащабиране на изходната честота
S2, S3 - Входове за избор на тип фотодиод
OUT - изходен щифт на цветен сензор
OE- Активиране на щифт за изходна честота
В този проект сме използвали и IR сензор, чиято работа може да се разбере от следната връзка.
Електрическа схема
По-долу е схемата на схемата за брояч на пари Arduino:
Тук направих малка структура като машина за прекарване на валута в POS с помощта на картони. В тази структура цветният сензор и IR сензорът са фиксирани с картона, както е показано на изображението по-долу.
Тук IR сензорът се използва, за да усети наличието на валута в слота и ако има бележка, тогава цветният сензор ще разпознае цвета на бележката и ще изпрати стойността на цвета на Arduino. И Arduino допълнително изчислява стойността на валутата въз основа на цвета на бележката.
Обяснение на кода
Пълен код заедно с демонстрационен видеоклип е даден в края на статията. Тук поетапното обяснение на пълния код е дадено по-долу.
Първо, включете всички библиотеки в програмата. Тук се нуждаем само от LCD библиотека, която да бъде включена в програмата. След това декларирайте всички променливи, използвани в кода.
#include
Вътре в настройката () отпечатайте приветственото съобщение на LCD и дефинирайте всички посоки за данни на цифровите щифтове, използвани в този проект. След това задайте мащабиране на изходната честота на цветния сензор, в моя случай той е настроен на 20%, което може да се настрои, като се даде HIGH импулс на S0 и LOW импулс на S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Умен портфейл"); lcd.setCursor (0, 1); lcd.print ("Circuit Digest"); забавяне (2000); lcd.clear (); pinMode (2, OUTPUT); // S0 pinMode (3, OUTPUT); // S1 pinMode (11, OUTPUT); // S2 pinMode (12, OUTPUT); // S3 pinMode (13, INPUT); // OUT digitalWrite (2, HIGH); digitalWrite (3, LOW); }
Вътре в безкраен контур () прочетете всички изходи за данни от сензорите. Изходът от IR сензора може да бъде намерен чрез четене на щифт A0 и изходните честоти на цветовете могат да бъдат намерени чрез извикване на отделните функции, написани като червено (), синьо () и зелено (). След това отпечатайте всички върху серийния монитор. Това е необходимо, когато трябва да добавим нова валута към нашия проект.
int сензор = digitalRead (A0); int red1 = red (); int blue1 = blue (); int green1 = green (); Serial.println (червен1); Serial.println (син1); Serial.println (зелен1); Serial.println ("-----------------------------");
След това напишете всички условия, за да проверите изходната честота на цветния сензор с референтната честота, която сме задали преди. Ако съвпада, тогава приспада посочената сума от баланса на портфейла.
ако (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } иначе ако (сензор == НИСКО && a == 1) {a = 0; ако (общо> = 10) {lcd.setCursor (0, 1); lcd.print ("10 рупии !!!"); общо = общо-10; забавяне (1500); lcd.clear (); }}
Тук сме задали условията само за 10 рупии и 50 рупии Бележка цвят, можете да зададете повече условия, за да откриете повече не. на валутни банкноти.
Забележка: Честотата на изхода може да е различна във вашия случай в зависимост от външното осветление и настройката на сензора. Затова се препоръчва да проверите изходната честота на вашата валута и да зададете съответно референтната стойност.
Кодът по-долу ще покаже наличното салдо в портфейла на LCD дисплея 16x2.
lcd.setCursor (0, 0); lcd.print ("Общо Bal:"); lcd.setCursor (11, 0); lcd.print (общо); забавяне (1000);
Следващата функция ще получи честотата на изходния цвят на червеното съдържание във валутата. По същия начин можем да напишем други функции, за да получим стойност за съдържанието на син и зелен цвят.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); честота = pulseIn (OutPut, LOW); честота на връщане; }
Така че по този начин може да се изгради лесно базиран на Arduino брояч на пари с помощта на няколко компонента. Можем да го модифицираме допълнително, като интегрираме някаква обработка на изображения и камера, за да открием валутата, използвайки изображението, по този начин тя ще бъде по-точна и ще може да открие всяка валута.