Подключаем к Arduino купюроприёмник NV-9 ,вендинговый автомат

Для начала, я решил соорудить не большой снэковый автомат на 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 Ардуины.

Купить платы ардуино на Алиэкспресс 

  1. Плата Ардуино Uno R3 (с микропроцессором Atmega328)

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


Скетч, взял из книги Петина В.А.: с некоторыми доработками для купюрника 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);
}

Так же не забываем о экономии при покупке товаров на Алиєкспресс с помощью кэшбэка 

Для веб администраторов и владельцев пабликов  главная страница ePN

Для пользователей покупающих на Алиэкспресс с быстрым выводом % главная страница ePN Cashback

Удобный плагин кэшбеэка браузерный плагин ePN Cashback

  • Подключаем к Arduino купюроприёмник NV-9 ,вендинговый автомат

Похожие статьи

Автономная "смарт" машина на Arduino + код

Автономная "смарт" машина на Arduino + код

Автономная "смарт" машина на Arduino

Основная идея проекта - создать недорогую автономную четырехколесную подвижную платформу. В проекте используется логика на базе Arduino, недорогая радиоуправляемая машина, источник питания 9 вольт. В качестве датчиков обратной связи используется инфракрасный передатчик.

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

Поворотный стол с фоторезисторами на Arduino

Поворотный стол с фоторезисторами на Arduino

В статье приведена пошаговая инструкция по разработке вращающегося стола на Arduino с реализацией обратной связи по положению с помощью фоторезисторов.

Проект будет интересен как новичкам в Arduino так и людям с опытом. Уверены, что начинающие Ардуинщики откроют для себя что-то новое и при этом разработают реальную конструкцию вращающегося стола. В проекте использованы комплектующие от Adafruit, но вы смело можете заменить их на китайские  аналоги от других производителей.

 Подключение OLED I2C дисплея с размером экрана 0,96″ и разрешением 128*64 точек к плате Arduino UNO.

Подключение OLED I2C дисплея с размером экрана 0,96″ и разрешением 128*64 точек к плате Arduino UNO.

Сегодня мы рассмотрим подключение OLED I2C дисплея с размером экрана 0,96″ и разрешением 128*64 точек к плате Arduino UNO.

Обзор пальчиковых AA аккумуляторов Li polymer 1 5 v 1250ma + тест ёмкости !

Обзор пальчиковых AA аккумуляторов Li polymer 1 5 v 1250ma + тест ёмкости !

В данном видео я протестирую пальчиковые Li-polymer аккумуляторы , сделаю тесты емкости на заряд и разряд . Так же расскажу как можно провести такие тесты без спец. оборудования и зарядно-разнядных устройство ! 

Теги: Подключаем, Arduino, купюроприёмник, NV-9, вендинговый, автомат