Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Удаленная работа
Помощь проекту

Подключение монетоприемника к Arduino

Есть идея создать робота-бармена, делающего коктейли, понимающего голосовые команды. В статье рассмотрено создание блока приема денег, из монетоприемника и 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);
}


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


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

Подключение телефонной линии к звуковой карте
Сплитер (подключение 4-х мониторов)
ПОДКЛЮЧЕНИЕ ТРЕХФАЗНЫХ ПОТРЕБИТЕЛЕЙ К ОДНОФАЗНОЙ СЕТИ
Подключение монитора "Электроника 32 ВТЦ-202" к компьютеру семейства IBM.
Светодиодный куб 5х5х5 на Arduino
Подключение PS/2 клавиатуры к Arduino
Пробуждение ПК по сети на Arduino
Запись/чтение на SD-карту с Arduino
Подключение I2C EEPROM к Arduino

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

Arduino


Аудио


В Вашу мастерскую


Видео


Для автомобиля


Для дома и быта


Для начинающих


Зарядные устройства


Измерительные приборы


Источники питания


Компьютер


Медицина и здоровье


Микроконтроллеры


Музыкантам


Опасные, но интересные конструкции


Охранные устройства


Программаторы


Радио и связь


Радиоуправление моделями


Световые эффекты


Связь по проводам и не только...


Телевидение


Телефония


Узлы цифровой электроники


Фототехника


Шпионская техника



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




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

Графический семиполосный эквалайзер-радуга на Arduino Nano и MSGEQ7

Часы реального времени для Arduino

Старинные часы-метеостанция

Блок питания для Arduino из ATX

ATX блок питания управляемый Arduino

Arduino своими руками с USB портом

Подключение PS/2 клавиатуры к Arduino

Пробуждение ПК по сети на Arduino

Запись/чтение на SD-карту с Arduino

Подключение I2C EEPROM к Arduino



© 2003—2017 «KAZUS.RU - Электронный портал»