Съдържание:
Видео: PCBWay Arduino велосипеден одометър: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:50
В много превозни средства има устройства, които изчисляват изминатото разстояние и са от съществено значение за представяне на информация на водача.
По този начин чрез тази информация е възможно да се следи изминатото разстояние между две точки, например чрез километража на автомобила.
Консумативи
01 x PCBWay Персонализирана печатна платка
01 x Arduino UNO - UTSOURCE
01 x LCD 16x2 дисплей - UTSOURCE
01 x Платформа - UTSOURCE
01 x Жични джъмпери - UTSOURCE
01 x 10kR Ротационен потенциометър - UTSOURCE
01 x UTSOURCE Reed Switch - UTSOURCE
Ето защо, чрез тази статия, ние ще ви научим как да сглобите вашето устройство за изчисляване на разстоянието с помощта на сензора за тръстиково превключване.
Стъпка 1: Проектът
Следният проект е създаден за изчисляване на изминатото разстояние с велосипеда на фитнес залата. Освен това ще научите как да създавате програмиране за проекта.
Този проект има три функции:
- Изчислете изминатото разстояние с велосипед;
- Конфигурация на радиус при стартиране на устройството;
- Адаптивен към всеки велосипед.
За достъп до тези функции потребителят ще използва трите бутона на системата. Всеки бутон има вашата функционалност. В системата имаме следните бутони:
Бутон за увеличаване: Той ще се използва за влизане в опцията за конфигуриране на радиуса на колелата и увеличаване на стойността на радиуса;
Бутон за намаляване: Той ще се използва за намаляване на опцията за конфигуриране на радиуса на колелата;
Бутон Enter: Той ще се използва за вмъкване на стойността на радиуса в системата.
Освен това разполагаме със сензор за тръстиково превключване. Той е отговорен за откриване, когато колелата направят пълен завой. За да се установи това, е необходимо да се постави магнит на колелата.
Reed Switch е представен на фигура по -горе.
Стъпка 2:
По този начин, всеки път, когато магнитът се приближи до сензора, той ще задейства сензора на Reed Switch. Процесът работи чрез следното уравнение:
Изминато разстояние = 2 * π * радиус * TurnNumber
Чрез това уравнение ще знаем какво е изминатото разстояние, извършено от велосипеда.
В уравнението радиусът се вмъква от потребителя и броят на завоите се изчислява чрез броя на завъртанията на колелото.
А за откриване на завоите на колелото е необходимо да се инсталира магнит в колелото на велосипеда и да се инсталира сензорът за тръстиково превключване близо до колелото.
За да улесним процеса, ние създаваме печатна платка за свързване на сензора за тръстиково превключване и трите бутона. Печатната платка е представена по -долу на фигурата по -долу.
Стъпка 3:
Както е показано на печатната платка е възможно да се види Arduino Nano. Той е отговорен за контрола на всички системи. Освен това имаме 5 JST конектора.
Съединителите от C1 до C4 се използват за свързване на трите бутона и сензора за Reed Switch. Сега конекторът C5 се използва за свързване на LCD 16x2 I2C.
Следователно чрез тази система можете да инсталирате проекта във вашия велосипед и да получите стойността на изминатото разстояние.
За това можете да използвате кода, представен по -долу.
#включи #включи
/*
Pinos de conex? O dos bot? Es e сензорен превключвател 8 - сензорен тръстиков превключвател 9 - Decremento 12 - Incremento 11 - Enter */
#дефинирайте МЕМОРИЯ 120
#дефинирайте PosRaio 125
#дефинирайте ReedSwitch 8
#дефинирайте BotaoEnterOk 11 #дефинирайте BotaoIncremento 12 #дефинирайте BotaoDecremento 9
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
bool сензор = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;
bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;
байт cont = 0;
безпълен дълъг int VoltaCompleta = 0;
unsigned long int tempo_atual = 0, ultimo_tempo = 0;
поплавък DistKm = 0;
без знак int raio = 0; поплавък Дистанция = 0;
void setup ()
{Serial.begin (9600); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); pinMode (12, INPUT);
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 (“km”);
raio = EEPROM.read (PosRaio);
}
void loop ()
{
// Regiao de codigo para realizar a leitura dos botoes e sensor do dispositivo
сензор = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);
// Regiao de codigo para acumular a distancia percorrida
if (сензор == 0 && estado_anterior == 1) {VoltaCompleta ++;
Distancia = (плаващ) (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 (“km”);
estado_anterior = 0;
}
ако (сензор == 1 && estado_anterior == 0)
{estado_anterior = 1; }
// Regiao de Codigo para Configurar o Raio
if (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }
ако (Incremento == 0 && EstadoAnteriorIncremento == 1)
{EstadoAnteriorIncremento = 0; lcd.clear (); ConfiguraRaio (); }}
void ConfiguraRaio ()
{
байт RaioRoda = 0;
// Imprimir mensagem para digitar o raio em cm
lcd.setCursor (0, 0); lcd.print („Inserir Raio (cm)“);
направете
{
lcd.setCursor (6, 1);
Incremento = digitalRead (BotaoIncremento);
Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);
ако (Incremento == 1 && IncrementoAnterior == 0)
{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }
ако (Incremento == 0 && IncrementoAnterior == 1)
{IncrementoAnterior = 0; }
ако (Decremento == 1 && DecrementoAnterior == 0)
{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }
ако (Decremento == 0 && DecrementoAnterior == 1)
{DecrementoAnterior = 0; }
lcd.setCursor (6, 1);
lcd.print (RaioRoda);
} while (BotaoEnter == 0);
lcd.clear ();
EEPROM.write (PosRaio, RaioRoda);
връщане; }
От този код той вероятно ще изчисли разстоянието ви с вашия Arduino.
Стъпка 4: Заключение
Следователно, в случай че искате своя собствена печатна платка, можете да получите чрез тази връзка на уебсайта на PCBWay.com. За целта можете да получите достъп до уебсайта, да създадете своя акаунт и да получите свои собствени печатни платки.
Лаборатория Silícios благодари на UTSOURCE, че предлага електронните компоненти за създаването на този проект.
Препоръчано:
Велосипеден касетен часовник: 7 стъпки (със снимки)
Велосипеден касетен часовник: Това е часовник, изработен от резервни части, които бях лежал наоколо. Поради тази причина много от използваните части могат лесно да бъдат заменени с всичко, което може да имате в къщата си. Например използването на Arduino и серво за управление на часовника определено е прекалено
Направи си сам велосипеден оборотомер: 5 стъпки (със снимки)
DIY Bike Tachometer: Ще ви покажа как да изградите скоростомер за велосипеди. Той показва вашата скорост, средната скорост, температурата, времето за пътуване и общото разстояние. Можете да го промените с помощта на бутона. Освен това скоростта се показва на тахометър. Създадох го, защото
Как изградих моя електрически велосипеден генератор: 10 стъпки
Как си построих генератора за електрически велосипеди: Пол Флек
Създаване на Arduino одометър - Част I: 4 стъпки
Създаване на одометър Arduino - Част I: Доста често срещано е колоездачите и потребителите на велотренажори да измерват скоростта и изминатото разстояние. За това се нуждаем от устройство, известно като одометър. Одометърът е отговорен за измерването на тези променливи и предаването на тази информация
Електрически одометър за скейтборд: 5 стъпки
Електрически одометър за скейтборд: Въведение Повечето електрически скейтбордове от висок клас от около хиляда долара се предлагат с приложение за телефон, което показва информация за скейтборд в реално време и за съжаление по-рентабилните скейтбордове от Китай не идват с тях. Така че защо не