- Необхідні компоненти
- Створення структури для сортувача монет 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 використовується адаптер змінного струму постійного струму 12 В постійного струму, 1 AMP, який можна безпосередньо підключити до гнізда живлення Arduino.
Після невеликого доопрацювання повне налаштування сортувальника монет на базі Arduino буде виглядати нижче:
Програмування Arduino
Після успішного апаратного підключення настав час запрограмувати Arduino. Повний код Arduino наведено в нижній частині цього посібника. Покрокове пояснення коду наведено нижче:
Перше, що слід зробити в програмі, - це включити всі необхідні бібліотеки. Тут у своєму випадку я включив бібліотеку “ LiquidCrystal_I2C.h” для використання інтерфейсу I2C РК-дисплея та “ Wire.h ” для використання функціональності I2C на Arduino.
#включати
Усередині налаштування () для написання вітального повідомлення на РК-дисплеї написані команди РК-дисплея.
lcd.init (); lcd.backlight (); lcd.setCursor (0,0); lcd.print ("НА ОСНОВІ ARDUINO"); lcd.setCursor (0,1); lcd.print ("СОРТУВАННЯ МОНЕТ"); затримка (2000); lcd.clear ();
Усередині циклу () функція analogRead використовується для зчитування значень інфрачервоного датчика з різних аналогових каналів Arduino та збереження їх у різних змінних.
int s1 = analogRead (A0); int s2 = analogRead (A1); int s3 = analogRead (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 В. По-перше, на РК-дисплеї відобразиться привітальне повідомлення, а через кілька секунд на РК-екрані відобразиться екран із кількістю всіх доступних монет. На початку це буде нуль, оскільки ми ще не вставили жодної монети.
Потім вставте будь-яку монету (Rs. 2/5/10) у верхню частину машини, де написано “ Вставити монету ”. Тепер ви побачите, що значення кількості монет має бути оновлене на РК-дисплеї. Потім вставте кілька монет різної вартості та перевірте кількість відповідних монет на РК-дисплеї.
Повний код разом із відео наведено нижче.