Arduino и купюроприёмник NV-9

| 17.03.2015

Всем привет! Поведаю, как я соединил купюроприемник NV-9 фирмы ITL и Arduino. Вернее как получать номиналы принимаемых купюроприемником купюр, на экране ноутбука.

Обозначения сокращений, используемых в статье, будут указаны в конце статьи. 

Узнал я об Ардуине около года назад, то есть довольно поздно от момента её дебюта примерно в 2005 году.

Кофе автомат мк-01С вендинговыми автоматами познакомился в ноябре 2012 года, когда купил 5 кофейников МК-01. Украинский производитель «smartmachines» выпускает эти кофейники по образу и подобию Итальянских Сагом Н5. И делает это довольно коряво и примитивно, но как первый автомат — вполне сойдёт=).

Тогда ещё я задумал соорудить свой вендинговый автомат, вернее автоматы по доступной цене и с понятным управлением. Как например, Итальянский пиццемат «LETS PIZZA» стоимостью 25 000 евро. У нас по такой цене 2х комнатную квартиру можно купить, не далеко от центра. Ведь такой автомат будет весьма востребован, к примеру, в учебном заведении, и удешевить его можно как минимум в 3 раза.

Знания мои в схемотехнике и программировании довольно примитивные, как мне кажется по сравнению с производителями автоматов и вообще промышленниками. Украинские кофейники, правда научили кое чему. Некоторые, я перебирал до гаечки, в том числе и купюрник и монетник.

Но вернёмся к нашим Ардуинам.

Для начала, я решил соорудить не большой снэковый автомат на 4 или 6 позиций. Потом докрутить его до нормальной скорости работы и переходить к более сложным проектам. По началу, я хотел взять обычный кондомат и на его основе сделать снэк. Но кондоматы идут только с купюрником, и без выдачи сдачи, а не понимая, его электронику, будет сложно добавить ему монетник или хоппер.

мотиваторы ардуиноМотивации добавил мне чел под ником «lehha» на Хабре. А вернее его снековый автомат на основе Ардуины. Правда у него большую часть мозгов составляет системник внутри автомата, что для меня не есть айс. А так же Виктор Петин  с его книгой «Проекты с использованием контроллера Arduino (Электроника) 2014» скачать книгу можно по ссылке.

И вот я решился. Выбирать пришлось между UNO и Mega. Но в итоге остановился на Уне, так как это базовая модели и поддерживает наибольшее количество библиотек и скетчей.

Именно в книге Виктора Петина  я наткнулся на тему: «Как соединить arduino и купюроприемник ICT A7». Такой купюрник быстро и по приемлемой цене найти не удалось, зато у меня был купюрник NV-9 фирмы ITL. Оба они поддерживают протокол MDB. Подключение у купюрника ICT A7 с помощью фишки 3 на 3, а у NV-9 16ти пиновое подключение. Вот  его расшифровка:

распиновка купюроприемника NV-9

Я подключил питание на 15 и 16 ноги, от компьютерного БП (12V) это жёлтый провод и черный — земля. Далее подключил 1 ногу купюрника к ардуине в пин D2, вообще можно к любому D пину. Так же землю компьютерного БП соединил с землёй ардуины, и первый пин купюрника подтянул через резистор 4,7kOm к +5V Ардуины.

подключение ардуино купюроприемник

Скетч, взял из книги Петина В.А.: с некоторыми доработками для купюрника NV9

const int moneyPin=2;
const int zapretaPin = 5;
const int zapretbPin = 6;
const int zapretcPin = 7;
const int zapretdPin = 8;
const int ledPin = 12;
int money=0;

unsigned long timeAllPulse=3000; // макс. время приема купюры
unsigned long timeCount=0;

void setup()
{
pinMode(zapretaPin, OUTPUT);
pinMode(zapretbPin, OUTPUT);
pinMode(zapretcPin, OUTPUT);
pinMode(zapretdPin, OUTPUT);
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
pinMode(moneyPin,INPUT);
attachInterrupt(0,count_pulse,FALLING);
Serial.println(«ready»);
}

void loop()
{
digitalWrite(zapretaPin, LOW);
digitalWrite(zapretbPin, LOW);
digitalWrite(zapretcPin, LOW);
digitalWrite(zapretdPin, LOW);
// прошло максимальное время приема купюры?
if(money>0 && (millis()-timeCount)>timeAllPulse)
{
Serial.print(«Money= «);
Serial.println(money);
money=0;
}
}
// обработка прерывания — получить кол-во импульсов
//
void count_pulse()
{
detachInterrupt(0);
money++;
if(money==1)
timeCount=millis();
attachInterrupt(0,count_pulse,FALLING);
}

Загрузив стоковый вариант скетча, купюрник не заработал сразу. Оказалось, что 5,6,7,8 ноги купюрника отвечают за запрет купюр по одному из 4 каналов. Каждый канал отвечает за один из номиналов купюр. Подсоединив, сначала 5 ногу купюрника к ардуине и подав на неё логический 0 или LOW, купюроприемник заработал, но принимал только одну из возможных купюр. Следовательно, я подключил все с 5 по 8 ногу и подал на них сигнал LOW. Назвал их как zapretA, zapretB, zapretC, zapretD

digitalWrite(zapretaPin, LOW);
digitalWrite(zapretbPin, LOW);
digitalWrite(zapretcPin, LOW);
digitalWrite(zapretdPin, LOW);

После этого купюроприемник стал принимать все купюры, которые были в его файле номиналов (1,2,5,10 грн.)

При открытии Окна терминала в Ардуине (сочетание клавиш Ctrl+Shift+M) сначала Ардуина отдает сигнал готовности (ready) и далее после приёма каждой купюры указывает её номинал в окне терминала, как, например, money=5, что значит принята купюра 5 гривен. В каждой новой строчке указывается новая купюра

окно терминала ардуиноДалее, нужно их суммировать. Для этого была введена переменная (sum), которая суммировала номиналы и выводила результат в окно терминала.

суммирование банкнот ардуино

Money заменил на Kredit чтобы ну вообще, как в торговом автомате =) Скетч прилагается:

const int moneyPin=2;
const int zapretaPin = 5;
const int zapretbPin = 6;
const int zapretcPin = 7;
const int zapretdPin = 8;
const int ledPin = 12;
int money=0;
int sum=0;

unsigned long timeAllPulse1=3000; // макс. время приема купюры
unsigned long timeCount1=0;

void setup()
{
pinMode(zapretaPin, OUTPUT);
pinMode(zapretbPin, OUTPUT);
pinMode(zapretcPin, OUTPUT);
pinMode(zapretdPin, OUTPUT);
pinMode(moneyPin,INPUT);
Serial.begin(9600);
Serial.println(«ready»);
attachInterrupt(0,count_pulse1,FALLING);

}

void loop()
{
digitalWrite(zapretaPin, LOW);
digitalWrite(zapretbPin, LOW);
digitalWrite(zapretcPin, LOW);
digitalWrite(zapretdPin, LOW);
// прошло максимальное время приема купюры?
if(money>0 && (millis()-timeCount1)>timeAllPulse1)
{
sum+=money;
money=0;
Serial.print(«Kredit= «);
Serial.println(sum);
}
}
// обработка прерывания — получить кол-во импульсов
//
void count_pulse1()
{
detachInterrupt(0);
money++;
if(money==1)
timeCount1=millis();
attachInterrupt(0,count_pulse1,FALLING);
}

Сейчас подсоединяю хоппер для выдачи сдачи одним номиналом монет. Кстати делать собирать его собираюсь на основе схемы, увиденной на YouTube по запросу «Homemade coin hopper on Arduino (for Mame)»

Кто в теме, отписывайтесь в комментарии.

Как обещал — сокращения:

ноут — ноутбук,

купюрник — купюроприемник,

монетник — монетоприемник,

Ардуина — Arduino Uno,

Скетч — программа на языке Processing для Ардуины,

Кофейник — кофейный автомат

БП — блок питания

Хоппер — устройство выдачи сдачи монетами одного или 2 номиналов.

PS В скетчах мелькает(ledPin), сначала пропысывал команду, если сумма внесенного кредита больше 5, — поморгать светодиодом, но потом вырезал, оказывается не все ))

PS Сильно не пинайте — я только учусь!

Arduino_купюроприемник_nv-9

 

