INHOUDSOPGAWE:

PCBWay Arduino fietsafstandsmeter: 4 stappe
PCBWay Arduino fietsafstandsmeter: 4 stappe

Video: PCBWay Arduino fietsafstandsmeter: 4 stappe

Video: PCBWay Arduino fietsafstandsmeter: 4 stappe
Video: Wi-Fi 300 Мбит/с своими руками из старого планшета 2024, November
Anonim
PCBWay Arduino fietsafstandsmeter
PCBWay Arduino fietsafstandsmeter

In baie voertuie is daar toestelle wat die afgelegde afstand bereken en noodsaaklik is om inligting aan die bestuurder voor te lê.

Deur middel van hierdie inligting is dit dus moontlik om die afstand wat tussen twee punte afgelê is, byvoorbeeld deur die voertuig se kilometerteller, te monitor.

Voorrade

01 x PCBWay Custom PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 -skerm - UTSOURCE

01 x Breadboard - UTSOURCE

01 x Wire Jumpers - UTSOURCE

01 x 10kR Rotary Potentiometer - UTSOURCE

01 x UTSOURCE Reed Switch - UTSOURCE

Daarom leer ons deur middel van hierdie artikel u hoe u u afstandberekeningstoestel met die rietskakelaarsensor kan monteer.

Stap 1: Die projek

Die projek
Die projek

Die volgende projek is gemaak om die afgelegde afstand per fiets van die gimnasium te bereken. Boonop leer u hoe u programmering vir die projek kan skep.

Hierdie projek het drie funksies:

  • Bereken die afstand wat per fiets afgelê is;
  • Opstelradiuskonfigurasie van toestel;
  • Aanpasbaar vir enige fiets.

Om toegang tot hierdie funksies te verkry, gebruik die gebruiker die drie knoppies van die stelsel. Elke knoppie het u funksies. In die stelsel het ons die volgende knoppies:

Toename -knoppie: dit sal gebruik word om die opsie in te voer om die radius van die wiele op te stel en die radiuswaarde te verhoog;

Afname -knoppie: dit sal gebruik word om die opsie om die radius van die wiele op te stel, te verminder;

Tik -knoppie: dit sal gebruik word om die waarde van die radius in die stelsel in te voeg.

Boonop het ons die Reed Switch Sensor. Dit is verantwoordelik om op te spoor wanneer die wiele heeltemal draai. Om dit op te spoor, moet 'n magneet op die wiele aangebring word.

Die Reed Switch word in figuur hierbo aangebied.

Stap 2:

Elke keer as die magneet die sensor nader, sal dit die Reed Switch -sensor aktiveer. Die proses werk deur die volgende vergelyking:

Afgelegde afstand = 2 * π * radius * TurnNumber

Deur hierdie vergelyking weet ons wat die afgelegde afstand van die fiets is.

In die vergelyking word die radius deur die gebruiker ingevoeg, en draai -nommer word bereken deur die aantal draaie van die wiel.

En om die draai van die wiel op te spoor, is dit nodig om 'n magneet in die fietswiel te installeer en die rietskakelaarsensor naby die wiel te installeer.

Om die proses makliker te maak, skep ons 'n printplaat om die Reed Switch Sensor en die drie knoppies aan te sluit. Die printplaat word hieronder in die onderstaande figuur aangebied.

Stap 3:

Beeld
Beeld

Soos in die PCB getoon word, is dit moontlik om die Arduino Nano te sien. Dit is verantwoordelik om alle stelsels te beheer. Boonop het ons 5 JST -verbindings.

Die C1 tot C4 -verbindings word gebruik om die drie knoppies en die Reed Switch Sensor te verbind. Die C5 -aansluiting word nou gebruik om die LCD 16x2 I2C aan te sluit.

Daarom kan u deur middel van hierdie stelsel die projek op u fiets installeer en die waarde van die afgelegde afstand kry.

Hiervoor kan u die onderstaande kode gebruik.

#include #include

/*

Pinos de conex? O dos bot? Es e sensor reed switch 8 - Sensor Reed Switch 9 - Decremento 12 - Incremento 11 - Enter */

#definieer MEMORIA 120

#definieer PosRaio 125

#definieer ReedSwitch 8

#definieer BotaoEnterOk 11 #definieer BotaoIncremento 12 #definieer 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;

ongetekende lang int VoltaCompleta = 0;

ongetekende lang int tempo_atual = 0, ultimo_tempo = 0;

float DistKm = 0;

ongetekende int raio = 0; float Distancia = 0;

leemte opstelling ()

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

lcd.begin (16, 2);

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

as (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);

}

leemte lus ()

{

// 'n Regiao de codigo para realizar a leitura dos botoes en sensor do dispositivo

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

// Regiao de codigo para acumular a distancia percorrida

as (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;

}

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

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

as (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

as (Incremento == 0 && EstadoAnteriorIncremento == 1)

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

ongeldig ConfiguraRaio ()

{

byte RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

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

doen

{

lcd.setCursor (6, 1);

Incremento = digitalRead (BotaoIncremento);

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

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

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

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

{IncrementoAnterior = 0; }

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

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

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

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} terwyl (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

terugkeer; }

Uit hierdie kode sal dit moontlik u afstand met u Arduino bereken.

Stap 4: Gevolgtrekking

As u dus u eie PCB wil hê, kan u dit via die skakel op die PCBWay.com -webwerf verkry. Hiervoor kan u toegang tot die webwerf verkry, u rekening skep en u eie PCB's kry.

Die Silícios Lab bedank UTSOURCE om die elektroniese komponente aan te bied om hierdie projek te skep.

Aanbeveel: