ARDUINO Копилка со счётчиком. Обсуждение проекта

  • Все темы в "разделе помощи" были преобразованы в ВОПРОСЫ. У вопроса можно выбрать ответ юзера в качестве лучшего ответа, и статус темы автоматически сменится на РЕШЕНО. Если ваш вопрос был решён - просьба пометить ответ, тем самым показав остальным, что он не актуален!

Wan-Derer

★★★★✩✩✩
Команда форума
31 Июл 2018
1,412
265
Москва
wan-derer.ru
А вот у кого какие мысли как различать 2 и 10 руб? По диаметру они практически идентичны. В ВК были сообщения что алгоритм сбоит сколько ни обучай. Как ещё можно? Толщина? Масса (инерция)? Магнитные свойства? М?
 

Oldroid

✩✩✩✩✩✩✩
31 Июл 2018
19
2
16
Беларусь
С белорусскими монетками беда ((( есть много практически одинаковых по диаметру
 

kirill1904

✩✩✩✩✩✩✩
1 Сен 2018
1
0
Привет, собрал такую пока на макетке, версия money_box_counter_voltmeter как я понял должна показывать заряд аккумулятора?, подскажи как правильно подключить по схеме чтоб измерял, никак не могу, все время показывает 5,0в

И такой вопрос: Есть 328 atmega отдельно от ардуины, хотел собрать на ней, получится ли сделать, прошить прошью а вот про минимальную обвязку подскажите если не трудно))

питать буду так же от 18650 через стабилизатор на 5в
 
Последнее редактирование:
25 Авг 2018
8
0
@Wan-Derer, я и перепаивал контакты,меняя их места. все равно тоже самое.
да и кстати,фоторезистор один в один похож на светодиод.светодиод горит постоянно при калибровке
 

Wan-Derer

★★★★✩✩✩
Команда форума
31 Июл 2018
1,412
265
Москва
wan-derer.ru
@КОНСТАНТИН ВИКТОРОВИЧ, Сопротивление ФТ в освещённом и затемнённом состоянии отличается. Значит отличается падение напряжения на нём. Схема работает так что в момент прохода монеты меняется логический уровень на входе Ардуино. Чтобы убедиться в работоспособности оптической подсистемы надо проверить напряжение на цифровом входе Ардуино. В освещённом и затенённом состоянии уровни должны быть настолько разными чтобы этого хватало для надёжного распознавания монеты. Разумеется, проверять надо на штатной конструкции, на той, которая и будет дальше работать.
 
25 Авг 2018
8
0
привет всем
разобрался с проблемой калибровки--поменял местами выводы фототранзистора
но появилась другая проблема(дисплей не гаснет так как не хочет работать от выводов зарядки там где B- и B+ приходиться батарею паять либо на OUT- либо на OUT+)
в чем может быть проблема?
 

AngryCat

✩✩✩✩✩✩✩
3 Янв 2019
1
0
Подскажите, а почему не использовать для улучшения точности внутренний генератор опорного напряжения
C:
analogReference(INTERNAL)
? Я, конечно, видел второй вариант — money_box_counter_voltmeter.ino там используется функция
C:
readVcc()
, возвращаемое значение которой сохраняется в переменной volts. И эта переменная потом нигде не используется.
 

CatFish

✩✩✩✩✩✩✩
19 Авг 2018
3
3
Здравствуйте!
Вот незадача приключилась с украинскими монетками…

1. Диаметр монеток 25 копеек и 2 гривен: 20,8 мм и 20.2 мм соответственно. (В видео 2 руб от 10 руб отличаются на 1 мм)
C-like:
if (delta < 30) {   // и вот тут если эта разность попадает в диапазон, то считаем монетку распознанной
Если уменьшать параметр «delta» то это ведет к нестабильной роботе системы – пропуску некоторых монеток.
Как с этим бороться?
25-kopiyok-Ukraine.jpg2.PNG


2. Диаметр самой маленькой монетки 10 коп - 16,3 мм, диаметр смой большой 1 грн - 26.0 мм. То есть щель должна быть размером ~10.2 мм. А это очень большое отверстие для адекватного срабатывание датчика.

download.jpg1_владимир.jpg



Ну если со второй проблемой можно как-то бороться, то с первой – проблематично.
Возможно использовать датчик Холла или что-то подобное вместо оптического….
 

Oleg0333

✩✩✩✩✩✩✩
5 Июн 2019
1
0
Всем привет
Может кто модернизировал копилку под торговий автомат?Верно я понимаю фрагмент кода которий нужно добавить?
void loop() {
if ( summ_money >= 10); //
{
digitalWrite(13, HIGH);//подає логічну одиницю на пін 13
delay (1000); //
summ_money == 0;
}

if (summ_money == 0);
{
digitalWrite(13, LOW);
}
}Прошивал контроллер сумма не сбрасиваєтса, только плюсуєтса.
 

Александр Симонов

★★★✩✩✩✩
2 Авг 2018
433
102
@Oleg0333, рано тебе торговые автоматы писать, если ты элементарных основ программирования не знаешь. Смотри Уроки Ардуинщика. Если смотрел, то смотри ещё раз, только внимательно. Каждый символ сравнивай с тем, что ты пишешь.
 

dimajak

✩✩✩✩✩✩✩
24 Апр 2019
2
0
Подскажите модель для тестирования монет. У меня не получается определить на готовой модели. (((
 

Econophysic

✩✩✩✩✩✩✩
11 Мар 2020
1
0
Все работает кроме считывания монет, можно узнать почему пины фотодиода 14 и 17? И как узнать работает ли свето/фотодиод вообще?
 

konoev

✩✩✩✩✩✩✩
24 Фев 2020
36
4
Скетч с внедренным энкодером для корректировки суммы денег (при нажатии и удержании кнопки калибровки не в режиме сна).
Алгоритм распознавания монет более стабилен, работает уже 2 года.
Вырезан экран с количеством монет.

P/S Отдельное спасибо за помощь. "Старик Похабыч"
Подставил в вашей прошивке 50 копеек.... после калибровки он ее как бы видит но выводит только ноль и не прибавляет 50 копеек к общей сумме.
#define coin_amount 15 // число монет, которые нужно распознать
#define memory_offset 60 // смещение необходимо для отделения значений сигналов от количества каждой монетке в общей памяти,
// оно напрямую зависит от количества элементов в массиве coin_value[], должно быть мимимум в 2 раза больше coin_amount
// так как для хранения одного инта требуется 2 ячейки памяти
// стоимость монет, для повышения точности необходимо выбрать по 3 монетки каждого номинала,
// максимально отличающихся друг от друга. Например блестящую, матовую и средней загрязненности
word coin_value[coin_amount] = {0.5, 1.0, 2.0, 5.0, 10.0, 0.5, 1.0, 2.0, 5.0, 10.0, 0.5, 1.0, 2.0, 5.0, 10.0};

ниже просто местами поменял то что выводится
lcd.clear();
lcd.setCursor(0, 0); lcd.print(L"На ослика");
lcd.setCursor(11, 1); lcd.print(volts);
lcd.setCursor(15, 1); lcd.print("v");
lcd.setCursor(0, 1); lcd.print(summ_money);
lcd.setCursor(7, 1); lcd.print(currency);