2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În multe vehicule, există dispozitive care calculează distanța parcursă și sunt esențiale pentru prezentarea informațiilor șoferului.
Astfel, prin intermediul acestor informații, este posibil să se monitorizeze distanța parcursă între două puncte, de exemplu, prin kilometrajul vehiculului.
Provizii
01 x PCBWay PCB personalizat
01 x Arduino UNO - UTSOURCE
01 x LCD 16x2 Display - UTSOURCE
01 x Breadboard - UTSOURCE
01 x Wire Jumpers - UTSOURCE
Potențiometru rotativ 01 x 10kR - UTSOURCE
01 x UTSOURCE Reed Switch - UTSOURCE
Prin urmare, prin acest articol, vă vom învăța cum să vă asamblați dispozitivul de calculare a distanței utilizând senzorul de comutare reed.
Pasul 1: Proiectul
Următorul proiect a fost creat pentru a calcula distanța parcursă cu bicicleta sălii de sport. În plus, veți învăța cum să creați programare pentru proiect.
Acest proiect are trei funcționalități:
- Calculați distanța parcursă cu bicicleta;
- Configurarea razei de pornire a dispozitivului;
- Adaptabil la orice bicicletă.
Pentru a accesa aceste funcționalități, utilizatorul va folosi cele trei butoane ale sistemului. Fiecare buton are funcționalitatea dvs. În sistem avem următoarele butoane:
Buton de incrementare: Acesta va fi folosit pentru a intra în opțiunea de configurare a razei roților și pentru a crește valoarea razei;
Buton Decrement: Acesta va fi folosit pentru a diminua opțiunea de configurare a razei roților;
Buton Enter: Acesta va fi folosit pentru a insera valoarea razei în sistem.
În plus, avem senzorul Reed Switch. Este responsabil să detecteze când roțile se întorc complet. Pentru a detecta acest lucru, trebuie să instalați un magnet pe roți.
Comutatorul Reed este prezentat în figura de mai sus.
Pasul 2:
Astfel, de fiecare dată când magnetul se apropie de senzor, acesta va acționa senzorul Reed Switch. Procesul funcționează prin următoarea ecuație:
Distanța parcursă = 2 * π * raza * TurnNumber
Prin această ecuație, vom ști care este distanța parcursă efectuată de bicicletă.
În ecuație, raza este inserată de utilizator, iar numărul de viraj este calculat prin numărul de spire ale roții.
Și pentru a detecta rotațiile roții este necesară instalarea unui magnet în roata bicicletei și instalarea senzorului de comutare Reed lângă roată.
Pentru a ușura procesul, creăm o placă cu circuite imprimate pentru a conecta senzorul de comutare Reed și cele trei butoane. Placa cu circuite imprimate este prezentată mai jos în figura de mai jos.
Pasul 3:
După cum se arată în PCB, este posibil să vedeți Arduino Nano. Este responsabil să controleze toate sistemele. În plus, avem 5 conectori JST.
Conectorii C1 până la C4 sunt utilizați pentru a conecta cele trei butoane și senzorul de comutare Reed. Acum, conectorul C5 este utilizat pentru a conecta ecranul LCD 16x2 I2C.
Prin urmare, prin acest sistem, puteți instala proiectul în bicicleta dvs. și puteți obține valoarea distanței parcurse.
Pentru aceasta, puteți utiliza codul prezentat mai jos.
#include #include
/*
Pinos de conexiune? Dos bot? E 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;
LiquidCrystal lcd (rs, en, d4, d5, d6, d7);
senzor bool = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;
bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;
octet cont = 0;
unsigned long int VoltaCompleta = 0;
unsigned long int tempo_atual = 0, ultimo_tempo = 0;
plutitor DistKm = 0;
unsigned int raio = 0; plutitor Distancia = 0;
configurare nulă ()
{Serial.begin (9600); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); pinMode (12, INPUT);
lcd.inceput (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);
}
bucla nulă ()
{
// Regiao de codigo para realizar a leitura dos botoes e sensor do dispositivo
senzor = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);
// Regiao de codigo para acumular a distancia percorrida
if (senzor == 0 && estado_anterior == 1) {VoltaCompleta ++;
Distancia = (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_anterior = 0;
}
if (senzor == 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 ()
{
octet RaioRoda = 0;
// Imprimir mensagem pentru digitar o raio em cm
lcd.setCursor (0, 0); lcd.print („Inserir Raio (cm)”);
do
{
lcd.setCursor (6, 1);
Incremento = digitalRead (BotaoIncremento);
Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);
if (Incremento == 1 && IncrementoAnterior == 0)
{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }
if (Incremento == 0 && IncrementoAnterior == 1)
{IncrementoAnterior = 0; }
if (Decremento == 1 && DecrementoAnterior == 0)
{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }
if (Decremento == 0 && DecrementoAnterior == 1)
{DecrementoAnterior = 0; }
lcd.setCursor (6, 1);
lcd.print (RaioRoda);
} while (BotaoEnter == 0);
lcd.clear ();
EEPROM.write (PosRaio, RaioRoda);
întoarcere; }
Din acest cod, probabil, vă va calcula distanța cu Arduino.
Pasul 4: Concluzie
Prin urmare, dacă doriți propriul PCB, îl puteți obține prin acest link de pe site-ul PCBWay.com. Pentru aceasta, puteți accesa site-ul web, vă puteți crea contul și puteți obține propriile PCB-uri.
Laboratorul Silícios mulțumește UTSOURCE pentru a oferi componentele electronice pentru a crea acest proiect.