Я почему спрашиваю. У меня с братом есть задумка сделать маленький автомат по продаже разных видов (наверно около 12 продуктов) в основном это будут семечки, драже, что-то сыпучее. весом по 50 и 100 грамм. Хотим естественно удовлетворить покупателя в смысле продаж и конечно же разные способы оплаты.
Выбрали сейчас купюрник А7, монетник думаем какой, тоже надо я так понял в пульсе. И здачу чтоб давал хоть одним номиналом монет. Ключевое, это чтобы клиент пришел, порадовался красоте и купил кулёк семечек, драже в шоколаде или арахис. Такая "Електронная бабка на улице" )))
В Хабре парень написал про автомат, но хитро, ничего про программу и исходную логику, как подключал, что делал. ))) Я понимаю, что бизнес, но я же в Россию не приеду бизнес портить ))) Только в гости к Отцу езжу. )
Ардуино приучиваем сейчас принимать купюры и выводить это всё на экран с приветствием покупателю.
Имеется купюроприемник ICT P-77-P5. Подключаю его к ардуино как описано ранее, тоесть оранж и красный на питание 12в(на данный момент 9в), синий на пин ардуино и через 4.7 кОм к +5в , фиолетовый - земля.
Скетч использовал который дала Аня в 47м сообшении с добавление вывода moneyState в окно терминала.
В итоге: купюропниемник при подключении к сети старается скушать купюру, но не берет её. В терминале СОМ порта постоянно дублируется 1. При отключении купюроприемника единица продолжает дублироваться в бесконечном цикле.
Грешу на переключатели сбоку приемника(описание). Игрался с ними - не помогло. На данный момент питание идет не 12, а 9В, но я не думаю, что могут быть проблемы из-за этого.
Все сделал. В итоге импульсы четко переводятся в сумму и выводятся на экран.
Но есть одна проблема: когда введена какая-то сумма и после чего не производилось никаких действий, с течением времени сумма растет. Тоесть купюроприемник отсылает ложные импульсы. Подключил все правильно, резистор между синим проводом и +5 ардуино стоит.
Вот скетч.
int switchPin = 8; // кнопка для включения заправки
boolean lastButton = LOW;
boolean currentButton = LOW;
const int moneyPin2=2; // купюроприемник
int pulse1=0;
int pulse2=0;
unsigned long timeAllPulse2=2000; // макс. время приема купюры
unsigned long timeCount1=0;
unsigned long timeCount2=0;
float sum=0.0;
// дисплей Goodview LCD JXD0802A YG
// Библиотеки для русского языка
#include <LiquidCrystalRus.h>
#include <LiquidCrystalExt.h>
#include <LineDriver.h>
// Данные с пинов дисплея на ардуино
LiquidCrystalRus lcd(24,22,51,49,47,45);
void setup()
{
pinMode(switchPin, INPUT); // кнопка
Serial.begin(9600);
pinMode(moneyPin2,INPUT);
// включение диспечера прерывай
attachInterrupt(0,count_pulse2,FALLING);
// Вкл дисплея
lcd.begin(16,2);
lcd.clear(); // очистка
lcd.setCursor(6,0); lcd.print("Добро");
lcd.setCursor(4,1); lcd.print("пожаловать!");
}
void loop()
{
currentButton = debounce(lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
sum = 0.0;
lcd.clear(); // очистка
lcd.setCursor(6,0); lcd.print("Спасибо");
lcd.setCursor(3,1); lcd.print("за покупку!");
delay(2000);
lcd.clear(); // очистка
lcd.setCursor(6,0); lcd.print("Добро");
lcd.setCursor(4,1); lcd.print("пожаловать!");
}
lastButton = currentButton;
int kol_im=0;
// прошло максимальное время приема купюры?
if(pulse2>0 && (millis()-timeCount2)>timeAllPulse2)
{
kol_im=pulse2*5; // определение купюры
sum+=kol_im; // суммирование
float litr = sum/20;
Serial.print("sum= ");
Serial.println(sum);
// вывод на дисплей
lcd.clear();
lcd.setCursor(0,0);lcd.print("Введено = ");
lcd.setCursor(10,0);lcd.print(sum);
lcd.setCursor(0,1);lcd.print("Литров = ");
lcd.setCursor(8,1);lcd.print(litr);
pulse2=0;
}
}
// обработка прерывания монетоприемника - получить кол-во импульсов
//
void count_pulse2()
{
//detachInterrupt(0);
detachInterrupt(0);
pulse2++;
if(pulse2==1)
{
timeCount2=millis();
timeCount2=timeCount2-timeAllPulse2;
if (50>timeCount2>99) pulse2=1;
}
//attachInterrupt(0,count_pulse,FALLING);
attachInterrupt(0,count_pulse2,FALLING);
}
//
boolean debounce(boolean last)
{
boolean current = digitalRead(switchPin);
if (last != current)
{
delay(5);
current = digitalRead(switchPin);
}
return current;
}
Вообще если по уму делать то и диодная сборка не помешает. А так можно и один резистор к +5 притянуть и да, в 4,7кОм (странно что ловит что то - не пробовал увеличивать?). Можно простой RC фильтр - сначала 100 Ом, потом 4,7кОм к +5, а 0,1 мкФ на землю.
Увеличивать не пробовал. Думаю, и 4.7 должно хватать для помех.
Счетч проверял, там не должно быть обнулений, т.к. не происходит никаких действий после ввода. Если они происходят, то естественно все обнуляется. Притом интервалы бывают разные. Порой минута проходит и добавляет пару импульсов. Бывает и по часу стоит - нормально. Раз оставил и за 40 мин - набежало 1700грн))
На пару дней я это отложу. Куплю кондеры, захвачу еще пару транзисторов, может подключу по схеме червячка.
Всем привет. Приобрел монетник EU-2. На основе ваших сообщений собрал схему, написал скетч. Все работает. Огромное спасибо.
Но вот такой вопрос. На отлов импульсов на одну монету/купюру мы выделяем допустим 1000мкс, за это время шустрый покупатель может вбросить и 2е монеты. Естественно результат по количеству импульсов будет ложным.
В общем вопрос- кто как борется с этой проблемой?
Пробовал использовать inhibit через оптопару. Работает без отлова импульсов. Только начинаю ловить импульсы и монетник перестает принимать монеты. Может где ошибка в коде.
Я подключил свой с добавлением еще резистора на 100 Ом и кондера на 0,1 мкФ. Сейчас все нормально, никаких помех нет. Но вот когда силовой провод рядом, то канешно валят помехи только так, и ничего не помогает.
не мкс конечно. Опечатался.
Во всех примерах задают время на подсчет 2 секнды. Я ставил 0.4 чтобы ловил до 4х импульсов. 1 импульс-1 рубль, 2-2р, 4-5р, 8-10р. Если кидать монету за монетой, то вторая монета большого номинала может залезть и в первый участок выделенного времени и во второй.
На счет помех можно попробовать использовать экранированный кабель. Экран подключить к земле.
В монетоприемниках можно же поставить разную скорость импульсов. По норме вроде от 50 до 99 мс = 1 импульс. Это регилируется перемычками на тыльной стороне. Поставь меньше и будет норм. И код переделай соответственно.
Вообщем вся система, включая купюроприемник, счетчик и осд моник сильно ловит помехи. Через реле ардуино проходит 220 и 12в.
Когда они (на реле)замыкаются моник выводит иэроглифы и все остальное тоже барахлит.
Купюроприемник и моник экранировал. В моник кинул кондер 1мкф между + и -. На купюроприемник ставлю кондер 0.1 мкф - не правильно отображает номинал. Может я не туда ставлю? Диоды тоже не помогают.
подскажешь как? а то что-то пока не сильно разобрался.
Грешил я на помехи от рядом стоящего релейгного модуля ардуино, через которое идет 220 и 12 в. Вывел 220 на 0.5м, осталось только 12 в реле. В итоге , с помощью программирования, удалось избавить от помех купюроприемник. Но вот ЛСД моник ведет себя не так как надо: отображается все нормально, пока не включается реле на 12в. Дальше начинают скакать иэроглифы, пока не отключить реле. Кидал кондеры на 0,1 - 3 мкф. Не помогает. Все кабели экранированые. В чем может быть дело?
Может блок питание, который выдает 12 создавать помехи? как с ними бороться?
И еще, для четкой работы монеториемника/купюроприемника по пульсу с ардуино я обычно этот пин подтягиваю к питанию резистором 1к, а к земле конденсатором 10мкф (обычно керамическим smd 1206 на любой материнке их пруд пруди)
Я почему спрашиваю. У меня с братом есть задумка сделать маленький автомат по продаже разных видов (наверно около 12 продуктов) в основном это будут семечки, драже, что-то сыпучее. весом по 50 и 100 грамм. Хотим естественно удовлетворить покупателя в смысле продаж и конечно же разные способы оплаты.
Выбрали сейчас купюрник А7, монетник думаем какой, тоже надо я так понял в пульсе. И здачу чтоб давал хоть одним номиналом монет. Ключевое, это чтобы клиент пришел, порадовался красоте и купил кулёк семечек, драже в шоколаде или арахис. Такая "Електронная бабка на улице" )))
В Хабре парень написал про автомат, но хитро, ничего про программу и исходную логику, как подключал, что делал. ))) Я понимаю, что бизнес, но я же в Россию не приеду бизнес портить ))) Только в гости к Отцу езжу. )
Ардуино приучиваем сейчас принимать купюры и выводить это всё на экран с приветствием покупателю.
Всем доброго дня.
Имеется купюроприемник ICT P-77-P5. Подключаю его к ардуино как описано ранее, тоесть оранж и красный на питание 12в(на данный момент 9в), синий на пин ардуино и через 4.7 кОм к +5в , фиолетовый - земля.
Скетч использовал который дала Аня в 47м сообшении с добавление вывода moneyState в окно терминала.
В итоге: купюропниемник при подключении к сети старается скушать купюру, но не берет её. В терминале СОМ порта постоянно дублируется 1. При отключении купюроприемника единица продолжает дублироваться в бесконечном цикле.
Грешу на переключатели сбоку приемника(описание). Игрался с ними - не помогло. На данный момент питание идет не 12, а 9В, но я не думаю, что могут быть проблемы из-за этого.
Кто чем поможет?
Кто чем поможет?
Сочувствие прокатит?
Кто чем поможет?
Спасибо хоть за это)
Но совет не помешал бы..
Я бы проверил что подключили правильно. А то цвета проводов это не вариант.
Приемник работает, дело было в питании. Подал 12в - все заработало как надо.
Теперь нужно разобраться в распознавании импульсов..
Все сделал. В итоге импульсы четко переводятся в сумму и выводятся на экран.
Но есть одна проблема: когда введена какая-то сумма и после чего не производилось никаких действий, с течением времени сумма растет. Тоесть купюроприемник отсылает ложные импульсы. Подключил все правильно, резистор между синим проводом и +5 ардуино стоит.
Вот скетч.
Резистор стоит, а какой номинал? Похоже на то что помехи ловит.
конденсатор ставьте 10nF...47nF(вывод-земля) в зависимости от периода импульсов. Может вообще имеет смысл оптическая развязка.
Чаще всего для избежания ловли помех достаточно повысить номинал резистора до 100 Ом и кондёр 0,1 мкФ. Оптику городить не имеет смысла
Резистор стоит 4,7кОм. Странно, что помехи ловит..
На днях куплю конденсатор, подсоединю и отпишусь. Его ставить между резистором и +5в ардуино?
Вообще если по уму делать то и диодная сборка не помешает. А так можно и один резистор к +5 притянуть и да, в 4,7кОм (странно что ловит что то - не пробовал увеличивать?). Можно простой RC фильтр - сначала 100 Ом, потом 4,7кОм к +5, а 0,1 мкФ на землю.
посомтри заодно в скетче - может банально переменную не обнуляешь
Диодная сборка? В смысле диодный мост?
Увеличивать не пробовал. Думаю, и 4.7 должно хватать для помех.
Счетч проверял, там не должно быть обнулений, т.к. не происходит никаких действий после ввода. Если они происходят, то естественно все обнуляется. Притом интервалы бывают разные. Порой минута проходит и добавляет пару импульсов. Бывает и по часу стоит - нормально. Раз оставил и за 40 мин - набежало 1700грн))
На пару дней я это отложу. Куплю кондеры, захвачу еще пару транзисторов, может подключу по схеме червячка.
Ещё прикол бывает если провод купюрника расположить рядом или вместе с силовым - помехи только так летят
По уму мы подключаем ICT V7 к атмеге так
Всем привет. Приобрел монетник EU-2. На основе ваших сообщений собрал схему, написал скетч. Все работает. Огромное спасибо.
Но вот такой вопрос. На отлов импульсов на одну монету/купюру мы выделяем допустим 1000мкс, за это время шустрый покупатель может вбросить и 2е монеты. Естественно результат по количеству импульсов будет ложным.
В общем вопрос- кто как борется с этой проблемой?
Пробовал использовать inhibit через оптопару. Работает без отлова импульсов. Только начинаю ловить импульсы и монетник перестает принимать монеты. Может где ошибка в коде.
2 монеты за 0,001 сек? Так вот где Чак прячется!
Я подключил свой с добавлением еще резистора на 100 Ом и кондера на 0,1 мкФ. Сейчас все нормально, никаких помех нет. Но вот когда силовой провод рядом, то канешно валят помехи только так, и ничего не помогает.
2 монеты за 0,001 сек? Так вот где Чак прячется!
Во всех примерах задают время на подсчет 2 секнды. Я ставил 0.4 чтобы ловил до 4х импульсов. 1 импульс-1 рубль, 2-2р, 4-5р, 8-10р. Если кидать монету за монетой, то вторая монета большого номинала может залезть и в первый участок выделенного времени и во второй.
На счет помех можно попробовать использовать экранированный кабель. Экран подключить к земле.
Да, экран будем ставить.
В монетоприемниках можно же поставить разную скорость импульсов. По норме вроде от 50 до 99 мс = 1 импульс. Это регилируется перемычками на тыльной стороне. Поставь меньше и будет норм. И код переделай соответственно.
Вообщем вся система, включая купюроприемник, счетчик и осд моник сильно ловит помехи. Через реле ардуино проходит 220 и 12в.
Когда они (на реле)замыкаются моник выводит иэроглифы и все остальное тоже барахлит.
Купюроприемник и моник экранировал. В моник кинул кондер 1мкф между + и -. На купюроприемник ставлю кондер 0.1 мкф - не правильно отображает номинал. Может я не туда ставлю? Диоды тоже не помогают.
Как убрать помехи от 220?
Развязку гальваническую мути и заземление проверь.
подскажешь как? а то что-то пока не сильно разобрался.
Грешил я на помехи от рядом стоящего релейгного модуля ардуино, через которое идет 220 и 12 в. Вывел 220 на 0.5м, осталось только 12 в реле. В итоге , с помощью программирования, удалось избавить от помех купюроприемник. Но вот ЛСД моник ведет себя не так как надо: отображается все нормально, пока не включается реле на 12в. Дальше начинают скакать иэроглифы, пока не отключить реле. Кидал кондеры на 0,1 - 3 мкф. Не помогает. Все кабели экранированые. В чем может быть дело?
Может блок питание, который выдает 12 создавать помехи? как с ними бороться?
Феррит на питающий провод повесить не пробовали?
нет. попробую
а с помощью оптопары можно сделать разаязку? И ставить её на + и - или и на данные?
Аня , Вы о ферритовых фильтрах? http://www.e-voron.dp.ua/catalog/024333
Товарищи, объясните - зачем при подсчете импульсов с монетника/купюрника задаете временной интервал? Ведь и без него все отлично считает.
Кстати, у кого помехи при прерываниях сюда http://arduino.ru/forum/apparatnye-voprosy/problema-s-preryvaniyami
И еще, для четкой работы монеториемника/купюроприемника по пульсу с ардуино я обычно этот пин подтягиваю к питанию резистором 1к, а к земле конденсатором 10мкф (обычно керамическим smd 1206 на любой материнке их пруд пруди)
Приобрел купюрник cashcode sm 2073
подключил:
1ый и 5ый контакт к плюсу 12в, 2ой и 6ой контакт к земле источника 12в
что делать с 3им и 4ым контактом ума не приложу) Купюрник прошит под ипульс
Добрый всем день )
Поднимаю старую тему, но все же.
Не могу найти никак. А какое напряжение дает A7/V7 на сигнальных проводах (SIGNAL+/-), и какой уровень (диапазон) напряжений ждет на INHIBIT+/-?
Обыскался везде, но найти прямое указание так и не смог...