Tartalomjegyzék:

PCBWay Arduino kerékpár kilométeróra: 4 lépés
PCBWay Arduino kerékpár kilométeróra: 4 lépés

Videó: PCBWay Arduino kerékpár kilométeróra: 4 lépés

Videó: PCBWay Arduino kerékpár kilométeróra: 4 lépés
Videó: Mercedes CLA250 cluster testing with arduino 2024, November
Anonim
PCBWay Arduino kerékpáros kilométer -számláló
PCBWay Arduino kerékpáros kilométer -számláló

Sok járműben léteznek olyan eszközök, amelyek kiszámítják a megtett távolságot, és elengedhetetlenek ahhoz, hogy információkat mutassanak a vezetőnek.

Így ezen információk révén nyomon követhető a két pont között megtett távolság, például a jármű kilométer -számlálóján keresztül.

Kellékek

01 x PCBWay Egyedi PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 kijelző - UTSOURCE

01 x Breadboard - UTSOURCE

01 x huzal jumper - UTSOURCE

01 x 10 kR forgó potenciométer - UTSOURCE

01 x UTSOURCE Reed kapcsoló - UTSOURCE

Ezért ebben a cikkben megtanítjuk, hogyan kell összeszerelni a távolságszámító eszközt a nádkapcsoló -érzékelő segítségével.

1. lépés: A projekt

A projekt
A projekt

A következő projekt az edzőterem kerékpárjával megtett távolság kiszámítására jött létre. Ezen kívül megtanulhatja, hogyan kell programot készíteni a projekthez.

Ennek a projektnek három funkciója van:

  • Számítsa ki a kerékpárral megtett távolságot;
  • Eszköz indítási sugár konfigurációja;
  • Bármilyen kerékpárhoz alkalmazkodik.

Ezen funkciók eléréséhez a felhasználó a rendszer három gombját fogja használni. Minden gomb rendelkezik a saját funkcióival. A rendszerben a következő gombok vannak:

Növelés gomb: A kerekek sugarának beállítására és a sugárérték növelésére szolgáló beállítás megadására szolgál;

Csökkentés gomb: A kerekek sugarának beállítására szolgáló opció csökkentésére szolgál;

Enter gomb: A sugár értékének beillesztésére szolgál a rendszerben.

Ezen kívül megvan a Reed Switch érzékelő. Felelős észlelni, amikor a kerekek teljes fordulatot végeznek. Ennek észleléséhez mágnest kell felszerelni a kerekekre.

A Reed kapcsoló a fenti ábrán látható.

2. lépés:

Így minden alkalommal, amikor a mágnes közeledik az érzékelőhöz, működtetni fogja a Reed Switch érzékelőt. A folyamat a következő egyenlet alapján működik:

Utazott távolság = 2 * π * sugár * TurnNumber

Ezen az egyenleten keresztül megtudjuk, mennyi a kerékpár által megtett távolság.

Az egyenletben a felhasználó a sugarat beszúrja, és a fordulatszámot a kerék fordulatainak számításával számítja ki.

És a kerék fordulatainak észleléséhez szükség van egy mágnes beépítésére a kerékpár kerékbe és a Reed kapcsoló érzékelő felszerelésére a kerék közelében.

A folyamat megkönnyítése érdekében nyomtatott áramköri lapot hozunk létre a Reed Switch érzékelő és a három gomb csatlakoztatására. A nyomtatott áramköri lapot az alábbi ábra mutatja be.

3. lépés:

Kép
Kép

Amint az a NYÁK -on látható, az Arduino Nano látható. Felelős az összes rendszer irányításáért. Ezen kívül van 5 JST csatlakozónk.

A C1 - C4 csatlakozók a három gomb és a Reed Switch érzékelő csatlakoztatására szolgálnak. Most a C5 csatlakozót használják az LCD 16x2 I2C csatlakoztatására.

Ezért ezen a rendszeren keresztül telepítheti a projektet a kerékpárjába, és megkaphatja a megtett távolság értékét.

Ehhez használhatja az alábbi kódot.

#befoglalni #befoglalni

/*

Pinos de conex? O dos bot? Es e sensor reed switch 8 - Reed Switch Reed Switch 9 - Decremento 12 - Incrementto 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;

LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

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

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

byte cont = 0;

előjel nélküli hosszú int VoltaCompleta = 0;

előjel nélküli hosszú int tempo_atual = 0, ultimo_tempo = 0;

úszó DistKm = 0;

unsigned int raio = 0; úszó Distancia = 0;

üres beállítás ()

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

lcd. kezdet (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 („Distancia”); lcd.setCursor (6, 1); lcd.print (Distancia);

lcd.setCursor (14, 1);

lcd.print („km”);

raio = EEPROM.read (PosRaio);

}

üres hurok ()

{

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

szenzor = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Növekmény = digitalRead (BotaoIncremento);

Regiao de codigo para acumular and distancia percorrida

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

Distancia = (úszó) (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_anterior = 0;

}

ha (érzékelő == 1 && estado_anterior == 0)

{estado_anterior = 1; }

Regiao de Codigo para Configurar o Raio

if (Növekmény == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

ha (Növekmény == 0 && EstadoAnteriorIncremento == 1)

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

void ConfiguraRaio ()

{

bájt RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

tedd

{

lcd.setCursor (6, 1);

Növekmény = digitalRead (BotaoIncremento);

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

ha (Incremento == 1 && IncrementoAnterior == 0)

{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }

ha (Incremento == 0 && IncrementoAnterior == 1)

{IncrementoAnterior = 0; }

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

{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }

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

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

Visszatérés; }

Ebből a kódból kiszámítja a távolságot az Arduino -val.

4. lépés: Következtetés

Ezért, ha saját PCB -t szeretne, ezen a linken keresztül szerezheti be a PCBWay.com webhelyen. Ehhez elérheti a webhelyet, létrehozhatja fiókját, és beszerezheti saját PCB -jeit.

A Silícios Lab megköszöni az UTSOURCE -nak, hogy felajánlotta a projekt létrehozásához szükséges elektronikus alkatrészeket.

Ajánlott: