Нужна помощь.
- Войдите на сайт для отправки комментариев
Пнд, 18/04/2016 - 13:19
Всем привет.
Прикупил на днях Arduino Nano V3.0 AVR ATmega328 и LCD 16x2. Решил я собрать себе велокомпьютер и столкнулся с следующей проблеммой. Я не умею програмировать. Кое как смог написать "скетч" который моргает диодом на плате когда замыкается гекон на вилке (колесо делает оборот). А теперь проблемма заставить его считать количество оборотов за секунду, далее уже планирую отталкиваться от этого. Так же отталкиваясь от количества оборотов колеса расчитать пройденное расстояние. Длину окружности колеса еще не считал, займусь этим вечером.
Буду очень благодарен за оказанную вами помощь!
создай переменную "кол-во замыканий геркона"
например n
и после каждого щелчка, вместе с морганием диода n++
вот тебе и кол-во, проверяй значение n каждую секунду и вычитай оттуда старое значиние n, - вот тебе значение в сек.
радиус колеса знаешь? S=n*2pi*r- расстояние
Дело в том что я в этом совсем деревянный. Был бы вам очень благодарен хотя-бы за примеры переменной.
взялся за гуж, не говрои, что не дюж....
Ардуина - это проще чем в институте лаба по программированию...
а вообще тебе геркон не поможет (на больших оборотах не будет успевать срабатывать...), смотри в сторону датчиков холла или светодиодного...
Так дело в том, что в своё время я крепко спал на информатике.
Ну думаю что больших оборотов на 26 дюймовом колесе я достигнуть не смогу. максимум 50-60км\ч. И то за фурой иль автобусом в воздушном мешке.
а вообще тебе геркон не поможет (на больших оборотах не будет успевать срабатывать...), смотри в сторону датчиков холла или светодиодного...
Геркон и десяток герц успеет. А с длинной окружности считать не морочся. Доделаеш счетчик, проедеш 1 км, посмотриш сколько импульсов на километр и из этого расчитаеш коэффициент и впишеш в код.
Ну вот в том то и проблемма, не знаю я как доделать счетчик. Даже представить себе не могу как написать этот код. Может кто привести примеры кода, вырванные из готового скетча?
Ну вот в том то и проблемма, не знаю я как доделать счетчик. Даже представить себе не могу как написать этот код. Может кто привести примеры кода, вырванные из готового скетча?
Конечно
;)
Просидев весь вечер за ноутом, я так ничего и не смог сделать. Точнее сам счетчик оборотов вышло, ну хотя бы что то подобное. Проблемма лишь в том, что что гекон замкнут весьма не малое время, и за это время ардуина насчитывает уж очень большие цифры.
Сильно за код не пинайте. Это первенец :)
Ищите, как бороться с дребезгом контактов. Это - по поводу сопроводительного текста.
Теперь посмотрел код и обнаружил, что, во-первых, gek всегда либо 0, либо 1, сравнивать ее с 500 бессмысленно.
Подсчет количества циклов, в течение которых геркон будет замкнут, к измерению скорости либо расстояния никакого отношения не имеет.
Попытайтесь для начала написать алгоритм по-русски, и только когда с ним все будет ясно - переводите его на С.
Подсчет количества циклов, в течение которых геркон будет замкнут, к измерению скорости либо расстояния никакого отношения не имеет.
да ладно, серьезно? кол-во оборотов никак не связано с расстоянием или скоростью?
или Вы о том, что он не связал их со временем?
Granit22, зачем читать аналоговое состояние геркона, читай цифровое (замкнут/разомкнут) digitalRead(pin);
Подсчет количества циклов, в течение которых геркон будет замкнут, к измерению скорости либо расстояния никакого отношения не имеет.
да ладно, серьезно? кол-во оборотов никак не связано с расстоянием или скоростью?
или Вы о том, что он не связал их со временем?
Нет, я о том, что количество циклов измерения никак не связано с количеством оборотов.
Огромное спасибо! Получилось считать обороты!
Теперь вопрос, как из количества оборотов, получить обороты в минуту?
Granit22, зачем читать аналоговое состояние геркона, читай цифровое (замкнут/разомкнут) digitalRead(pin);
Как теперь подсчитать обороты в минуту?
Вариантов два: замерять длительность одного оборота и пересчитывать в обороты в минуту или засекать минуту и подсчитывать количество оборотов. В первом случае можем получить мгновенную скорость, во втором усредненную.
Огромное спасибо! Получилось считать обороты!
Теперь вопрос, как из количества оборотов, получить обороты в минуту?
Это шутка? Вы не знаете как из времени оборота посчитать количество оборотов в минуту? Или не знаете как определить время оброта, что простительно для начинающего. :)
Вариантов два: замерять длительность одного оборота и пересчитывать в обороты в минуту или засекать минуту и подсчитывать количество оборотов. В первом случае можем получить мгновенную скорость, во втором усредненную.
Я более склоняюсь к первому варианту, ибо от оборотов хочу высчитывать скорость велосипеда.
Подскажите ли как это все реализовать? Какими кодами?
Аналогично, запоминать время при изменении состояния геркона:
Аналогично, запоминать время при изменении состояния геркона:
Зачем измерять время и количество состояний геркона при замкнутых контактах? :) Тут сравнение с предыдущим состоянием не подходит.
Простите, невнимательно посмотрел строку 06. Почудилось там "==". :)