ዝርዝር ሁኔታ:

PCBWay Arduino Bicycle Odometer: 4 ደረጃዎች
PCBWay Arduino Bicycle Odometer: 4 ደረጃዎች

ቪዲዮ: PCBWay Arduino Bicycle Odometer: 4 ደረጃዎች

ቪዲዮ: PCBWay Arduino Bicycle Odometer: 4 ደረጃዎች
ቪዲዮ: GPS Speedometer, Neopixel Tachometer, OLED Info designed and build by #Hayri Sponsored by #PCBWay 2024, ሀምሌ
Anonim
PCBWay Arduino ብስክሌት ኦዶሜትር
PCBWay Arduino ብስክሌት ኦዶሜትር

በብዙ ተሽከርካሪዎች ውስጥ የተጓዙበትን ርቀት የሚሰሉ እና ለአሽከርካሪው መረጃን ለማቅረብ አስፈላጊ የሆኑ መሣሪያዎች አሉ።

ስለዚህ በዚህ መረጃ አማካይነት በሁለት ነጥቦች መካከል የተጓዘውን ርቀት መከታተል ይቻላል ፣ ለምሳሌ ፣ በተሽከርካሪ ኦዶሜትር።

አቅርቦቶች

01 x PCBWay Custom PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 ማሳያ - UTSOURCE

01 x የዳቦ ሰሌዳ - UTSOURCE

01 x Wire Jumpers - UTSOURCE

01 x 10kR Rotary Potentiometer - UTSOURCE

01 x UTSOURCE Reed Switch - UTSOURCE

ስለዚህ በዚህ ጽሑፍ አማካኝነት የርቀት ስሌት መሣሪያዎን የሬድ መቀየሪያ ዳሳሽ በመጠቀም እንዴት እንደሚሰበሰቡ እናስተምራለን።

ደረጃ 1: ፕሮጀክቱ

ፕሮጀክቱ
ፕሮጀክቱ

በጂም ብስክሌት የተጓዘውን ርቀት ለማስላት የሚከተለው ፕሮጀክት ተፈጥሯል። በተጨማሪም ፣ ለፕሮጀክቱ ፕሮግራም እንዴት እንደሚፈጥሩ ይማራሉ።

ይህ ፕሮጀክት ሦስት ተግባራት አሉት

  • በብስክሌት የተጓዘበትን ርቀት ያሰሉ ፤
  • የመሣሪያ ጅምር ራዲየስ ውቅር;
  • ለማንኛውም ብስክሌት ተስማሚ።

እነዚህን ተግባራት ለመድረስ ተጠቃሚው የሥርዓቱን ሶስት አዝራሮች ይጠቀማል። እያንዳንዱ አዝራር የእርስዎ ተግባር አለው። በስርዓቱ ውስጥ የሚከተሉት አዝራሮች አሉን-

የመጨመሪያ ቁልፍ - የተሽከርካሪዎቹን ራዲየስ ለማዋቀር እና የራዲየሱን እሴት ለመጨመር በአማራጭ ውስጥ ለመግባት ጥቅም ላይ ይውላል።

የመቀነስ ቁልፍ - የተሽከርካሪዎቹን ራዲየስ ለማዋቀር አማራጩን ለመቀነስ ያገለግላል።

አዝራር ያስገቡ - በስርዓቱ ውስጥ የራዲየሱን እሴት ለማስገባት ይጠቅማል።

በተጨማሪም ፣ እኛ ሪድ መቀየሪያ ዳሳሽ አለን። መንኮራኩሮቹ ሙሉ በሙሉ ሲዞሩ የመለየት ኃላፊነት አለበት። ይህንን ለይቶ ለማወቅ በተሽከርካሪዎቹ ላይ ማግኔት መጫን አለበት።

የሪድ መቀየሪያ ከላይ በስእል ቀርቧል።

ደረጃ 2

ስለዚህ ፣ ማግኔቱ ወደ አነፍናፊው በቀረበ ቁጥር የ Reed Switch ዳሳሹን ያነቃቃል። ሂደቱ በሚከተለው ቀመር በኩል ይሠራል

የተጓዘ ርቀት = 2 * π * ራዲየስ * TurnNumber

በዚህ ቀመር አማካኝነት በብስክሌት የሚሠራው የጉዞ ርቀት ምን እንደሆነ እናውቃለን።

በቀመር ውስጥ ፣ ራዲየስ በተጠቃሚው ውስጥ ገብቷል ፣ እና የማዞሪያ ቁጥር በተሽከርካሪዎቹ ተራ በተራ ቁጥር በኩል ይሰላል።

እና የመንኮራኩሩን መዞሪያዎች ለመለየት በብስክሌት መንኮራኩር ውስጥ ማግኔት ለመጫን እና በዊል አቅራቢያ ያለውን የ Reed Switch Sensor ን መጫን ያስፈልጋል።

ሂደቱን ለማቃለል የ Reed Switch Sensor ን እና ሶስቱን አዝራሮች ለማገናኘት የታተመ የወረዳ ሰሌዳ እንፈጥራለን። የታተመው የወረዳ ቦርድ ከዚህ በታች ባለው ስእል ከዚህ በታች ቀርቧል።

ደረጃ 3

ምስል
ምስል

በፒሲቢ ውስጥ እንደሚታየው አርዱዲኖ ናኖን ማየት ይቻላል። ሁሉንም ስርዓቶች የመቆጣጠር ኃላፊነት አለበት። በተጨማሪም ፣ እኛ 5 JST አያያorsች አሉን።

C1 እስከ C4 አያያorsች ሶስቱን አዝራሮች እና የ Reed Switch Sensor ን ለማገናኘት ያገለግላሉ። አሁን ፣ C5 አያያዥ LCD 16x2 I2C ን ለማገናኘት ያገለግላል።

ስለዚህ ፣ በዚህ ስርዓት ፣ ፕሮጀክቱን በብስክሌትዎ ውስጥ መጫን እና የተጓዘውን የርቀት እሴት ማግኘት ይችላሉ።

ለዚህ ፣ ከዚህ በታች የቀረበውን ኮድ መጠቀም ይችላሉ።

#አካትት #አካትት

/*

Pinos de conex? O dos bot? Es e sensor reed switch 8 - ዳሳሽ ሪድ ቀይር 9 - ዲሬሜንቶ 12 - ጭማሪ 11 - ግባ */

#MEMORIA 120 ን ይግለጹ

#PosRaio 125 ን ይግለጹ

#ሪድ ስዊች 8 ን ይግለጹ

#መግለፅ ቦታኦእንጥር 11 11

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;

ባይት cont = 0;

ያልተፈረመ ረጅም int VoltaCompleta = 0;

ያልተፈረመ ረጅም int tempo_atual = 0 ፣ ultimo_tempo = 0;

ተንሳፋፊ DistKm = 0;

ያልተፈረመ int raio = 0; ተንሳፋፊ ዲስታሺያ = 0;

ባዶነት ማዋቀር ()

{Serial.begin (9600); pinMode (8 ፣ ግቤት); pinMode (9 ፣ ግቤት); pinMode (10 ፣ ግቤት); pinMode (12 ፣ ግቤት);

lcd.begin (16, 2);

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

ከሆነ (EEPROM.read (ሜሞሪያ)! = 73) {ConfiguraRaio (); EEPROM.write (ሜሞሪያ ፣ 73); }

lcd.setCursor (3, 0);

lcd.print (“ዲስታንሺያ”); lcd.setCursor (6, 1); lcd.print (ዲስታሺያ);

lcd.setCursor (14, 1);

lcd.print (“ኪሜ”);

raio = EEPROM.read (PosRaio);

}

ባዶነት loop ()

{

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

አነፍናፊ = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

ከሆነ (ዳሳሽ == 0 && estado_anterior == 1) {VoltaCompleta ++;

ዲስታሺያ = (ተንሳፋፊ) (2*3.14*ራዮ*ቮልታኮምፕሌታ) /100000.0;

lcd.setCursor (0, 1);

lcd.print (““); lcd.setCursor (6, 1); lcd.print (ዲስታሺያ);

lcd.setCursor (14, 1);

lcd.print (“ኪሜ”);

estado_anterior = 0;

}

ከሆነ (ዳሳሽ == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Regiao de Codigo para Configurar o Raio

ከሆነ (Incremento == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

ከሆነ (Incremento == 0 && EstadoAnteriorIncremento == 1)

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

ባዶ ConfiguraRaio ()

{

ባይት RaioRoda = 0;

// Imprimir mensagem para digitar o raio em ሴሜ

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

መ ስ ራ ት

{

lcd.setCursor (6, 1);

Incremento = digitalRead (BotaoIncremento);

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

ከሆነ (Incremento == 1 && IncrementoAnterior == 0)

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

ከሆነ (Incremento == 0 && IncrementoAnterior == 1)

{IncrementoAnterior = 0; }

ከሆነ (Decremento == 1 && DecrementoAnterior == 0)

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

ከሆነ (Decremento == 0 && DecrementoAnterior == 1)

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (RaioRoda);

} እያለ (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

መመለስ; }

ከዚህ ኮድ ምናልባት ርቀትዎን ከእርስዎ አርዱinoኖ ጋር ያሰላል።

ደረጃ 4 መደምደሚያ

ስለዚህ ፣ የራስዎ PCB ከፈለጉ ፣ በዚህ አገናኝ በኩል በ PCBWay.com ድርጣቢያ ላይ ማግኘት ይችላሉ። ለዚህም ድር ጣቢያውን መድረስ ፣ መለያዎን መፍጠር እና የራስዎን PCB ማግኘት ይችላሉ።

ሲልሲዮስ ላብራቶሪ ይህንን ፕሮጀክት ለመፍጠር የኤሌክትሮኒክ ክፍሎቹን ለማቅረብ UTSOURCE ን አመሰግናለሁ።

የሚመከር: