Inhaltsverzeichnis:

PCBWay Arduino Fahrrad-Kilometerzähler - Gunook
PCBWay Arduino Fahrrad-Kilometerzähler - Gunook

Video: PCBWay Arduino Fahrrad-Kilometerzähler - Gunook

Video: PCBWay Arduino Fahrrad-Kilometerzähler - Gunook
Video: How to add more PINs to Arduino with custom PCB from @PCBWay #arduino #hardware #electronics #diy 2024, November
Anonim
PCBWay Arduino Fahrrad-Kilometerzähler
PCBWay Arduino Fahrrad-Kilometerzähler

In vielen Fahrzeugen gibt es Geräte, die die zurückgelegte Strecke berechnen und für die Darstellung von Informationen an den Fahrer unerlässlich sind.

Somit ist es durch diese Informationen möglich, die zwischen zwei Punkten zurückgelegte Entfernung zu überwachen, beispielsweise durch den Fahrzeug-Kilometerzähler.

Lieferungen

01 x PCBWay Custom PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 Display - UTSOURCE

01 x Steckbrett - UTSOURCE

01 x Drahtbrücken - UTSOURCE

01 x 10kR Drehpotentiometer - UTSOURCE

01 x UTSOURCE Reed-Schalter - UTSOURCE

Daher werden wir Ihnen in diesem Artikel beibringen, wie Sie Ihr Entfernungsberechnungsgerät mit dem Reedschaltersensor zusammenbauen.

Schritt 1: Das Projekt

Das Projekt
Das Projekt

Das folgende Projekt wurde erstellt, um die zurückgelegte Strecke mit dem Fahrrad des Fitnessstudios zu berechnen. Außerdem erfahren Sie, wie Sie die Programmierung für das Projekt erstellen.

Dieses Projekt hat drei Funktionen:

  • Berechnen Sie die mit dem Fahrrad zurückgelegte Strecke;
  • Konfiguration des Gerätestartradius;
  • An jedes Fahrrad anpassbar.

Um auf diese Funktionen zuzugreifen, verwendet der Benutzer die drei Tasten des Systems. Jede Taste hat Ihre Funktionalität. Im System haben wir die folgenden Schaltflächen:

Inkrementieren-Taste: Wird verwendet, um die Option zum Konfigurieren des Radius der Räder einzugeben und den Radiuswert zu erhöhen;

Dekrementieren-Taste: Wird verwendet, um die Option zum Konfigurieren des Radradius zu verringern;

Eingabetaste: Wird verwendet, um den Wert des Radius in das System einzugeben.

Darüber hinaus haben wir den Reed-Schalter-Sensor. Es ist dafür verantwortlich zu erkennen, wann die Räder eine vollständige Umdrehung machen. Um dies zu erkennen, muss ein Magnet an den Rädern angebracht werden.

Der Reed-Schalter ist in der Abbildung oben dargestellt.

Schritt 2:

Jedes Mal, wenn sich der Magnet dem Sensor nähert, betätigt er daher den Reed-Schalter-Sensor. Der Prozess funktioniert durch die folgende Gleichung:

Zurückgelegte Strecke = 2 *π * Radius * TurnNumber

Durch diese Gleichung wissen wir, wie hoch die vom Fahrrad zurückgelegte Strecke ist.

In die Gleichung wird der Radius vom Benutzer eingefügt und die Turn Number wird durch die Anzahl der Umdrehungen des Rades berechnet.

Und um die Drehungen des Rades zu erkennen, ist es erforderlich, einen Magneten im Fahrradrad zu installieren und den Reed-Schalter-Sensor in der Nähe des Rades zu installieren.

Um den Prozess zu vereinfachen, erstellen wir eine Leiterplatte, um den Reed-Schalter-Sensor und die drei Tasten zu verbinden. Die Leiterplatte ist unten in der Abbildung unten dargestellt.

Schritt 3:

Bild
Bild

Wie auf der Platine gezeigt, ist der Arduino Nano zu sehen. Es ist für die Steuerung aller Systeme verantwortlich. Darüber hinaus haben wir 5 JST-Anschlüsse.

Die Anschlüsse C1 bis C4 werden verwendet, um die drei Tasten und den Reedschaltersensor anzuschließen. Nun wird der C5 Connector verwendet, um das LCD 16x2 I2C anzuschließen.

Daher können Sie mit diesem System das Projekt in Ihrem Fahrrad installieren und den zurückgelegten Entfernungswert abrufen.

Dazu können Sie den unten dargestellten Code verwenden.

#einschließen #einschließen

/*

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

Flüssigkristallanzeige (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;

Bytefort = 0;

unsigned long int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

Schwimmer DistKm = 0;

unsigned int raio = 0; Schwimmer Distanz = 0;

Void-Setup ()

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

lcd.begin(16, 2);

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

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

lcd.setCursor(3, 0);

lcd.print ("Entfernung"); lcd.setCursor(6, 1); lcd.print (Distanz);

lcd.setCursor(14, 1);

lcd.print("km");

raio = EEPROM.read (PosRaio);

}

Leere Schleife ()

{

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

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

//Regiao de codigo para acumular a distancia percorrida

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

Distanz = (Schwimmer)(2*3,14*raio*VoltaKomplett)/100000,0;

lcd.setCursor(0, 1);

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

lcd.setCursor(14, 1);

lcd.print("km");

estado_anterior = 0;

}

if(sensor == 1 && estado_anterior == 0)

{ estado_anterior = 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()

{

Byte RaioRoda = 0;

//Imprimir mensagem para digitar o raio em cm

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

tun

{

lcd.setCursor(6, 1);

Incremento = digitalRead (BotaoIncremento);

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

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

{RaioRoda = RaioRoda + 1; IncrementtoAnterior = 1; }

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

{ IncrementtoAnterior = 0; }

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

{RaioRoda = RaioRoda - 1; DecrementtoAnterior = 1; }

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

{ DecrementtoAnterior = 0; }

lcd.setCursor(6, 1);

lcd.print (RaioRoda);

} while(BotaoEnter == 0);

lcd.clear();

EEPROM.write (PosRaio, RaioRoda);

Rückkehr; }

Aus diesem Code wird möglicherweise Ihre Entfernung mit Ihrem Arduino berechnet.

Schritt 4: Fazit

Wenn Sie also Ihre eigene Leiterplatte wünschen, können Sie diese über diesen Link auf der Website PCBWay.com beziehen. Dazu können Sie auf die Website zugreifen, Ihr Konto erstellen und Ihre eigenen PCBs erhalten.

Das Silícios Lab dankt UTSOURCE dafür, die elektronischen Komponenten für dieses Projekt anzubieten.

Empfohlen: