Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
I mange kjøretøyer er det enheter som beregner tilbakelagt distanse og er avgjørende for å presentere informasjon for sjåføren.
Dermed er det gjennom denne informasjonen mulig å overvåke avstanden mellom to punkter, for eksempel gjennom kjøretøyets kilometerteller.
Rekvisita
01 x PCBWay Custom PCB
01 x Arduino UNO - UTSOURCE
01 x LCD 16x2 Display - UTSOURCE
01 x Brødbrett - UTSOURCE
01 x Wire Jumpers - UTSOURCE
01 x 10kR Rotary Potentiometer - UTSOURCE
01 x UTSOURCE Reed Switch - UTSOURCE
Derfor vil vi gjennom denne artikkelen lære deg hvordan du monterer avstandsberegningsenheten ved hjelp av sivbryter -sensoren.
Trinn 1: Prosjektet
Følgende prosjekt ble opprettet for å beregne tilbakelagt distanse med sykkelen på treningsstudioet. I tillegg lærer du hvordan du lager programmering for prosjektet.
Dette prosjektet har tre funksjoner:
- Beregn distansen som er reist på sykkel;
- Enhetens oppstart radiuskonfigurasjon;
- Kan tilpasses enhver sykkel.
For å få tilgang til disse funksjonene, bruker brukeren de tre knappene på systemet. Hver knapp har din funksjonalitet. I systemet har vi følgende knapper:
Inkrementsknapp: Den brukes til å angi alternativet for å konfigurere radien til hjulene og øke radiusverdien;
Reduksjonsknapp: Den vil bli brukt til å redusere alternativet for å konfigurere radien til hjulene;
Enter -knapp: Den brukes til å sette inn verdien av radius i systemet.
I tillegg har vi Reed Switch Sensor. Det er ansvarlig for å oppdage når hjulene gjør en hel sving. For å oppdage dette må den installere en magnet på hjulene.
Reed Switch er presentert i figuren ovenfor.
Steg 2:
Hver gang magneten nærmer seg sensoren, vil den således aktivere Reed Switch -sensoren. Prosessen fungerer gjennom følgende ligning:
Reist avstand = 2 * π * radius * TurnNumber
Gjennom denne ligningen vet vi hva som er den tilbakelagte distansen sykkelen utfører.
I ligningen settes radius av brukeren, og svingnummer beregnes gjennom antall omdreininger på hjulet.
Og for å oppdage svingene på hjulet er det nødvendig for å installere en magnet i sykkelhjulet og for å installere Reed Switch Sensor nær hjulet.
For å gjøre prosessen enklere, lager vi et kretskort for å koble Reed Switch Sensor og de tre knappene. Kretskortet er presentert nedenfor i figuren nedenfor.
Trinn 3:
Som det er vist i PCB er det mulig å se Arduino Nano. Det er ansvarlig for å kontrollere alle systemer. I tillegg har vi 5 JST -kontakter.
C1 til C4 -kontaktene brukes til å koble de tre knappene og Reed Switch Sensor. Nå brukes C5 -kontakten til å koble LCD 16x2 I2C.
Derfor kan du gjennom dette systemet installere prosjektet i sykkelen din og få verdien for tilbakelagt distanse.
For dette kan du bruke koden som presenteres nedenfor.
#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;
LiquidCrystal lcd (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;
byte kont = 0;
usignert lang int VoltaCompleta = 0;
usignert lang int tempo_atual = 0, ultimo_tempo = 0;
flyte DistKm = 0;
usignert int raio = 0; flyte Distancia = 0;
ugyldig oppsett ()
{Serial.begin (9600); pinMode (8, INNGANG); pinMode (9, INNGANG); pinMode (10, INNGANG); pinMode (12, INNGANG);
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 (“Distancia”); lcd.setCursor (6, 1); lcd.print (Distancia);
lcd.setCursor (14, 1);
lcd.print (“km”);
raio = EEPROM.read (PosRaio);
}
hulrom ()
{
// Regiao de codigo para realizar a leitura dos botoes and sensor do dispositivo
sensor = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Inkremento = digitalRead (BotaoIncremento);
// Regiao de codigo para acumular a distancia percorrida
if (sensor == 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;
}
hvis (sensor == 1 && estado_anterior == 0)
{estado_anterior = 1; }
// Regiao de Codigo para Configurar o Raio
hvis (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }
hvis (Incremento == 0 && EstadoAnteriorIncremento == 1)
{EstadoAnteriorIncremento = 0; lcd.clear (); ConfiguraRaio (); }}
ugyldig ConfiguraRaio ()
{
byte RaioRoda = 0;
// Imprimir mensagem para digitar o raio em cm
lcd.setCursor (0, 0); lcd.print ("Inserir Raio (cm)");
gjøre
{
lcd.setCursor (6, 1);
Inkremento = digitalRead (BotaoIncremento);
Decremento = digitalRead (BotaoDecremento); BotaoEnter = digitalRead (BotaoEnterOk);
hvis (Incremento == 1 && IncrementoAnterior == 0)
{RaioRoda = RaioRoda + 1; IncrementoAnterior = 1; }
hvis (Incremento == 0 && IncrementoAnterior == 1)
{IncrementoAnterior = 0; }
hvis (Decremento == 1 && DecrementoAnterior == 0)
{RaioRoda = RaioRoda - 1; DecrementoAnterior = 1; }
hvis (Decremento == 0 && DecrementoAnterior == 1)
{DecrementoAnterior = 0; }
lcd.setCursor (6, 1);
lcd.print (RaioRoda);
} mens (BotaoEnter == 0);
lcd.clear ();
EEPROM.write (PosRaio, RaioRoda);
komme tilbake; }
Fra denne koden vil den muligens beregne avstanden din med din Arduino.
Trinn 4: Konklusjon
Derfor, hvis du vil ha din egen PCB, kan du få tak i denne lenken på PCBWay.com -nettstedet. For dette kan du få tilgang til nettstedet, opprette kontoen din og skaffe dine egne PCB -er.
Silícios Lab takker UTSOURCE for å tilby de elektroniske komponentene for å lage dette prosjektet.