Велосипедний спідометр на Arduino
Представляю проект велоспідометра, який дозволяє стежити за швидкістю їзди велосипедом за допомогою Arduino. Для вимірювання швидкості обертання одного колеса використається магнітний вимикач (також званий геркон). Контролер Arduino розраховує швидкість та виводить цю інформацію на РК-дисплей, закріплений на кермі. Пристрій сумісний з будь-яким велосипедом/колесом, необхідно ввести радіус колеса в прошивку для калібрування.

Список деталей: (1x) Arduino Uno REV 3. (1x) Геркон. (1x) 10КІМ 0.25Вт резистор. (1x) Батарея 9В. (1x) Рознімання для 9В батареї. (1x) Макетна плата. (1x) РК-дисплей з підсвічуванням Parallax 27977-RT. (x2) Тумблер. (2x) BLS штирі. (1x) BLS роз'єми.
Додаткові матеріали: Провід №22. Припій. Наждак. Фанера. Столярний клей. Термоклів. Гвинти. Кабельні стяжки.

Принципова схема
На схемі є три тумблера: - перший на лінії живлення 9В. - другий для увімкнення та вимкнення підсвічування РК-дисплея. - і один магнітний вимикач (так званий геркон), який замикається щоразу, коли колесо робить один повний оборот.
Parallex LCD підключається до Arduino за допомогою лише трьох контактів: 5В, GND та послідовного цифрового виходу (TX) – 1 контакт Arduino.
Резистори 10 кОм підключені до геркона і вимикача підсвічування, щоб уникнути надлишкового струму між 5В та GND Arduino.
Припаяйте на макетну плату три лінії BLS штирьків, як показано на фотографії для підключення Arduino.

Магнітний вимикач складається з двох частин: геркона та магніту. Геркон має контакти, які механічно замикаються всередині нього при наближенні магніту.

Припаяйтеструмообмежувальний 10кОм резистор між A0 та GND на макетній платі. Припаяйте довгі дроти до А0 і 5В – вони будуть проведені велосипедом і підключені до геркона.
Встановлення геркона на колесо
Встановіть магніт та геркон на ваш велосипед за допомогою ізоленти (підходить будь-яке колесо). Як видно на фотографії, магніт встановлений на одну із спиць колеса, геркон на раму велосипеда. Тобто щоразу, коли колесо робить повний оборот, магніт проходить повз геркон, замикаючи його. Підключіть до геркона дроти, раніше припаяні до плати. Геркон неполярний, тому як його підключати – не має значення.

Використовуйте нижченаведений код для перевірки. Коли магніт на колесі буде проходити повз геркон, Arduino буде видавати значення
1023, інакше значення буде
0. Відкрийте Serial Monitor (Монітор послідовного порту) (Tools & Serial Monitor) в Arduino IDE, щоб перевірити це. Якщо магніт не впливає на геркон, спробуйте переставити його або використати потужніший.
Прошийте Arduino. Увімкніть монітор послідовного порту. Він має показувати 0.00. Почніть крутити колесо, і ви побачите швидкість миль/год, що змінюється кожну секунду.
Я використовував РК-дисплей із послідовним інтерфейсом. Припаяйте лінію BLS роз'ємів на зворотний бік (з контактами) макетної плати. Три роз'єми будуть використовуватися для підключення РК-екрана. РК-дисплей добре стане в ці роз'єми.
Підключіть 5В, GND і TX (1 цифровий висновок Arduino) від Arduino до роз'єму дисплея. Дивіться на підпис виводів РК-екрана, щоб зробити все правильно.

У нижній частині РК-дисплея Parallax є два перемикачі та потенціометр. Потенціометр контролюється контрастність дисплея. Дляправильної роботи перемикачі повинні бути встановлені як на фотографії.

Для тестування РК-екрана використовуйте наступний код. Чомусь на моєму РК-дисплеї починають з'являтися випадкові символи під час прошивки, але вони зникають після того, як я перемикаю USB-кабель. Я думаю, що це є перешкодою у зв'язку Arduino з комп'ютером через 1 цифровий контактний (TX) під час прошивки.
Під час увімкнення на РК-екрані відображається напис "Hello World".
Підключіть тумблер, як показано на фотографії. Припаяйте резистор 10 кОм та зелений провід до одного контакту, а червоний провід до іншого.
Підключіть червоний провід до 5В Arduino і GND через резистор, а зелений провід до D2.
Прошийте скетчем Arduino, який ви можете завантажити внизу статті. Переконайтеся, що підсвічування вмикається та вимикається, а швидкість відображається правильно. (Можливо вам доведеться перепідключити Arduino для коректної роботи).
Виміряйте радіус коліс (у дюймах) і вставте його в рядок: float radius = ""';
Я використав переривання за таймером. Для відображення швидкості км/год необхідно внести коригування в програму.
З'єднайте роз'єм для батареї та тумблер послідовно, як показано на фотографії. Підключіть червоний провід від вимикача до Vin Arduino, а чорний провід від роз'єму для батареї до GND Arduino.

Я вирізав корпус для свого проекту за допомогою 1/4" лазерного різака 120 Вт. Розміри корпусу 3,5" x4 "x2". Я змоделював корпус у AutoCAD і зробив файли для лазерного різання (з шиповим з'єднанням) у Autodesk 123D Make. Потім я додав два отвори для тумблерів та прямокутний отвір для РК-дисплея. Також додав кілька отворів у нижній частині корпусу для полегшення кріплення до велосипеда.

Далі склеїв корпус деревним клеєм, і відшліфував краї. Закінчивши корпус, я накрив його лаком.


Встановлення компонентів у корпус
Закріпіть тумблери на корпусі за допомогою гайок. Приклейте або пригвинтіть РК-дисплей із внутрішньої сторони передньої панелі. Встановити макетну плату, Arduino і батареї в корпусі і закріпити на липучках або клеї.

Оберніть дроти від геркона навколо рами, уникаючи частин велосипеда, що рухаються. Я використовував кабельні стяжки для кріплення спідометра до керма.


Тепер ви можете виїжджати з цим спідометром, проте під час руху не відволікайтеся від дороги!