- Обязательные компоненты:
- Датчик цвета TCS3200 работает
- Распиновка датчика цвета TCS3200:
- Принципиальная электрическая схема
- Код Пояснение
В этом проекте мы собираемся работать над инновационной идеей проекта Arduino, в котором мы можем подсчитывать бумажные банкноты и рассчитывать их количество, считывая бумажную валюту с помощью датчика цвета и 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 дополнительно вычисляет стоимость валюты на основе цвета банкноты.
Код Пояснение
Полный код и демонстрационное видео приведены в конце статьи. Ниже приводится пошаговое объяснение всего кода.
Во-первых, включите в программу все библиотеки. Здесь нам нужно только включить в программу ЖК-библиотеку. Затем объявите все переменные, используемые в коде.
#включают
Внутри setup () распечатайте приветственное сообщение на ЖК-дисплее и определите все направления данных цифровых выводов, используемых в этом проекте. Затем установите масштабирование выходной частоты датчика цвета, в моем случае оно установлено на 20%, которое можно установить, подав высокий импульс на S0 и низкий импульс на S1.
void setup () {Serial.begin (9600); lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print («Умный кошелек»); lcd.setCursor (0, 1); lcd.print («Электронный дайджест»); задержка (2000); lcd.clear (); pinMode (2, OUTPUT); // S0 pinMode (3, OUTPUT); // S1 pinMode (11, OUTPUT); // S2 pinMode (12, OUTPUT); // S3 pinMode (13, INPUT); // ВЫХОД digitalWrite (2, ВЫСОКИЙ); digitalWrite (3, LOW); }
Внутри бесконечного цикла () считайте все выходные данные с датчиков. Выходной сигнал ИК-датчика можно найти, считывая вывод A0, а выходные цветовые частоты можно найти, вызвав отдельные функции, записанные как красный (), синий () и зеленый (). Затем распечатайте их все на последовательном мониторе. Это необходимо, когда нам нужно добавить новую валюту в наш проект.
int сенсор = digitalRead (A0); int red1 = красный (); int blue1 = синий (); int green1 = зеленый (); Serial.println (красный1); Serial.println (синий1); Serial.println (зеленый1); Serial.println ("-----------------------------");
Далее, написать все условия, чтобы проверить выходную частоту датчика цвета с эталонной частотой, которую мы установили прежде. Если совпадает, то вычитает указанную сумму из баланса кошелька.
if (red1> = 20 && red1 <= 25 && blue1> = 30 && blue1 <= 35 && green1> = 30 && green1 <= 35 && a == 0 && sensor == HIGH) {a = 1; } else if (sensor == LOW && a == 1) {a = 0; если (всего> = 10) {lcd.setCursor (0, 1); lcd.print («10 рупий !!!»); total = total-10; задержка (1500); lcd.clear (); }}
Здесь мы установили только условия для цвета банкноты 10 рупий и 50 рупий, вы можете установить дополнительные условия, чтобы обнаружить больше нет. денежных знаков.
Примечание. Частотный выход может отличаться в вашем случае в зависимости от внешнего освещения и настройки датчика. Поэтому рекомендуется проверить частоту вывода вашей валюты и установить соответствующее контрольное значение.
Приведенный ниже код покажет доступный баланс в кошельке на ЖК-дисплее 16x2.
lcd.setCursor (0, 0); lcd.print ("Итого Бал:"); lcd.setCursor (11, 0); lcd.print (всего); задержка (1000);
Следующая функция получит выходную цветовую частоту красного содержимого в валюте. Точно так же мы можем написать другие функции для получения значения для содержимого синего и зеленого цветов.
int red () {digitalWrite (11, НИЗКИЙ); digitalWrite (12, НИЗКИЙ); частота = pulseIn (OutPut, LOW); частота возврата; }
Вот как можно легко построить счетчик денег на базе Arduino, используя несколько компонентов. Мы можем дополнительно изменить его, интегрировав некоторую обработку изображений и камеру для определения валюты с помощью изображения, таким образом, он будет более точным и сможет обнаруживать любую валюту.