Оглавление:

Велосипедный одометр PCBWay Arduino: 4 шага
Велосипедный одометр PCBWay Arduino: 4 шага

Видео: Велосипедный одометр PCBWay Arduino: 4 шага

Видео: Велосипедный одометр PCBWay Arduino: 4 шага
Видео: Велокомпьютер на Ардуино / велокомпьютер arduino / велокомпьютер своими руками на arduino 2024, Июль
Anonim
Велосипедный одометр PCBWay Arduino
Велосипедный одометр PCBWay Arduino

Во многих транспортных средствах есть устройства, которые рассчитывают пройденное расстояние и необходимы для представления информации водителю.

Таким образом, с помощью этой информации можно отслеживать расстояние, пройденное между двумя точками, например, с помощью одометра транспортного средства.

Запасы

01 x PCBWay Пользовательская печатная плата

01 x Arduino UNO - ОТСУРС

01 x ЖК-дисплей 16x2 - UTSOURCE

01 x Макет - UTSOURCE

01 x проволочные перемычки - UTSOURCE

Поворотный потенциометр 01 x 10kR - UTSOURCE

01 x Герконовый переключатель UTSOURCE - UTSOURCE

Поэтому в этой статье мы научим вас, как собрать устройство для расчета расстояния с помощью датчика геркона.

Шаг 1: Проект

Проэкт
Проэкт

Следующий проект был создан для расчета пройденного расстояния на велосипеде спортзала. Кроме того, вы узнаете, как создавать программы для проекта.

Этот проект имеет три функции:

  • Рассчитайте пройденное расстояние на велосипеде;
  • Настройка радиуса запуска устройства;
  • Адаптируется к любому байку.

Для доступа к этим функциям пользователь будет использовать три кнопки системы. Каждая кнопка имеет свой функционал. В системе есть следующие кнопки:

Кнопка увеличения: будет использоваться для входа в параметр настройки радиуса колес и увеличения значения радиуса;

Кнопка уменьшения: используется для уменьшения параметра настройки радиуса колес;

Кнопка Enter: будет использоваться для ввода значения радиуса в систему.

Кроме того, у нас есть датчик язычкового переключателя. Он отвечает за обнаружение полного поворота колес. Чтобы это обнаружить, необходимо установить на колеса магнит.

Геркон представлен на рисунке выше.

Шаг 2:

Таким образом, каждый раз, когда магнит приближается к датчику, он приводит в действие датчик герконового переключателя. Процесс работает по следующему уравнению:

Пройденное расстояние = 2 * π * радиус * номер поворота

С помощью этого уравнения мы узнаем, какое расстояние пройдёт велосипед.

В уравнении радиус вводится пользователем, а число оборотов рассчитывается через число оборотов колеса.

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

Чтобы упростить процесс, мы создали печатную плату для подключения датчика герконового переключателя и трех кнопок. Печатная плата представлена на рисунке ниже.

Шаг 3:

Изображение
Изображение

Как показано на печатной плате, можно увидеть Arduino Nano. Он отвечает за контроль всех систем. Кроме того, у нас есть 5 разъемов JST.

Разъемы от C1 до C4 используются для подключения трех кнопок и датчика герконового переключателя. Теперь разъем C5 используется для подключения ЖК-дисплея 16x2 I2C.

Таким образом, с помощью этой системы вы можете установить проект на свой велосипед и получить значение пройденного расстояния.

Для этого вы можете использовать код, представленный ниже.

#include #include

/*

Сенсорный геркон 8 - Сенсорный геркон 9 - Decremento 12 - Incremento 11 - Enter * /

#define MEMORIA 120

#define PosRaio 125

#define ReedSwitch 8

#define BotaoEnterOk 11 #define BotaoIncremento 12 #define BotaoDecremento 9

const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

ЖК-дисплей LiquidCrystal (rs, en, d4, d5, d6, d7);

bool sensor = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;

bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;

байт cont = 0;

беззнаковое длинное int VoltaCompleta = 0;

беззнаковый длинный int tempo_atual = 0, ultimo_tempo = 0;

float DistKm = 0;

беззнаковое int raio = 0; float Distancia = 0;

установка void ()

{Serial.begin (9600); pinMode (8, ВХОД); pinMode (9, ВХОД); pinMode (10, ВХОД); pinMode (12, ВХОД);

lcd.begin (16, 2);

// Regiao de codigo para configurar o raio da roda do veiculo

if (EEPROM.read (MEMORIA)! = 73) {ConfiguraRaio (); EEPROM.write (MEMORIA, 73); }

lcd.setCursor (3, 0);

lcd.print («Дистансия»); lcd.setCursor (6, 1); lcd.print (Дистансия);

lcd.setCursor (14, 1);

lcd.print («км»);

raio = EEPROM.read (PosRaio);

}

пустой цикл ()

{

// Regiao de codigo para realizar a leitura dos botoes e sensor do dispositivo

датчик = digitalRead (ReedSwitch); Декременто = digitalRead (BotaoDecremento); Инкремент = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

если (датчик == 0 && estado_anterior == 1) {VoltaCompleta ++;

Distancia = (float) (2 * 3,14 * raio * VoltaCompleta) /100000.0;

lcd.setCursor (0, 1);

lcd.print (««); lcd.setCursor (6, 1); lcd.print (Дистансия);

lcd.setCursor (14, 1);

lcd.print («км»);

estado_anterior = 0;

}

если (сенсор == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

если (Инкремент == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

если (Приращение == 0 && EstadoAnteriorIncremento == 1)

{EstadoAnteriorIncremento = 0; lcd.clear (); ConfiguraRaio (); }}

void ConfiguraRaio ()

{

байт RaioRoda = 0;

// Imprimir mensagem para digitar или raio em cm

lcd.setCursor (0, 0); lcd.print («Inserir Raio (см)»);

делать

{

lcd.setCursor (6, 1);

Инкремент = digitalRead (BotaoIncremento);

Декременто = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);

if (Incremento == 1 && IncrementoAnterior == 0)

{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }

если (Incremento == 0 && IncrementoAnterior == 1)

{IncrementoAnterior = 0; }

если (Decremento == 1 && DecrementoAnterior == 0)

{РайоРода = РайоРода - 1; DecrementoAnterior = 1; }

если (Decremento == 0 && DecrementoAnterior == 1)

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (РайоРода);

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

возвращение; }

Из этого кода он, возможно, рассчитает ваше расстояние с вашим Arduino.

Шаг 4: Заключение

Поэтому, если вам нужна собственная печатная плата, вы можете получить ее по этой ссылке на сайте PCBWay.com. Для этого вы можете получить доступ к веб-сайту, создать свою учетную запись и получить свои собственные печатные платы.

Лаборатория Silícios благодарит UTSOURCE за предоставление электронных компонентов для создания этого проекта.

Рекомендуемые: