- Необходими компоненти
- Създаване на структура за сортиране на монети Arduino
- Електрическа схема
- Програмиране на Arduino
- Работа на брояч на монети Arduino
Преди това създадохме машина за броене на валута, базирана на Arduino, използваща цветен сензор. Сега в този проект изграждаме машина за броене на Arduino, използваща IR сензори. Тази машина брои и сортира монетите в различни секции с помощта на инфрачервен сензор. Тук е направено споразумение, при което се поставят IR сензори, които да разпознават различни монети, а Arduino UNO се използва за обработка на данните и показва общата стойност на броене на 16x2 LCD.
Необходими компоненти
- Arduino UNO
- IR сензор
- Макет
- 16 * 2 буквено-цифров LCD
- I2C модул за 16x2 (1602) буквено-цифров LCD
- Свързване на проводници
Създаване на структура за сортиране на монети Arduino
Стъпка 1: Вземете картонен лист и маркирайте за различни размери монети, както е показано на фигурата по-долу. След това внимателно изрежете маркираните порции. Разрязването на тези порции трябва да се извършва точно; в противен случай проектът може да не работи перфектно.
Стъпка 2: Поставете горната подредба в структура на наклон, както е показано на изображението по-долу. След като направите споразумението, проверете го, като поставите различни монети на склона, за да сте сигурни, че устройството работи перфектно. Ако монетата не се поставя правилно, след това леко увеличете размера на отвора според монетата и проверете отново до успешна операция.
Стъпка 3: Поставете IR сензорите близо до изходния път на отделни монети. Много е важно да поставите правилно сензорите и да ги калибрирате с помощта на техния потенциометър. След това отново поставете монетите, за да проверите работата на сензора. Научете повече за схемата на IR сензора тук.
Електрическа схема
По-долу е схемата на веригата за броеща машина Arduino:
Тук IR сензорите се поставят на различни изходни пътища на машината за сортиране на монети, за да усетят монетите. Когато монета е вмъкната в този брояч на монети Arduino, тя влиза в специалната пътека според механичния дизайн и съответният IR сензор усеща монетата и дава ВИСОКА изходна стойност на Arduino, която може да се прочете от аналоговите щифтове на Arduino. IR сензорът, който дава ВИСОКА стойност, решава стойността на монетата като рупии 2/5/10.
Тук 16x2 буквено-цифров LCD е свързан с Arduino с помощта на I2C модул, за да покаже броя на монетите, поставени в кутията. Този LCD може също да бъде свързан директно с Arduino, без да се използва модула I2C, но това изисква повече брой връзки. За да бъде опростено, заедно с LCD се използва I2C модул, който използва само 2 щифта, т.е. SCL, SDA за свързване на LCD с Arduino. За захранване на Arduino се използва 12VDC, 1 AMP AC-DC адаптер, който може да бъде директно свързан към захранващия жак на Arduino.
След малко докосване, пълната настройка за сортиращ монети, базирана на Arduino, ще изглежда по-долу:
Програмиране на Arduino
След успешни хардуерни връзки, сега е време да програмирате Arduino. Пълният код за Arduino е даден в долната част на този урок. Поетапното обяснение на кода е дадено по-долу:
Първото нещо, което трябва да направите в програмата, е да включите всички необходими библиотеки. Тук в моя случай включих библиотека “ LiquidCrystal_I2C.h” за използване на I2C интерфейса на LCD и “ Wire.h ” за използване на I2C функционалност на Arduino.
#include
Вътре в настройката () се изписват LCD команди за показване на приветствено съобщение на LCD.
lcd.init (); lcd. backlight (); lcd.setCursor (0,0); lcd.print ("ARDUINO BASED"); 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, като се използват командите по-долу.
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
След пълната настройка и качването на кода, включете 12V DC захранване. Първо, на LCD дисплея ще се покаже приветствено съобщение и след няколко секунди на LCD ще се покаже екран с броя на всички налични монети. В началото ще показва нула, тъй като все още не сме вмъкнали монети.
След това поставете всяка монета (Rs. 2/5/10) в горната част на машината, където е написано “ Insert Coin ”. Сега ще видите стойността на броя на монетите трябва да се актуализира на LCD. След това поставете множество монети с различни стойности и проверете броя на съответните монети на LCD.
Пълният код заедно с видео е даден по-долу.