Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Во многих транспортных средствах есть устройства, которые рассчитывают пройденное расстояние и необходимы для представления информации водителю.
Таким образом, с помощью этой информации можно отслеживать расстояние, пройденное между двумя точками, например, с помощью одометра транспортного средства.
Запасы
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 за предоставление электронных компонентов для создания этого проекта.