- Необходимые компоненты
- Создание структуры для сортировщика монет Arduino
- Принципиальная электрическая схема
- Программирование Arduino
- Работа счетчика монет Arduino
Ранее мы создали счетную машину для бумажных денег на базе Arduino с использованием цветового датчика. Сейчас в этом проекте мы создаем счетную машину Arduino с использованием ИК-датчиков. Этот автомат считает и сортирует монеты в разных секциях с помощью инфракрасного датчика. Здесь размещены ИК-датчики для считывания различных монет, а Arduino UNO используется для обработки данных и отображения общего значения счета на ЖК-дисплее 16x2.
Необходимые компоненты
- Arduino UNO
- ИК датчик
- Макетная плата
- 16 * 2 буквенно-цифровой ЖК-дисплей
- Модуль I2C для буквенно-цифрового ЖК-дисплея 16x2 (1602)
- Подключение проводов
Создание структуры для сортировщика монет Arduino
Шаг 1: Возьмите картонный лист и отметьте монеты разных размеров, как показано на рисунке ниже. Затем аккуратно нарежьте отмеченные порции. Нарезать эти порции нужно аккуратно; в противном случае проект может работать некорректно.
Шаг 2: Поместите вышеуказанное расположение в наклонную конструкцию, как показано на изображении ниже. После сборки проверьте ее, вставив разные монеты на склон, чтобы убедиться, что все работает идеально. Если монета не вставляется должным образом, слегка увеличьте размер отверстия в соответствии с монетой и повторите проверку до успешного выполнения операции.
Шаг 3: Поместите ИК-датчики рядом с выходом отдельных монет. Очень важно правильно разместить датчики и откалибровать их с помощью потенциометра. Затем снова вставьте монеты, чтобы проверить работу датчика. Узнайте больше о схеме ИК-датчика здесь.
Принципиальная электрическая схема
Ниже представлена принципиальная схема счетной машины Arduino:
Здесь ИК-датчики размещаются на разных выходных путях машины для сортировки монет для обнаружения монет. Когда монета вставляется в этот счетчик монет Arduino, она входит в выделенный путь в соответствии с механической конструкцией, и соответствующий ИК-датчик определяет монету и выдает ВЫСОКОЕ выходное значение на Arduino, которое может быть считано аналоговыми выводами Arduino. ИК-датчик, который показывает ВЫСОКОЕ значение, определяет стоимость монеты, например 2/5/10 рупий.
Здесь буквенно-цифровой ЖК-дисплей 16x2 соединен с Arduino с помощью модуля I2C для отображения количества монет, вставленных в коробку. Этот ЖК-дисплей также может быть подключен к Arduino напрямую без использования модуля I2C, но для этого требуется большее количество подключений. Поэтому для упрощения используется модуль I2C вместе с ЖК-дисплеем, который использует только 2 контакта, то есть SCL, SDA для подключения ЖК-дисплея к Arduino. Для питания Arduino используется адаптер AC-DC 12 В постоянного тока, 1 AMP, который можно напрямую подключить к разъему питания Arduino.
После небольшой доработки полная настройка сортировщика монет на базе Arduino будет выглядеть, как показано ниже:
Программирование Arduino
После успешного подключения оборудования пришло время запрограммировать Arduino. Полный код для Arduino приведен в нижней части этого руководства. Пошаговое объяснение кода приведено ниже:
Первое, что нужно сделать в программе, - это включить все необходимые библиотеки. В моем случае я включил библиотеку « LiquidCrystal_I2C.h» для использования интерфейса I2C ЖК-дисплея и « Wire.h » для использования функций I2C на Arduino.
#включают
Внутри setup () команды ЖК-дисплея написаны для отображения приветственного сообщения на ЖК-дисплее.
lcd.init (); lcd.backlight (); lcd.setCursor (0,0); lcd.print ("НА ОСНОВЕ АРДУИНО"); lcd.setCursor (0,1); lcd.print («СОРТИРОВКА МОНЕТ»); задержка (2000); lcd.clear ();
Внутри loop () функция analogRead используется для чтения значений инфракрасного датчика из разных аналоговых каналов Arduino и сохранения их в разных переменных.
int s1 = аналоговое чтение (A0); int s2 = аналоговое чтение (A1); int s3 = аналоговое чтение (A2);
Затем код ниже написан для определения монет и увеличения значений счетчика монет. Здесь используется значение флага f1, чтобы избежать многократного подсчета монет.
если (s1> = 200 && f1 == 0) {f1 = 1; } иначе, если (s1 <200 && f1 == 1) {f1 = 0; c1 ++; }
Наконец, значения счетчика отображаются на ЖК-дисплее с помощью команд ниже.
lcd.setCursor (0,0); lcd.print («RS10 RS2 RS5»); lcd.setCursor (1,1); lcd.print (c1); lcd.setCursor (7,1); lcd.print (c2); lcd.setCursor (14,1); lcd.print (c3);
Работа счетчика монет Arduino
После полной настройки и загрузки кода включите источник питания 12 В постоянного тока. Сначала на ЖК-дисплее отобразится приветственное сообщение, а через несколько секунд на ЖК-дисплее отобразится экран с количеством всех доступных монет. Вначале он будет показывать ноль, поскольку мы еще не вставили монеты.
Затем вставьте любую монету (2/5/10 рупий) в верхнюю часть автомата, где написано « Вставьте монету ». Теперь вы увидите, что значение счетчика монет должно быть обновлено на ЖК-дисплее. Затем вставьте несколько монет разного достоинства и проверьте количество соответствующих монет на ЖК-дисплее.
Полный код вместе с видео приведен ниже.