совсем плохоплохонормальнохорошосупер (Оцените статью)
Загрузка...

Комментариев: 13 на “Arduino и купюроприёмник NV-9

  1. Артём

    Чем ты к компу NV-9 цеплял? у меня есть сама железка (с неизвестной прошивкой) и есть кабель 16pin-16pin
    больше ничего. Попытался по твоей схеме подключить — моргает желтый светодиод и все на том.
    Спасибо за ответ

    Reply
    1. admin Post author

      От компа до ардуины идет ардуиновский ЮСБ кабель (синий на фото).
      16 пиновый кабель не пойдет. Нужно попиново подключать.
      Первый пин на купюрнике это сигнальный провод, подключается в D2 ардуины, он же через резистор подтягивается к +5 вольт ардуины.
      15 и 16 пины на купюрнике (обозначены там цифрами) это питание 12 вольт.
      5,6,7,8 пины, которые отвечают за запрет приема по определенному каналу, можно скрутить вместе и подключить в один пин ардуины, например D5. И только для D5 и писать const int zapretaPin = 5; а остальные стереть.

      PS желтый LED-индикатор указывает на несоответствие заданной спецификации подачи или источника питания. Проще говоря, питание купюрника отличается от 12 вольт. А должно быть ровно 12 +- 0,2 вольта.

      Reply
  2. Сергей

    Огромное спасибо за статью! Все получилось. Купюроприемник NV-10 USB. Предварительно купюрник перевел в импульсный режим (Pulse, PL1) с помощью утилиты ITL Validator Manager. Теперь буду пытаться изменить код, чтобы дополнительно вывести сумму на внешний однострочный или двустрочный экран.

    Reply
  3. Григорий

    Доброго дня, случайно наткнулся на вашу статью, очень заинтерисовала, можем ли списаться по скайпу или почте?

    Reply
  4. Олег

    автор-красавчик, сейчас ты своей статьей погубил миллионы человеческих жизней, так как сейчас все более менее понимающие в ардуино, заменят своих работников в магазинах на твой образец))))
    Развивай тему, я буду за ней следить, хочу сделать жене шкаф размером 1000х2000х200мм, в котором она будет продавать свои ручные поделки и чтобы не ставить продавца и не арендовать дорогие квадраты в ТЦ, используем любую свободную стенку для аппарата.
    Искренне надеюсь что запилишь вывод инфы на 2-4 строчный LCD дисплей, и покажешь как на нажатие клавиатуры реагируют сервоприводы, которые будут скидывать в лоток товар, если не ты, то я через полгода думаю сам допилю)))) Спасибо тебе, дай бог тебе всего всего и побольше!

    Reply
  5. Арсений

    Здравствуйте, хочу повернуть нечто подобное) возможно ли подключить ардуину к bv20?) Просто для меня nv9 дороговат)

    Reply
    1. admin Post author

      Здравствуйте. Думаю возможно. Нужно найти распиновку выходов. 2 пина питание, 1 дата и пины запрета приема (если есть). Подключить по вышеуказанной схеме ( к пульсовом протоколе).

      Reply
  6. Владимир

    Здравствуйте. Подключил по Вашей схеме купюроприемник NV7 почемуто купюры не принимает, а точнее както не стабильно работает место приема денег, т.е оно не горит красным а иногда моргает и в момент моргания начинает затягивать купюру но потом практически сразу выплевывает. Не подскажие в чем может быть дело? Заранее благодарен. Блок питания на 2А у меня если что.

    Reply
    1. Silatoka

      На купюрнике сверху, где светодиоды 3 шт. углом стоят. Там рядом 4 пина переключения протоколов. Поставьте пульсовый

      Reply
  7. Владимир

    Поставил как написано в документации и на купюрнике 1-3 вниз 4- вверх. Может дело в самом купюрнике?

    Reply
    1. admin Post author

      Возможно. Может зависеть от прошивки.
      Или на крайняк купюрник просто неисправен.
      У меня такие симптомы были, когда протокол неправильно установлен был. Мигает и в момент свечения ЛЕДа тянет купюру и сразу же выбрасывает

      Reply
  8. Владимир

    а где можно взять прошивку для NV7 под рубли и калибровочную бумагу(не знаю как правильно называется)

    Reply

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *