Велоспидометр
- Войдите на сайт для отправки комментариев
Пт, 11/04/2014 - 23:45
Всем привет! Хочу сделать велоспидометр на двух 7-ми сигментных индикаторах в виде восьмерки.
для тех кто поможет с кодом - поделюсь чипами atmega328p-pu(ардуино уно) и au (ардуино нано) - чипы уже с загрузчиком) при необходимости отправлю почтой)
не понял. что значит в виде вомьмерки?
http://radioparty.ru/images/stories/scheme_atmel/279-05.gif
типа такого?
Да именно они там 4 а будут 2)
могу помочь просто так. а отправлять или нет сами решайте
1. для начала вам нужно узнать распиновку и тип индикатора: с общим анодом или катодом
2. зачем 2 индикатора?
3. владеете ли вы паяльником?
я отправлю полюбому что нибудь ;)
я умею паять обсалютно все)
мне нужен только код - остальную схему я сам сделаю
Общий - катод (-)
Эта хрень светодиодная
2 индикатора чтобы были десятичные числа
если я буду ехать 30 - как он покажет на одном индикаторе 30км\ч?)
поэтому нужно 2
например еду 10 км\ час - загораються лампы на 1-ом : 3 и 7, на втором 1,2,3,5,6,7
Распиновка:
все равно не понял. у вас 2 штуки одноразрядных вроде таких?
http://dic.academic.ru/pictures/wiki/files/83/Seven_segment_02_Pengo.jpg
вам понадобится какой нибудь датчик. любой оптический магнитный контактный. но чтобы не боялся воды грязи.
лучше всего магнитный на датчике холла, да и стоит копейки ну и магнит конечно на колесо
а код набросаю
датчик холла есть, да именно такие, одноразрядные!)
ну тогда проблемм нет. схему если тогда сами набросайте, я код набросаю
только сегменты паралельно у каждого разряда, катоды отдельно
next-999, сделать что-то полезное своими руками конечно прекрасно, только вы ведь понимаете, что по параметрам энергопотребления и габаритам ваше изделие совсем не конкурент промышленным велоспидометрам. И светодиодные индикаторы -это не очень хороший выбор. Несмотря на их кажущуюся яркость -на солнце может быть видно хуже, чем на жидкокристаллических, к тому же энергопотребление у них больше. Cуществуют LCD индикаторы, у которых потребление тока -несколько микроампер, имеют втроенные часы, и от одной батарейки работают по нескольку лет, типа ht1613 И ему подобных. Вот на такой штуке сделать, и на тиньке, тогда получится нормальный прибор.
PS: На ардуино встречаются примеры в сети, например http://www.instructables.com/id/Arduino-Bike-Speedometer/ Что интересно автор этой конструкции- девушка :) На этом же сайте есть и другие варианты спидометра.
я видел эту статью, там lcd а мне нужно именно индикаторами светодиода.
схему я сам соберу, есть большой опыт в этом. в коде опыта очень мало именно поэтому и обратился. Отпишите тогда сюда, может кому тоже пригодиться, обязательно отблагодарю за проделанную работу.
на самом деле lcd например nokia 1110 в разы лучше на солнце видно. но дело ваше, делаем на светодиодных
тут дело не в том что лучше а что хуже. просто у меня есть определенная идея. Когда я сделаю я обязательно выложу и вам покажу.
попробуйте так. в коде сверху можно поменять к каким пинам подключаются индикаторы
так, а почему подключено только 10 выходов? если должно быть 14 подключено.
7 в 1 и 7 в другом
писал уже ранее что сегменты двух индикаторов паралельно (сегмент А первого индикатора подключен к сегменту А второго и все подключено к ардуине на 4 вывод через резистор, а каторы обоих индикаторов по отдельнсти, каждый через транзистор на 12 и 13 выводы). а вообще точку можно убрать если показываем только целую часть
и в одном не 7 а 8 (если без точки), тут сделана динамическая индикация, понадобиться всего 9 выводов
Да точки и не будет. блин, я думал то что там подключаеться тупо каждый вывод к каждой лампочке. Тут мне определнно нужна помощ со схемой а то я уже чуток запутался)))
так написал уже как подключать.
вот картинка что я вам пытался объяснить
http://rln.nnov.ru/eph/images/4d1a7d9ab252acf2bdf48e10d7ea3fbd.jpg
+ надо формулу править. там по моему скорость неверно считается. сделаю попозже сейчас занят, соберите пока железо
я не могу так быстро))) пока нечего на руках нет, как только придет все сразу возьмусь за дело и соберу)
я думал уже все есть осталось собрать и зашить программу
Я думал что код будет писаться как минимум несколько дней) Как только все придет сразу же протестирую и отпишусь в теме
да нет. надо подумать, формула неверная немного, рассчитал врде в метрах в секунду. надо посмотреть. если точно в метрах в секунду надо просто домножить на 3,6 чтобы получить километры в час
Да вы пока поработайте с кодом никуда не спеша)))
Мне только интересно. как работать будут 2 модуля если они подключены к одной цепи?
на обоих дисплеях будут показывать одинаковые цифры вроде как
нет. почитайте про динамическую индикацию. вот например
http://radiokot.ru/start/mcu_fpga/avr/15/
повторяю катоды отдельно!!!
каждый индикатор показывает свою цифру. потом второй. и так бегает постоянно. так как это быстро происходит глаз не успевает заметить мерцание, и выглядит как будто светятся одновременно
Нифига, прикольно, я не знал про такое)))Спасибо за пояснение)
например для 4 разрядов с обычным подключением нужно 28 пинов, для динамической нужно 11 пинов. разница чувствуется
Да, теперь я понимаю зачем то придумали и как это работает)
Привет, я готов собирать его)) так, я закачал код в ардуино, мне датчик хола подключать к 0 аналогу?
нет на прерывание 2 или 3 пин
Не работает(( все подключил согласно картинке
когда прирывается 2-3 нечего не происходит, висит вот такая фигня и нече не меняется(
(Нижний сигмент у второго дисплея не работает сам светодиод)
значение показывает обе шестерки зеркальные)
датчик холла на 2 пин повесили? надо еще подтяжку вроде включить
почему на индикаторах разные значения? может подключили по разному?
Так вроде все ок, сделал подтячку и чето помудрил он стал менять значения, но они непонятные т.к видимо распиновка немного другая в коде
значения одинаковые, просто не работает диод один
И кстати
когда я прошиваю чип - появляются циферки,когда я отключаю от питания и заново подключаю - то чтобы появились циферки приходится заново прошивать
насчет перепрошивки не понял
расскажу подробно:
я подключаю ардуино ЮЗБ, открываю программу ардуино, заливаю код, загораются непонятные символы, при замыкании 2рого порта меняются значния но они не похожи на цифры, и значенния меняются не так как на велоспедометре. если я например быстро замыкаю, и резко перестаю, остается одно и то же значение, т.е оно не уменьшается постепенно. Если я ардуино отключаю от питания, и подключаю снова - то на дисплеях нечего не горит, и чтобы заново загорелись экраны нужно снова заливать код
бред какой то . снова нифига не понял))) проблемы в железе точно нет? должно либо работать либо нет
Хорошо, еще подробнее:
Я беру ардуино, беру провод USB, вставляю его в ардуино, открываю программу, там вписываю в строчку код и нажимаю "Загрузить" , после того как прошла загрузка, у меня на 2-х дисплеях появляются непонятные значения, когда я провожу магнитом мимо датчика холла - значения меняются (но какие они это не понятно) всякие палочки и черточки, если я например провожу магнитом быстро, а потом резко перестаю им водить, то значение резко остается таким какие было.
ЕСЛИ я отключаю ардуино от питания и снова подключаю - то цифры уже не показываются, и чтобыони показались нужно снова нажимать "загрузить"
Например в спидометре когда я раскручиваю колесо у меня показывает 00, 02,05,10,14,20,25 и тд если колесо прям резко останавливаю то оно 25,20,15,5,0.
у меня показывает : _- _- , -|=_, и тд
если я резко перестаю проводить датчиком то оно оставляет последнее значение - не падая в 0.
Мне нужно помочь с распиновкой, видимо не верно подключены провода, нужно поправить в коде распиновку проводов, по схеме они подключены так :
понятно. чтобы понятнее было нужно для начала добиться стабильной работы от инидкаторов. без этого дальше глупо что то делать. сделайте вывод цифра от 0 до 99 например и посмотрите на дисплее
можно мне код если не трудно?) от 0 до 99) а то я совсем даун в коде)
блин я тоже сейчас даун. под пивом. если будет возможность накидаю
Да если не трудно) я теперь без вас никуда) свои благодарности обязательно вышлю по почте как только все сделаю четко)))
wheel_round_cm = константа - внешняя длина окружности колеса, в сантиметрах
В прошивке нужно реализовать 2 прерывания:
1. по каждому срабатыванию сенсора, для увеличения счетчика пройденного расстояния
{
distance_cm += wheel_round_cm;
// Тут проверить на переполнение ;)
}
2. по таймеру, для обновления показаний на экране
{
/* WatchDog Timer срабатывает каждые 8 секунд */
float speed_cm_per_sec = distance_cm / 8; // Скорость в сантиметрах в секунду (см/с)
}
Потом, перевести скорость из см/с в км/ч
см/ч = см/с * 3600
м/ч = см/ч / 100
км/ч = м/ч / 1000
или сразу км/ч = см/с * 0.036
Пример:
distance_cm = 4440; // Нащелкало сантиметров за 8 секунд
speed_kmh = 4440 / 8 * 0.036 = 19.98 км/ч
Калькулятор скоростей Online
я несмогу ее сам написать:( Мне бы готовую.. готов отблагодарить за это. + я думаю она много кому пригодится
а вы точно правильно подключили? разобрались с сегментами? в коде написано куда подключать каждый сегмент. код под общий катод
Да, подключил все верно согластно картинке как тут
показываются непонятные циферки(
попробуйте два кода. один из них должен показать 72 если вы все правильно подключили
первый
второй
вот на всякий случай проверил в протеусе последние 2 кода. один под общий катод, другой под общий анод (ну мало ли вы ошиблись с типом индикатора)
так что все работает. добивайтесь того же
если все правильно подключили значит один из 2 заработает
незнаюче за глюк был, когдазагрузил код он показал 72, потом обратно тот загрузил код -появились нормальные цифры и они меняются) ооднако есть другая проблема про которую я говорил
что при отключении арудино от компа и снова при подключении цифры не загораются, приходится снова загружать прошивку
про вашу проблему ничего точного сказать не могу. обычно плохие контакты, или, что менее вероятно, брак платы. попробуйте поменять кабель для начала. часто помогает
Платы 2 оригинал, пробовал на одной и другой, кабель тоже в порядке. по сути при подключении к питанию должны автоматом загоратся нолики. а они горят только после прошивки. такое ощущение что прошивка работает толькотогда когда он подключен к компу
теперь нули будут с самого начала