Монетоприемник своими руками


Монетоприемник своими руками

Монетоприемник своими руками

Монетоприемник своими руками


Лучшие новости сайта

Есть идея создать робота-бармена, делающего коктейли, понимающего голосовые команды. В статье рассмотрено создание блока приема денег, из монетоприемника и Arduino. Блок осуществляет прием монет (и в перспективе купюр) и отправляет данные о номинале принятой монеты по последовательному порту. Вывод результата осуществляется на дисплей WH1602.
Монетоприемник CH-926 может принять до 6 видов различных монет, диаметром: 15мм 32мм, толщиной 1.2mm 3.8mm.

 


Рабочее напряжение 12В.
Выходной сигнал: импульсный. Частота импульсов устанавливается с помощью трехпозиционного переключателя - fast: 20 мс,medium: 50 мс, slow: 100 мс
На eBay можно по цене приблизительно 800 руб.
Настройка монетоприемника
Включить питание, установить переключатель 1 в позицию NC, переключателем 2 - выбрать нужную скорость обмена (fast, medium, slow)
Нажать одновременно кнопки ADD и MINUS более 3 секунд, отпустить , на индикаторе появится A;
Нажать и отпустить кнопку SET, появится E;
Кнопками ADD, MINUS установить кол-во разных монет для приема (1-6) - я установил 5 - (50 коп,1,2,5,10 руб)
Нажать кнопку SET более 3 секунд
Появилась на дисплее H1 - кол-во экземпляров монеты 1 для калибровки
Кнопками ADD, MINUS установить значение H для первой монеты
Нажать кнопку SET более 3 секунд
Появилась на дисплее P1 - кол-во выдаваемых импульсов при успешном приеме монеты 1 (1-50)
Кнопками ADD, MINUS установить значение импульсов для первой монеты (я выбирал 1 для первой, 2 - для второй, ....., 5 - для пятой)
Нажать кнопку SET более 3 секунд
Появилась на дисплее F1 -точность опознания монеты 1 (1-30) - я выбирал 10
Кнопками ADD, MINUS установить значение F для первой монеты
Нажать кнопку SET более 3 секунд
Повторить для H2-6, P2-6, F2-6
Появится A
Нажать и отпустить кнопку SET, появится E;
Теперь выключаем-включаем монетоприемник
Калибровка монетоприемника
Нажать кнопку SET более 3 секунд
Появилась на дисплее A1 - начинаем опускать в монетоприемник монеты номинала 1 в количестве H1
По загрузке последней монеты начинает мигать A1
Нажать кнопку SET - появится A2
Повторить загрузку монет для номиналов 2-5
Нажать кнопку SET более 3 секунд
Теперь выключаем-включаем монетоприемник
Монетоприемник готов к приему монет. Можем опускать монеты, на дисплее высвечивается количество импульсов. Если монеты какого-то номинала не проходят - повторяем настройку сначала.
Подключение к Arduino
Монетоприемник оснащен кабелем


Подсоединяем красный к 12В, черный к "земле", белый к D3 платы Arduino. Ловить импульсы будем по прерыванию 1.
Подсоединим к Arduino дисплей WH1602, где будет отражаться информация по накопительной сумме.
Схема получается следующей:


Вот скетч для Arduino. Вывод результатов приема монет осуществляется на дисплей WH1602. В первой строке - текущая принятая монета, во второй - накопленная сумма. Прерывание 0 - для подключения в будущем купюроприемника IC V7.

// купюроприемник IC A7 V7
const int moneyPin1=2;
// монетоприемник CH-926
const int moneyPin2=3;
int pulse1=0;
int pulse2=0;
unsigned long timeAllPulse1=2000; // макс. время приема купюры
unsigned long timeAllPulse2=1000; // макс. время приема монеты
unsigned long timeCount1=0;
unsigned long timeCount2=0;
float nominals2[6]={0,0.5,1,2,10,5};
float sum=0.0;
// дисплей WH1602
#include "LiquidCrystal.h"
LiquidCrystal lcd(12,11,7,6,5,4);
void setup()
{
Serial.begin(9600);
pinMode(moneyPin1,INPUT);
pinMode(moneyPin2,INPUT);
//attachInterrupt(0,count_pulse,FALLING);
attachInterrupt(1,count_pulse2,FALLING);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("coin ok!");
}
void loop()
{
// прошло максимальное время приема монеты?
if(pulse2>0 && (millis()-timeCount2)>timeAllPulse2)
{
sum+=nominals2[pulse2];
Serial.println(nominals2[pulse2]);
lcd.clear();
lcd.setCursor(0,0);lcd.print("1=");
lcd.setCursor(2,0);lcd.print(nominals2[pulse2]);
lcd.setCursor(0,1);lcd.print("=");
lcd.setCursor(2,1);lcd.print(sum);
pulse2=0;
}
}
// обработка прерывания монетоприемника - получить кол-во импульсов
//
void count_pulse2()
{
//detachInterrupt(0);
detachInterrupt(1);
pulse2++;
if(pulse2==1)
timeCount2=millis();
//attachInterrupt(0,count_pulse,FALLING);
attachInterrupt(1,count_pulse2,FALLING);
}


Прикрепленные файлы: (1 Кб) 


C этой схемой также часто просматривают:










Главные категории


























Реклама на KAZUS.RU

Последние поступления


Источник: http://kazus.ru/shemes/showpage/0/1225/1.html


Монетоприемник своими руками

Монетоприемник своими руками

Монетоприемник своими руками

Монетоприемник своими руками

Монетоприемник своими руками

Монетоприемник своими руками

Монетоприемник своими руками

Монетоприемник своими руками

Сейчас читают: