Съдържание:

PCBWay Arduino велосипеден одометър: 4 стъпки
PCBWay Arduino велосипеден одометър: 4 стъпки

Видео: PCBWay Arduino велосипеден одометър: 4 стъпки

Видео: PCBWay Arduino велосипеден одометър: 4 стъпки
Видео: Как подключить МК в автомобиле (Подключаю Arduino Nano) 2024, Юли
Anonim
PCBWay Arduino велосипеден одометър
PCBWay Arduino велосипеден одометър

В много превозни средства има устройства, които изчисляват изминатото разстояние и са от съществено значение за представяне на информация на водача.

По този начин чрез тази информация е възможно да се следи изминатото разстояние между две точки, например чрез километража на автомобила.

Консумативи

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, че предлага електронните компоненти за създаването на този проект.

Препоръчано: