Страница 1 из 2
монетоприемник
Добавлено: 23 мар 2021, 15:25
DeaDMazaY
Собрал монетоприемник как в
видео копилки AlexGyverнаписал в FLprog проект для калибровки монет и вроде значения идут, но если бросать монету с разной скоростью то и значения сильно отличаются ( монета одна и та же, 5 руб.) может кто подскажет как доработать ?? или у кого есть идеи получше ???
P.S. монетоприемник работает хорошо, проверял на скетче Гувера, просто хочу сделать не копилку
монетоприемник
Добавлено: 23 мар 2021, 17:24
Sancho
Дисплей, его работа в FLP.
монетоприемник
Добавлено: 23 мар 2021, 17:35
DeaDMazaY
дисплей нужен что бы видеть значения sig- чистый сигнал (прямой) другая строчки максимальное значение пролетевшей манеты
монетоприемник
Добавлено: 23 мар 2021, 19:17
AlexCrane
[ref]DeaDMazaY[/ref], [ref=#ff8000]Sancho[/ref] Вам намекнул что штатный дисплей сильно тормозит программу и вносит искажения в измерения времени прохождения монетой датчика (увы, если бросать с разной скоростью то это время будет меняться)
монетоприемник
Добавлено: 23 мар 2021, 21:13
ViktorPetrov
Монету надо останавливать в точке измерения об этом на видео не говорят ,но видно из графика [spoiler]
монета.png
[/spoiler] Делай наклонный жёлоб с турникетом.
монетоприемник
Добавлено: 23 мар 2021, 21:17
DeaDMazaY
т.е. убирать экран и данные слать в UART ?
[ref]ViktorPetrov[/ref], так скетч Гувера работает без турникетов и задержек ! проверено мной , т.е.в схеме копилки я не чего не менял, кроме кода
монетоприемник
Добавлено: 23 мар 2021, 21:38
ViktorPetrov
DeaDMazaY писал(а): 23 мар 2021, 21:17
т.е. убирать экран и данные слать в UART ?
ViktorPetrov, так скетч Гувера работает без турникетов и задержек ! проверено мной , т.е.в схеме копилки я не чего не менял, кроме кода
Не поможет ,у Вас нет
калибровки .
По скрипту: контакт "
сон" и есть
турникет,без него работать не будит.
монетоприемник
Добавлено: 23 мар 2021, 21:47
leons
Я тоже пробовал сделать монетоприёмник с оптической оптопары ,ну такое ,
на скорость пролетания монетки реакция разная ,
монетоприемник
Добавлено: 23 мар 2021, 21:58
DeaDMazaY
[ref]ViktorPetrov[/ref], при калибровки у гувера контакт сон не активен вообще, т.е. ИК светодиод и ИК резистор постоянно активны, и экран то у него тоже есть и тоже работает что при калибровки, что при пробужденной ардуины в активной работе, может специфика FLProg не позволяет работать хорошо с экраном? вот я хз
монетоприемник
Добавлено: 23 мар 2021, 22:13
ViktorPetrov
Калибровка №1:Расстояние от контакта сон до точки измерения(фотоприемник) ,т.е. время на задержку измерений аналогового сигнала фотоприемника (на графике время 91 стоит ).
Калибровка №2: Величина аналогового сигнала т.е. размер монет ... блоки сравнения
монетоприемник
Добавлено: 23 мар 2021, 22:27
DeaDMazaY
ViktorPetrov писал(а): 23 мар 2021, 22:13
Калибровка №1:Расстояние от контакта сон до точки измерения(фотоприемник) ,т.е. время на задержку измерений аналогового сигнала фотоприемника (на графике время 91 стоит ).
Калибровка №2: Величина аналогового сигнала т.е. размер монет ... блоки сравнения
[ref]ViktorPetrov[/ref], подскажите как это сделать в FlProg , что то ,понять не могу ни как (
P/S
Код: Выделить всё
sens_signal = analogRead(IRsens); // считать датчик
if (sens_signal > last_sens_signal) last_sens_signal = sens_signal; // если текущее значение больше предыдущего
if (sens_signal - empty_signal > 3) coin_flag = true; // если значение упало почти до "пустого", считать что монета улетела
if (coin_flag && (abs(sens_signal - empty_signal)) < 2) { // если монета точно улетела
coin_signal[i] = last_sens_signal; // записать максимальное значение в память
EEPROM.writeInt(i * 2, coin_signal[i]);
coin_flag = false;
в оригинальном коде нет привязки к таймеру прохода монеты, то есть он запоминает наивысшее значение и записывает его в память после того как значения упали, он обнуляется и ждет следующей вспышки значений
может я туплю, я не разу не программист (
монетоприемник
Добавлено: 24 мар 2021, 10:51
Sancho
[ref]DeaDMazaY[/ref], Попробуйте тестовый проект.
В нём минимализировано влияние дисплея.
монетоприемник
Добавлено: 24 мар 2021, 11:23
DeaDMazaY
[ref=#ff8000]Sancho[/ref], значение sig не меняется, постоянный ноль
монетоприемник
Добавлено: 24 мар 2021, 11:55
Sancho
[ref]DeaDMazaY[/ref], Не углядел. Замените переменную для дисплея на "значение". и её обнулять.
монетоприемник
Добавлено: 24 мар 2021, 11:59
DeaDMazaY
[ref=#ff8000]Sancho[/ref], поменял, но картина та же, sig-0
монетоприемник
Добавлено: 24 мар 2021, 12:05
Sancho
[ref]DeaDMazaY[/ref], У меня на макете работает, правда оптики нет. Проверьте тестером напругу на а0
монетоприемник
Добавлено: 24 мар 2021, 12:13
DeaDMazaY
[ref=#ff8000]Sancho[/ref], в момент простоя 0,15В, в момент прохождения монеты до 3,1В
монетоприемник
Добавлено: 24 мар 2021, 12:20
Sancho
измени константы на компараторах, вместо 20 поставь для начала 40-50
Я там коменты писал!!!
Отправлено спустя 1 минуту 14 секунд:
5 в - 1023,
1в - 205,
0, 15в - 30
монетоприемник
Добавлено: 24 мар 2021, 12:48
DeaDMazaY
выставил на компараторах 40 (значения выше не распознают монету в 1р) значения пошли такие :
1р-44,45,44
2р-977,967,968
5р-1023,1023,1023
10р-814,809,823
кидал по три монеты одного нанимала
монетоприемник
Добавлено: 24 мар 2021, 13:11
Sancho
DeaDMazaY писал(а): 24 мар 2021, 12:48
значения пошли такие
Ну вот и славно! Но лучше, что-бы 5р не давала максимум - сугубо моё мнение. Да и разница очень большая - середина шкалы пуста. Но это конструктив в чистом виде.
А самое главное - попробуй проанализировать работу тестовой программы.