Sommario:

Contachilometri bicicletta PCBWay Arduino: 4 passaggi
Contachilometri bicicletta PCBWay Arduino: 4 passaggi

Video: Contachilometri bicicletta PCBWay Arduino: 4 passaggi

Video: Contachilometri bicicletta PCBWay Arduino: 4 passaggi
Video: bike speedometer 2024, Dicembre
Anonim
Contachilometri bicicletta Arduino PCBWay
Contachilometri bicicletta Arduino PCBWay

In molti veicoli sono presenti dispositivi che calcolano la distanza percorsa e sono indispensabili per presentare le informazioni al conducente.

Quindi, attraverso queste informazioni, è possibile monitorare la distanza percorsa tra due punti, ad esempio attraverso il contachilometri del veicolo.

Forniture

01 x PCBWay Custom PCB

01 x Arduino UNO - UTSOURCE

01 x Display LCD 16x2 - UTSOURCE

01 x tagliere - UTSOURCE

01 x ponticelli - UTSOURCE

01 x 10kR Potenziometro rotativo - UTSOURCE

01 x Interruttore Reed UTSOURCE - UTSOURCE

Pertanto, attraverso questo articolo, ti insegneremo come assemblare il tuo dispositivo di calcolo della distanza utilizzando il sensore dell'interruttore reed.

Fase 1: Il progetto

Il progetto
Il progetto

Il seguente progetto è stato realizzato per calcolare la distanza percorsa dalla bicicletta della palestra. Inoltre, imparerai come creare la programmazione per il progetto.

Questo progetto ha tre funzionalità:

  • Calcola la distanza percorsa in bicicletta;
  • Configurazione del raggio di avvio del dispositivo;
  • Adattabile a qualsiasi bici.

Per accedere a queste funzionalità, l'utente utilizzerà i tre pulsanti del sistema. Ogni pulsante ha la tua funzionalità. Nel sistema abbiamo i seguenti pulsanti:

Pulsante Incremento: servirà per entrare nell'opzione per configurare il raggio delle ruote e incrementare il valore del raggio;

Pulsante Decremento: servirà per decrementare l'opzione per configurare il raggio delle ruote;

Pulsante Invio: servirà per inserire il valore del raggio nel sistema.

Inoltre, abbiamo il sensore Reed Switch. È responsabile di rilevare quando le ruote fanno un giro completo. Per rilevarlo, è necessario installare un magnete sulle ruote.

L'interruttore Reed è presentato nella figura sopra.

Passo 2:

Pertanto, ogni volta che il magnete si avvicina al sensore, aziona il sensore Reed Switch. Il processo funziona attraverso la seguente equazione:

Distanza percorsa = 2 *π * raggio * TurnNumber

Attraverso questa equazione sapremo qual è la distanza percorsa dalla bicicletta.

Nell'equazione, il raggio viene inserito dall'utente e il numero di giri viene calcolato attraverso il numero di giri della ruota.

E per rilevare i giri della ruota è necessario installare un magnete nella ruota della bicicletta e installare il sensore dell'interruttore a lamella vicino alla ruota.

Per facilitare il processo, creiamo un circuito stampato per collegare il sensore Reed Switch e i tre pulsanti. Il circuito stampato è presentato di seguito nella figura sottostante.

Passaggio 3:

Immagine
Immagine

Come mostrato nel PCB è possibile vedere l'Arduino Nano. È responsabile del controllo di tutti i sistemi. Inoltre, abbiamo 5 connettori JST.

I connettori da C1 a C4 vengono utilizzati per collegare i tre pulsanti e il sensore Reed Switch. Ora, il connettore C5 viene utilizzato per collegare l'LCD 16x2 I2C.

Pertanto, attraverso questo sistema, puoi installare il progetto nella tua bicicletta e ottenere il valore della distanza percorsa.

Per questo, puoi utilizzare il codice presentato di seguito.

#include #include

/*

Pinos de conex?o dos bot?es e sensor reed switch 8 - Sensor Reed Switch 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;

LCD a cristalli liquidi (rs, en, d4, d5, d6, d7);

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

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

byte cont = 0;

unsigned long int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

float DistKm = 0;

unsigned int raio = 0; float Distanza = 0;

configurazione nulla()

{ Serial.begin(9600); pinMode(8, INGRESSO); pinMode(9, INGRESSO); pinMode(10, INGRESSO); pinMode(12, INGRESSO);

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(“Distanza”); lcd.setCursor(6, 1); lcd.print(Distanza);

lcd.setCursor(14, 1);

lcd.print(“km”);

raio = EEPROM.read(PosRaio);

}

ciclo vuoto()

{

//Regiao de codigo para realizar a leitura dos botoes and sensor do device

sensore = digitalRead(ReedSwitch); Decremento = digitalRead(BotaoDecremento); Incremento = digitalRead(BotaoIncremento);

//Regiao de codigo para acumular a distancia percorrida

if(sensore == 0 && estado_anterior == 1) { VoltaCompleta++;

Distanza = (float)(2*3.14*raio*VoltaCompleta)/100000.0;

lcd.setCursor(0, 1);

lcd.print(““); lcd.setCursor(6, 1); lcd.print(Distanza);

lcd.setCursor(14, 1);

lcd.print(“km”);

stato_anteriore = 0;

}

if(sensore == 1 && stato_anterior == 0)

{ stato_anteriore = 1; }

//Regiao de Codigo para Configurar o Raio

if(Incremento == 1 && IncrementoAnteriore == 0) { IncrementoAnteriore = 1; }

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

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

void ConfiguraRaio()

{

byte RaioRoda = 0;

//Imprimir mensagem para digitar o raio em cm

lcd.setCursor(0, 0); lcd.print(“Inserisci Raio(cm)”);

fare

{

lcd.setCursor(6, 1);

Incremento = digitalRead(BotaoIncremento);

Decremento = digitalRead(BotaoDecremento); BotaoEnter = digitalRead(BotaoEnterOk);

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

{ RaioRoda = RaioRoda + 1; IncrementoAnteriore = 1; }

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

{ IncrementoAnteriore = 0; }

if(Decremento == 1 && DecrementoAnteriore == 0)

{ RaioRoda = RaioRoda - 1; DecrementoAnteriore = 1; }

if(Decremento == 0 && DecrementoAnteriore == 1)

{ DecrementoAnteriore = 0; }

lcd.setCursor(6, 1);

lcd.print(RaioRoda);

}while(BotaoEnter == 0);

lcd.clear();

EEPROM.write(PosRaio, RaioRoda);

Restituzione; }

Da questo codice calcolerà eventualmente la tua distanza con il tuo Arduino.

Passaggio 4: conclusione

Pertanto, se desideri il tuo PCB, puoi ottenerlo tramite questo link sul sito PCBWay.com. Per questo, puoi accedere al sito Web, creare il tuo account e ottenere i tuoi PCB.

Il Silícios Lab ringrazia UTSOURCE per offrire i componenti elettronici per creare questo progetto.

Consigliato: