2025 Autor: John Day | [email protected]. Zadnja promjena: 2025-01-13 06:57
U mnogim vozilima postoje uređaji koji izračunavaju prijeđenu udaljenost i bitni su za prezentiranje informacija vozaču.
Tako je putem ovih informacija moguće nadzirati prijeđenu udaljenost između dviju točaka, na primjer, putem brojača kilometara.
Pribor
01 x PCBWay prilagođena PCB
01 x Arduino UNO - UTSOURCE
01 x LCD 16x2 zaslon - UTSOURCE
01 x Oglasna ploča - UTSOURCE
01 x Žičani kratkospojnici - UTSOURCE
Rotacijski potenciometar 01 x 10kR - UTSOURCE
01 x UTSOURCE Reed Switch - UTSOURCE
Stoga ćemo vas kroz ovaj članak naučiti kako sastaviti uređaj za izračunavanje udaljenosti pomoću osjetnika sklopke za trsku.
Korak 1: Projekt
Sljedeći projekt nastao je za izračunavanje prijeđene udaljenosti biciklom u teretani. Osim toga, naučit ćete kako stvoriti programiranje za projekt.
Ovaj projekt ima tri funkcionalnosti:
- Izračunajte prijeđenu udaljenost biciklom;
- Konfiguracija radijusa pokretanja uređaja;
- Prilagodljiv svakom biciklu.
Za pristup tim funkcijama korisnik će koristiti tri tipke sustava. Svaki gumb ima svoju funkcionalnost. U sustavu imamo sljedeće gumbe:
Gumb za povećanje: Koristit će se za unos opcije za konfiguriranje radijusa kotača i povećanje vrijednosti radijusa;
Gumb za smanjenje: Koristit će se za smanjenje opcije za konfiguriranje radijusa kotača;
Gumb Enter: Koristit će se za umetanje vrijednosti radijusa u sustav.
Osim toga, imamo senzor sklopke za trstiku. On je odgovoran za otkrivanje kada se kotači potpuno okreću. Da bi se to otkrilo, potrebno je postaviti magnet na kotače.
Reed prekidač prikazan je na gornjoj slici.
Korak 2:
Tako će svaki put kad se magnet približi senzoru aktivirati senzor Reed Switch. Proces funkcionira kroz sljedeću jednadžbu:
Putovana udaljenost = 2 * π * radijus * Broj zavoja
Pomoću ove jednadžbe saznat ćemo koliku je udaljenost prešao bicikl.
U jednadžbu korisnik unosi radijus, a broj okretaja izračunava se kroz broj okretaja kotača.
A za otkrivanje zavoja kotača potrebno je ugraditi magnet u kotač bicikla i postaviti senzor sklopke za trkače blizu kotača.
Kako bismo olakšali proces, stvaramo tiskanu ploču za povezivanje osjetnika sklopke za trstiku i tri gumba. Tiskana ploča predstavljena je dolje na donjoj slici.
3. korak:
Kao što je prikazano na PCB -u moguće je vidjeti Arduino Nano. On je odgovoran za kontrolu svih sustava. Osim toga, imamo 5 JST konektora.
Priključci C1 do C4 koriste se za povezivanje tri gumba i osjetnika sklopke za trstiku. Sada se C5 konektor koristi za povezivanje LCD 16x2 I2C.
Stoga, putem ovog sustava, možete instalirati projekt na svoj bicikl i dobiti vrijednost prijeđene udaljenosti.
Za to možete upotrijebiti dolje prikazani kôd.
#include #include
/*
Pinos de conex? O dos bot? Es e senzorski prekidač 8 - senzorski reed prekidač 9 - Decremento 12 - Incremento 11 - Enter */
#definirajte MEMORIJU 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;
LCD tekući kristal (rs, en, d4, d5, d6, d7);
bool senzor = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;
bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;
bajt cont = 0;
bezznačni dugi int VoltaCompleta = 0;
unsigned long int tempo_atual = 0, ultimo_tempo = 0;
plovak DistKm = 0;
bez potpisa int raio = 0; plovak Distancia = 0;
void setup ()
{Serial.begin (9600); pinMode (8, INPUT); pinMode (9, INPUT); pinMode (10, INPUT); pinMode (12, INPUT);
lcd.begin (16, 2);
// Regiao de codigo para configurar o raio da roda do veiculo
if (EEPROM.čitaj (MEMORIJA)! = 73) {ConfiguraRaio (); EEPROM.pisati (MEMORIJA, 73); }
lcd.setCursor (3, 0);
lcd.print ("Distancia"); lcd.setCursor (6, 1); lcd.print (Distancia);
lcd.setCursor (14, 1);
lcd.print ("km");
raio = EEPROM.čitano (PosRaio);
}
void loop ()
{
// Regiao de codigo para realizar a leitura dos botoes e sensor do dispositivo
senzor = digitalno čitanje (ReedSwitch); Decremento = digitalno čitanje (BotaoDecremento); Incremento = digitalno čitanje (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;
}
ako (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 ()
{
bajt RaioRoda = 0;
// Imprimir mensagem para digitar o raio em cm
lcd.setCursor (0, 0); lcd.print ("Inserir Raio (cm)");
čini
{
lcd.setCursor (6, 1);
Incremento = digitalno čitanje (BotaoIncremento);
Decremento = digitalno čitanje (BotaoDecremento); BotaoEnter = digitalno čitanje (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);
povratak; }
Iz ovog koda moguće će izračunati vašu udaljenost od vašeg Arduina.
Korak 4: Zaključak
Stoga, ako želite vlastiti PCB, možete ga dobiti putem ove veze na web stranici PCBWay.com. U tu svrhu možete pristupiti web stranici, stvoriti svoj račun i nabaviti vlastite PCB -ove.
Silícios Lab zahvaljuje UTSOURCE -u što nudi elektroničke komponente za stvaranje ovog projekta.