Спидометр

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Спидометр

#21

Сообщение RedSky » 10.08.2017{, 18:43}

Просмотрел Ваш проект. Зачем такие сложности с одометром? Можно сразу количество импульсов умножить на путь за оборот колеса. У Вас датчик срабатывает от спиц? Даже в этом случае запаса счёта хватит на тысячи километров. Количество операций с float в спидометре также можно сократить.

Vano1989
Рядовой
Сообщения: 25
Зарегистрирован: 30.07.2017{, 06:24}
Репутация: 0

Спидометр

#22

Сообщение Vano1989 » 10.08.2017{, 20:17}

Ну я делал как понимаю    Конечно лучше проще
RedSky писал(а):Можно сразу количество импульсов умножить на путь
точно ведь, один оборот (один импульс) равен длине окружности колеса это и есть пройденный путь.

А вот как сократить float в спидометре? Если не сложно, ткните в формулу
Вложения
Test2.flp
(120.96 КБ) 66 скачиваний

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Спидометр

#23

Сообщение rw6cm » 11.08.2017{, 14:06}

Vano1989 писал(а):А вот как сократить float в спидометре?
По ходу Вы хотите все в одном блоке сделать )
Можно так. описание в проекте.

п/с что бы сменить прерывание с 3 на 2 пин, не достаточно изменение только №пина в скетче.
Вложения
VeloSpeed3.flp
(539.51 КБ) 74 скачивания
Win10-64, FLProg (portable)

Vano1989
Рядовой
Сообщения: 25
Зарегистрирован: 30.07.2017{, 06:24}
Репутация: 0

Спидометр

#24

Сообщение Vano1989 » 12.08.2017{, 13:11}

rw6cm, спасибо большое, такой вопрос у вас написано в настройках блока m_imp - расстояние пройденное между двумя импульсами в миллиметрах, т.е. надо будет измерить расстояние 2х полных оборота колеса?
Последний раз редактировалось Vano1989 12.08.2017{, 13:11}, всего редактировалось 1 раз.

Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Спидометр

#25

Сообщение Grafsaxar » 12.08.2017{, 22:13}

Не знаю что вы там мудрите), в качестве датчика можно использовать геркон.

Долго не будет работать . Может на годик хватить. Хотя при 60км в час не будет успевать переключатся. Надо будет большой магнит на спицы ставить . Есть такие Neodim называются. Но в таком случаи колесо прийдётся балансировать. Вы на переднее или заднее колесо хотите датчик поставить?

Была у меня тоже как то такая идея. Сидел пару часов думал как бы сделать. Потом приехал друг мы выпили по кружке и заказал он мне в инете 4 шт. за 6 баксов за штуку.

Может у кого есть сломанный? Возьмите с него датчик и магнит. И будет вам счастье.

Добавлено (12.08.2017, 22:12)
---------------------------------------------
А вот как сократить float в спидометре? Если не сложно, ткните в формулу

Математикой. А что если умножить на 100 или 1000 ? Потом блоком флоат в инт. Потом разделить на 10 . Смотря сколько вам после запятой надо..
Последний раз редактировалось Grafsaxar 13.08.2017{, 15:35}, всего редактировалось 1 раз.
Качество — это делать что-либо правильно, даже когда никто не смотрит

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Спидометр

#26

Сообщение rw6cm » 13.08.2017{, 00:00}

Vano1989 писал(а):т.е. надо будет измерить расстояние 2х полных оборота колеса?
Не удачно слова подобрал, имелось ввиду от одного импульса до другого, (надо исправить в описании "между импульсами")
т.е. если в колесе один магнит, то один оборот, если 2 то пол оборота.
Grafsaxar писал(а):Долго не будет работать . Может на годик хватить. Хотя при 60км в час не будет успевать переключатся. Надо будет большой магнит на спицы ставить . Есть такие Neodim называются. Но в таком случаи колесо прийдётся балансировать.
Нормальный геркон прослужит не один год. При 60 км/ч всего 8 импульсов в секунду. Герконы выдерживают частоту переключений до 10кГц, и завод гарантирует 10 миллионов срабатываний. Этого хватит на не один год даже если с велика не слазить, и наматывать в день по 50км.
Неодимовые магниты продаются в любом виде, детвора делают из них бусы. Одного шарика 5мм вполне достаточно, и не надо не чего балансировать.
Но этот вариант я предлагал человеку, только для настройки алгоритма, пока идет нормальный датчик. Не пригодны герконы здесь потому, что присутствует дребезг контактов, а это не допустимо. Если использовать программный анти дребезг, будет съедаться 40мс, а это при 60 км/ч одна треть замера (импульсы идут через 125мс)
Конечно здесь погрешность будет громадная. Можно подобрать RC цепочку, с меньшей задержкой, но думаю при такой разновидности современных датчиков, на геркон можно не обращать внимание.
Win10-64, FLProg (portable)

Аватара пользователя
Grafsaxar
Лейтенант
Сообщения: 377
Зарегистрирован: 06.09.2015{, 16:04}
Репутация: 6
Откуда: Маркс-Энгелс
Имя: Alexander

Спидометр

#27

Сообщение Grafsaxar » 13.08.2017{, 15:41}

rw6cm писал(а):что присутствует дребезг контактов
Вот я и о том же:)) Магнит большой и тяжёлый надо. Тогда и дребезга не будет:)))

и в горку с разгона легче будет заезжать. Колесо с магнитом как маховик работать будет.
Качество — это делать что-либо правильно, даже когда никто не смотрит

Vano1989
Рядовой
Сообщения: 25
Зарегистрирован: 30.07.2017{, 06:24}
Репутация: 0

Спидометр

#28

Сообщение Vano1989 » 14.08.2017{, 14:28}

Снова я =) Спасите мою нану от смерти, она не выдержит опытов с EEPROM. Вообщем, попробовал собрать в блок. Запись в память через отключение питания, а сброс одометра в ноль кнопкой, первый раз кнопкой сбрасывается на ноль все ок, но вот после отключения питания сброс кнопкой уже не с нуля, а с места отключения питания... Не пойму почему ноль в память не пишется

Изображение
Вложения
Velo.flp
(1.23 МБ) 67 скачиваний
Последний раз редактировалось Vano1989 14.08.2017{, 16:39}, всего редактировалось 1 раз.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Спидометр

#29

Сообщение rw6cm » 14.08.2017{, 22:19}

Vano1989 писал(а):Спасите мою нану от смерти, она не выдержит опытов с EEPROM.
Что то я Вас не пойму... Вывел специально данные в км/ч, вы их опять в м/с, да еще в float... зачем для велика м/с  
Float так float, (без проблем жизнь не интересна )
Вложения
VeloSpeed4.flp
(799.81 КБ) 92 скачивания
Win10-64, FLProg (portable)

Vano1989
Рядовой
Сообщения: 25
Зарегистрирован: 30.07.2017{, 06:24}
Репутация: 0

Спидометр

#30

Сообщение Vano1989 » 15.08.2017{, 04:35}

rw6cm писал(а):Что то я Вас не пойму... Вывел специально данные в км/ч, вы их опять в м/с, да еще в float... зачем для велика м/с
  Да я 2 блока сделал, один в км/ч, другой м/с - экспериментирую так сказать, Гугл конвертер проверяю  Спасибо, схема работает
Последний раз редактировалось Vano1989 15.08.2017{, 05:55}, всего редактировалось 1 раз.

LevVS
Рядовой
Сообщения: 2
Зарегистрирован: 19.11.2017{, 21:29}
Репутация: 0

Спидометр

#31

Сообщение LevVS » 19.11.2017{, 21:37}

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

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Спидометр

#32

Сообщение pan » 19.11.2017{, 22:16}

в стандартных блоках высокоскоростной счетчик

Аватара пользователя
RedSky
Лейтенант
Сообщения: 574
Зарегистрирован: 19.12.2016{, 20:07}
Репутация: 72
Откуда: Днепропетровск
Имя: Алексей

Спидометр

#33

Сообщение RedSky » 20.11.2017{, 10:58}

Вот блок. Измеряется время между прерываниями на 3м пине. Есть подсчёт количества импульсов с возможностью предустановки и сброса (для сохранения - чтения одометра в EEPROM). 
Входы:
preset - значение для предустановки. Можно из EEPROM.
prst - установить значение. Пока на входе высокий уровень - на выходе count значение из preset. Подключать через R-trigger.
rst - сброс счётчика.
Выходы:
count - счётчик прерываний (по переднему фронту)
mov - есть движение (между импульсами менее 2-х секунд)
time - интервал между импульсами, мкс
Для прерывания на 2м пине в секции setup блока в строке attachInterrupt(1, RFunction, RISING ); - 1 заменить на 0.
Как поведёт себя при переполнении не знаю. Думаю на короткое время показания будут некорректные.
Вложения
7308855.ubi
(51.86 КБ) 73 скачивания

LevVS
Рядовой
Сообщения: 2
Зарегистрирован: 19.11.2017{, 21:29}
Репутация: 0

Спидометр

#34

Сообщение LevVS » 20.11.2017{, 19:38}

RedSky, спасибо. Блок действительно хорош и мне он уже один раз пригодился. Но к сожалению в моем проекте  он не подходит. Мне нужно замерить разницу во времени между прерываниями на разных пинах. Либо получить значение в микросекундах один раз с каждого пина  по отдельности (дальше вычту одно из другого). Может быть есть ещё варианты? Спасибо.

Добавлено (20.11.2017, 19:38)
---------------------------------------------
RedSky, спасибо еще раз. Модифицировал ваш блок, добавил ещё один выход, изменил для второго пина, убрал галочку (использовать 1 раз) и все заработало как надо. Два блока на разных пинах плюс математика.
Последний раз редактировалось LevVS 20.11.2017{, 18:34}, всего редактировалось 1 раз.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2284
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 335
Имя: Владимир

Спидометр

#35

Сообщение rw6cm » 21.11.2017{, 09:22}

По просьбе  Vano1989,  дополнил блок вело спидометра.
Выбор прямой/инверсный вход от датчика.
Описание в блоке
Вложения
2630795.ubi
(84.79 КБ) 105 скачиваний
Win10-64, FLProg (portable)

Vano1989
Рядовой
Сообщения: 25
Зарегистрирован: 30.07.2017{, 06:24}
Репутация: 0

Спидометр

#36

Сообщение Vano1989 » 21.11.2017{, 11:45}

rw6cm спасибо, спасли от долгих ожиданий нового датчика 
Последний раз редактировалось Vano1989 21.11.2017{, 11:45}, всего редактировалось 1 раз.

Ответить

Вернуться в «Проекты различных устройств на Arduino»