- Необхідні компоненти:
- TCS3200 Колірний датчик працює
- Розтискач датчика кольору TCS3200:
- Кругова діаграма
- Пояснення коду
У цьому проекті ми будемо працювати над інноваційною ідеєю проекту arduino, де ми зможемо підрахувати купюри у паперовій валюті та обчислити їх кількість, визначаючи паперову валюту за допомогою Color Sensor та Arduino. Кольоровий датчик TCS230 буде використовуватися для виявлення банкнот, а Arduino UNO для обробки даних та відображення залишку на РК-дисплеї 16x2.
Необхідні компоненти:
- Arduino UNO
- TCS230 Колірний датчик
- ІЧ-датчик
- Макет
- 16 * 2 буквено-цифровий РК-дисплей
- Підключення проводів
TCS3200 Колірний датчик працює
Кольоровий датчик TCS3200 використовується для визначення широкого діапазону кольорів. Раніше ми поєднали кольоровий датчик TCS3200 з Arduino та Raspberry pi, а також створили кілька корисних проектів, таких як кольорова сортувальна машина.
Датчик TCS230 має вбудовані інфрачервоні світлодіоди, які використовуються для освітлення об’єкта, колір якого слід виявити. Це гарантує відсутність впливу зовнішнього навколишнього світла на об'єкт. Цей датчик зчитує фотодіод масиву 8 * 8, який складається з 16 фотодіодів з червоними фільтрами, 16 із синіми фільтрами, 16 із зеленими фільтрами та 16 фотодіодів без будь-якого фільтра. Кожен із масивів датчиків у цих трьох масивах вибирається окремо залежно від вимог. Звідси він відомий як програмований датчик. Модуль може бути призначений для відчуття конкретного кольору та залишення інших. Він містить фільтри для цієї мети відбору. Існує четвертий режим, який називається " без режиму фільтра", в якому датчик виявляє біле світло.
Вихідний сигнал кольорового датчика TCS230 являє собою квадратну хвилю з 50% робочим циклом, і його частота пропорційна інтенсивності світла обраного фільтра.
Розтискач датчика кольору TCS3200:
VDD - штифт живлення напруги датчика. Поставляється з постійним струмом 5 В.
GND - опорний штифт заземлення кольорового датчика
S0, S1 - входи вибору масштабування вихідної частоти
S2, S3 - входи для вибору типу фотодіодів
OUT - вихідний штифт кольорового датчика
OE- Увімкнути штифт для вихідної частоти
У цьому проекті ми також використовували ІЧ-датчик, роботу якого можна зрозуміти за наступним посиланням.
Кругова діаграма
Нижче наведена принципова схема для лічильника грошей Arduino:
Тут я зробив невелику структуру, як машина для перекачування валют в POS, використовуючи картон. У цій структурі кольоровий датчик та ІЧ-датчик закріплені на картоні, як показано на малюнку нижче.
Тут ІЧ-датчик використовується для того, щоб відчути наявність валюти всередині слота, і якщо є купюра, то кольоровий датчик виявить колір Ноти і надішле значення кольору в Arduino. А Arduino далі обчислює вартість валюти виходячи з кольору купюри.
Пояснення коду
Повний код разом із демонстраційним відео наведено в кінці статті. Тут покрокове пояснення повного коду наведено нижче.
По-перше, включіть усі бібліотеки в програму. Тут нам потрібна лише РК-бібліотека, яка буде включена в програму. Потім оголосіть усі змінні, що використовуються в коді.
#включати
Усередині налаштування () роздрукуйте привітальне повідомлення на РК-дисплеї та визначте всі напрямки даних цифрових штифтів, що використовуються в цьому проекті. Далі встановіть масштабування вихідної частоти кольорового датчика, в моєму випадку воно встановлюється на 20%, що можна встановити, надаючи ВИСОКИЙ імпульс на S0 і НИЗКИЙ імпульс на 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); }
Усередині нескінченного циклу () зчитуйте всі дані, що надходять з датчиків. Вихід ІЧ-датчика можна знайти, зчитуючи штифт A0, а вихідні частоти кольорів можна знайти, викликаючи окремі функції, записані як червоний (), синій () та зелений (). Потім роздрукуйте їх на послідовному моніторі. Це потрібно, коли нам потрібно додати нову валюту до нашого проекту.
int sensor = 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; if (всього> = 10) {lcd.setCursor (0, 1); lcd.print ("10 рупій !!!"); всього = всього-10; затримка (1500); lcd.clear (); }}
Тут ми встановили умови лише для кольору 10 рупій та 50 рупій, ви можете встановити більше умов, щоб виявити більше ні. валютних купюр.
Примітка: Вихідна частота може відрізнятися у вашому випадку залежно від зовнішнього освітлення та налаштування датчика. Тому рекомендується перевірити вихідну частоту вашої валюти та встановити відповідне значення відповідно.
Наведений нижче код покаже наявний баланс у гаманці на РК-дисплеї 16x2.
lcd.setCursor (0, 0); lcd.print ("Total Bal:"); lcd.setCursor (11, 0); lcd.print (всього); затримка (1000);
Наступна функція отримає вихідну частоту кольорів червоного вмісту у валюті. Подібним чином ми можемо писати інші функції, щоб отримати значення для вмісту синього та зеленого кольорів.
int red () {digitalWrite (11, LOW); digitalWrite (12, LOW); частота = pulseIn (OutPut, LOW); частота повернення; }
Отже, ось як лічильник грошей на базі Arduino можна легко побудувати, використовуючи кілька компонентів. Ми можемо додатково модифікувати його, інтегрувавши деяку обробку зображень та камеру для виявлення валюти за допомогою зображення, таким чином воно буде більш точним і зможе виявити будь-яку валюту.