Table des matières:

Odomètre de vélo PCBWay Arduino: 4 étapes
Odomètre de vélo PCBWay Arduino: 4 étapes

Vidéo: Odomètre de vélo PCBWay Arduino: 4 étapes

Vidéo: Odomètre de vélo PCBWay Arduino: 4 étapes
Vidéo: Arduino GPS Speedometer with Analog Gauge 2024, Juillet
Anonim
Odomètre de vélo PCBWay Arduino
Odomètre de vélo PCBWay Arduino

Dans de nombreux véhicules, il existe des dispositifs qui calculent la distance parcourue et sont indispensables pour présenter des informations au conducteur.

Ainsi, grâce à ces informations, il est possible de suivre la distance parcourue entre deux points, par exemple, grâce au compteur kilométrique du véhicule.

Fournitures

01 x PCBWay personnalisé PCB

01 x Arduino UNO - UTSOURCE

01 x écran LCD 16x2 - UTSOURCE

01 x Planche à pain - UTSOURCE

01 x cavaliers filaires - UTSOURCE

Potentiomètre rotatif 01 x 10kR - UTSOURCE

01 x UTSOURCE Reed Switch - UTSOURCE

Par conséquent, à travers cet article, nous allons vous apprendre à assembler votre appareil de calcul de distance à l'aide du capteur Reed switch.

Étape 1: Le projet

Le projet
Le projet

Le projet suivant a été créé pour calculer la distance parcourue par le vélo du gymnase. De plus, vous apprendrez à créer une programmation pour le projet.

Ce projet a trois fonctionnalités:

  • Calculer la distance parcourue à vélo;
  • Configuration du rayon de démarrage de l'appareil;
  • Adaptable à n'importe quel vélo.

Pour accéder à ces fonctionnalités, l'utilisateur utilisera les trois boutons du système. Chaque bouton a votre fonctionnalité. Dans le système, nous avons les boutons suivants:

Bouton Incrémenter: Il sera utilisé pour entrer dans l'option pour configurer le rayon des roues et incrémenter la valeur du rayon;

Bouton de décrémentation: Il sera utilisé pour décrémenter l'option pour configurer le rayon des roues;

Bouton Enter: Il sera utilisé pour insérer la valeur du rayon dans le système.

De plus, nous avons le capteur Reed Switch. Il est chargé de détecter quand les roues font un tour complet. Pour le détecter, il faut installer un aimant sur les roues.

Le commutateur Reed est présenté dans la figure ci-dessus.

Étape 2:

Ainsi, chaque fois que l'aimant s'approche du capteur, il actionnera le capteur Reed Switch. Le processus fonctionne à travers l'équation suivante:

Distance parcourue = 2 *π * rayon * TurnNumber

Grâce à cette équation, nous saurons quelle est la distance parcourue effectuée par le vélo.

Dans l'équation, le rayon est inséré par l'utilisateur et le nombre de tours est calculé à partir du nombre de tours de la roue.

Et pour détecter les tours de roue, il faut installer un aimant dans la roue de vélo et installer le capteur Reed Switch près de la roue.

Pour faciliter le processus, nous créons une carte de circuit imprimé pour connecter le capteur Reed Switch et les trois boutons. La carte de circuit imprimé est présentée ci-dessous dans la figure ci-dessous.

Étape 3:

Image
Image

Comme le montre le PCB, il est possible de voir l'Arduino Nano. Il est chargé de contrôler tous les systèmes. De plus, nous avons 5 connecteurs JST.

Les connecteurs C1 à C4 sont utilisés pour connecter les trois boutons et le capteur Reed Switch. Maintenant, le connecteur C5 est utilisé pour connecter le LCD 16x2 I2C.

Par conséquent, grâce à ce système, vous pouvez installer le projet dans votre vélo et obtenir la valeur de la distance parcourue.

Pour cela, vous pouvez utiliser le code présenté ci-dessous.

#include #include

/*

Pinos de conex?o dos bot?es e capteur Reed switch 8 - Sensor Reed Switch 9 - Decremento 12 - Incremento 11 - Enter */

#définir MEMORIA 120

#définir PosRaio 125

#définir 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 lcd(rs, en, d4, d5, d6, d7);

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

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

octet cont = 0;

int long non signé VoltaCompleta = 0;

int long non signé tempo_atual = 0, ultimo_tempo = 0;

float DistKm = 0;

int raio non signé = 0; Distance flottante = 0;

void setup()

{ Serial.begin(9600); pinMode(8, ENTREE); pinMode(9, ENTREE); pinMode(10, ENTRÉE); pinMode(12, ENTRÉE);

lcd.begin (16, 2);

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

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

lcd.setCursor(3, 0);

lcd.print("Distance"); lcd.setCursor (6, 1); lcd.print(Distancia);

lcd.setCursor(14, 1);

lcd.print(« km »);

raio = EEPROM.read(PosRaio);

}

boucle vide()

{

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

capteur = digitalRead (ReedSwitch); Decremento = digitalRead(BotaoDecremento); Incrémento = digitalRead(BotaoIncremento);

//Regiao de codigo para acumular a distancia percorrida

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

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

lcd.setCursor(0, 1);

lcd.print (" "); lcd.setCursor (6, 1); lcd.print(Distancia);

lcd.setCursor(14, 1);

lcd.print(« km »);

estado_antérieur = 0;

}

if(capteur == 1 && estado_antérieur == 0)

{ estado_antérieur = 1; }

//Regiao de Codigo para Configurar o Raio

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

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

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

void ConfiguraRaio()

{

octet RaioRoda = 0;

//Imprimir mensagem para digitar o raio em cm

lcd.setCursor(0, 0); lcd.print ("Inserir Raio (cm)");

faire

{

lcd.setCursor (6, 1);

Incrémento = digitalRead(BotaoIncremento);

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

if(Incrémento == 1 && IncrémentoAnterior == 0)

{ RaioRoda = RaioRoda + 1; IncrémentoAnterior = 1; }

if(Incrémento == 0 && IncrémentoAnterior == 1)

{ IncrémentoAnterior = 0; }

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

{ RaioRoda = RaioRoda - 1; DécrémentoAnterior = 1; }

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

{ DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print(RaioRoda);

} while(BotaoEnter == 0);

lcd.clear();

EEPROM.write(PosRaio, RaioRoda);

revenir; }

A partir de ce code il calculera éventuellement votre distance avec votre Arduino.

Étape 4: Conclusion

Par conséquent, si vous souhaitez votre propre PCB, vous pouvez l'obtenir via ce lien sur le site PCBWay.com. Pour cela, vous pouvez accéder au site Web, créer votre compte et obtenir vos propres PCB.

Le Silícios Lab remercie UTSOURCE d'offrir les composants électroniques pour créer ce projet.

Conseillé: