Мазмұны:

PCBWay Arduino велосипед одометрі: 4 қадам
PCBWay Arduino велосипед одометрі: 4 қадам

Бейне: PCBWay Arduino велосипед одометрі: 4 қадам

Бейне: PCBWay Arduino велосипед одометрі: 4 қадам
Бейне: ARDUINO PROJECT BICYCLE CADENCE SENSOR 2024, Шілде
Anonim
PCBWay Arduino велосипед одометрі
PCBWay Arduino велосипед одометрі

Көптеген көліктерде жүргізушіге ақпаратты ұсыну үшін қажет қашықтықты есептейтін құрылғылар бар.

Осылайша, бұл ақпарат арқылы екі нүктенің арасындағы жүріп өткен қашықтықты бақылауға болады, мысалы, көліктің одометрі арқылы.

Жабдықтар

01 x PCBWay реттелетін ПХД

01 x Arduino UNO - UTSOURCE

01 x СК 16x2 дисплей - UTSOURCE

01 x Нан тақтасы - UTSOURCE

01 x сымдық секіргіштер - UTSOURCE

01 x 10kR Айналмалы потенциометр - UTSOURCE

01 x UTSOURCE Reed Switch - UTSOURCE

Сондықтан, осы мақала арқылы біз қамысты қосқыш сенсорының көмегімен қашықтықты есептеу құрылғысын қалай жинау керектігін үйретеміз.

1 -қадам: Жоба

Жоба
Жоба

Келесі жоба жаттығу залының велосипедімен жүріп өткен қашықтықты есептеуге арналған. Сонымен қатар, сіз жобаға бағдарламалауды үйренесіз.

Бұл жобаның үш функциясы бар:

  • Велосипедпен жүріп өткен қашықтықты есептеңіз;
  • Құрылғыны іске қосу радиусының конфигурациясы;
  • Кез келген велосипедке бейімделеді.

Бұл функцияларға қол жеткізу үшін пайдаланушы жүйенің үш батырмасын пайдаланады. Әр түйме сіздің функционалдығыңызға ие. Жүйеде бізде келесі түймелер бар:

Көбейту түймесі: ол дөңгелектердің радиусын конфигурациялау және радиустың мәнін ұлғайту опциясына енгізу үшін пайдаланылады;

Жою түймесі: ол дөңгелектердің радиусын конфигурациялау опциясын азайту үшін қолданылады;

Енгізу батырмасы: ол жүйеде радиустың мәнін енгізу үшін қолданылады.

Сонымен қатар, бізде қамысты ауыстыру сенсоры бар. Дөңгелектердің толық бұрылуын анықтауға жауапты. Мұны анықтау үшін дөңгелектерге магнит орнату керек.

Reed Switch жоғарыдағы суретте көрсетілген.

2 -қадам:

Осылайша, магнит сенсорға жақындаған сайын ол Reed Switch сенсорын іске қосады. Процесс келесі теңдеу арқылы жүзеге асады:

Саяхатталған қашықтық = 2 * π * радиусы * TurnNumber

Бұл теңдеу арқылы біз велосипедпен жүріп өткен қашықтықты білеміз.

Теңдеуде пайдаланушы радиусты енгізеді, ал бұрылыс нөмірі дөңгелектің айналу саны арқылы есептеледі.

Дөңгелектің бұрылыстарын анықтау үшін велосипед дөңгелегіне магнит орнату және Дөңгелектің жанындағы қамыс қосқыш датчигін орнату қажет.

Процесті жеңілдету үшін біз қамысты ауыстыру сенсоры мен үш түймені қосу үшін баспа схемасын жасаймыз. Баспа схемасы төмендегі суретте көрсетілген.

3 -қадам:

Кескін
Кескін

ПХД -де көрсетілгендей Arduino Nano -ны көруге болады. Ол барлық жүйелерді басқаруға жауапты. Сонымен қатар, бізде 5 JST қосқышы бар.

Үш түйме мен қамысты ауыстыру датчигін қосу үшін C1 дейін C4 қосқыштары қолданылады. Енді C5 коннекторы 16x2 I2C СК қосу үшін қолданылады.

Сондықтан, бұл жүйе арқылы сіз жобаны велосипедке орнатып, жүріп өткен жолдың мәнін ала аласыз.

Ол үшін төменде келтірілген кодты қолдануға болады.

#қосу #қосу

/*

Pinos de conex? O dos botes es e sensor reed switch 8 - Сенсорлық қамысты қосқыш 9 - Decremento 12 - Incremento 11 - Enter */

120

125

#ReedSwitch 8 анықтаңыз

#BotaoEnterOk 11 анықтау #BotaoIncremento 12 анықтау #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 сенсоры = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;

bool IncrementoAnterior = 0, DecrementoAnterior = 0, BotaoEnter = 0, EstadoAnteriorIncremento = 0;

байт cont = 0;

белгісіз ұзақ int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

өзгермелі DistKm = 0;

белгісіз int raio = 0; float Distancia = 0;

жарамсыз орнату ()

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

lcd.begin (16, 2);

// Конфигурациялау үшін бағдарлама жасаңыз

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 («км»);

raio = EEPROM.read (PosRaio);

}

бос цикл ()

{

// Деректер мен сенсорлар диспетчерлік бақылауды жүзеге асырады

сенсор = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Incremento = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

егер (сенсор == 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 («км»);

estado_anterior = 0;

}

егер (сенсор == 1 && estado_anterior == 0)

{estado_anterior = 1; }

// Райо конфигурациясының региондары

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

егер (Incremento == 0 && EstadoAnteriorIncremento == 1)

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

жарамсыз ConfiguraRaio ()

{

байт RaioRoda = 0;

// Сандық сандық көрсеткіштер

lcd.setCursor (0, 0); lcd.print («Inserir Raio (см)»);

істеу

{

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

} while (BotaoEnter == 0);

lcd.clear ();

EEPROM.write (PosRaio, RaioRoda);

қайтару; }

Бұл код сіздің Arduino -мен қашықтықты есептей алады.

4 -қадам: Қорытынды

Сондықтан, егер сіз өзіңіздің жеке ПХД алғыңыз келсе, PCBWay.com веб -сайтында осы сілтеме арқылы алуға болады. Ол үшін сіз веб -сайтқа кіре аласыз, есептік жазбаңызды жасай аласыз және дербес ПХД аласыз.

Silícios зертханасы UTSOURCE -ке осы жобаны жасау үшін электронды компоненттерді ұсынғаны үшін алғыс білдіреді.

Ұсынылған: