Мазмуну:

PCBWay Arduino Bicycle Odometer: 4 кадам
PCBWay Arduino Bicycle Odometer: 4 кадам

Video: PCBWay Arduino Bicycle Odometer: 4 кадам

Video: PCBWay Arduino Bicycle Odometer: 4 кадам
Video: Arduino GPS Speedometer with Analog Gauge 2024, Ноябрь
Anonim
PCBWay Arduino Bicycle Odometer
PCBWay Arduino Bicycle Odometer

Көптөгөн унааларда, басып өткөн аралыкты эсептеген жана айдоочуга маалымат берүү үчүн зарыл болгон түзүлүштөр бар.

Ошентип, бул маалымат аркылуу, мисалы, унаанын одометри аркылуу эки чекиттин ортосундагы аралыкты көзөмөлдөөгө болот.

Жабдуулар

01 PCBWay Көнүмүш PCB

01 x Arduino UNO - UTSOURCE

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

01 х Breadboard - UTSOURCE

01 x Wire Jumpers - UTSOURCE

01 x 10kR Ротари потенциометр - UTSOURCE

01 x UTSOURCE Reed Switch - UTSOURCE

Ошондуктан, бул макала аркылуу биз камыш которгуч сенсорунун жардамы менен аралыкты эсептөөчү аппаратты кантип чогултууну үйрөтөбүз.

1 -кадам: Долбоор

Долбоор
Долбоор

Төмөнкү долбоор спорт залдын велосипеди менен басып өткөн аралыкты эсептөө үчүн түзүлгөн. Мындан тышкары, сиз долбоор үчүн программалоону кантип түзүүнү үйрөнөсүз.

Бул долбоордун үч функциясы бар:

  • Велосипед менен басып өткөн аралыкты эсептөө;
  • Түзмөктү ишке киргизүү радиусунун конфигурациясы;
  • Ар кандай велосипедге ылайыкташтырылган.

Бул функцияларга жетүү үчүн, колдонуучу системанын үч баскычын колдонот. Ар бир баскыч сиздин функцияңызга ээ. Системада бизде төмөнкү баскычтар бар:

Көбөйтүү баскычы: Бул дөңгөлөктөрдүн радиусун конфигурациялоо жана радиустун чоңдугун көбөйтүү опциясына кирүү үчүн колдонулат;

Азайтуу баскычы: Бул дөңгөлөктөрдүн радиусун конфигурациялоо опциясын азайтуу үчүн колдонулат;

Кирүү баскычы: Бул тутумдагы радиустун маанисин киргизүү үчүн колдонулат.

Мындан тышкары, бизде камыш которуу сенсору бар. Бул дөңгөлөктөрдүн толук бурулушун аныктоо үчүн жооптуу. Муну аныктоо үчүн, itis дөңгөлөктөргө магнит орнотушу керек.

Камыш которгуч жогорудагы сүрөттө берилген.

2-кадам:

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

Саякатталган аралык = 2 * π * радиусу * TurnNumber

Бул теңдеме аркылуу биз велосипед басып өткөн аралыкты билебиз.

Теңдемеде радиус колдонуучу тарабынан киргизилет жана Turn Number дөңгөлөктүн бурулуштарынын саны аркылуу эсептелет.

Ал эми дөңгөлөктүн бурулушун аныктоо үчүн велосипед дөңгөлөгүнө магнит орнотуу жана Рулдун жанына Камыш которуу сенсорун орнотуу керек.

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

3 -кадам:

Сүрөт
Сүрөт

ПХБда көрсөтүлгөндөй Arduino Nanoну көрүүгө болот. Бул бардык системаларды көзөмөлдөө үчүн жооптуу. Мындан тышкары, бизде 5 JST туташтыргычы бар.

C4 C4 туташтыргычы үч баскычты жана камыш которуу сенсорун туташтыруу үчүн колдонулат. Эми, C5 Connector LCD 16x2 I2C туташтыруу үчүн колдонулат.

Ошондуктан, бул система аркылуу сиз долбоорду велосипедге орнотуп, басып өткөн аралыктын баасын ала аласыз.

Бул үчүн сиз төмөндө көрсөтүлгөн кодду колдоно аласыз.

#кошуу #кошуу

/*

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

120

125

#аныктоо ReedSwitch 8

#аныктооботаоэнтерок 11

const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

бол сенсор = 0, estado_anterior = 0, Incremento = 0, Decremento = 0;

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

байт cont = 0;

unsigned long int VoltaCompleta = 0;

unsigned long int tempo_atual = 0, ultimo_tempo = 0;

float DistKm = 0;

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

}

боштук цикл ()

{

// Regioo de codigo to realizar a leitura dos botoes e sensors to dispositivo

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

// Regiao de codigo para acumular a distancia percorrida

if (сенсор == 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; }

// Regioo de Codigo para Configurar o Raio

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

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

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

жараксыз ConfiguraRaio ()

{

байт RaioRoda = 0;

// Imprimir mansagem смартфондук цифралар

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 Lab бул долбоорду түзүү үчүн электрондук компоненттерди сунуштоо үчүн UTSOURCEке ыраазычылык билдирет.

Сунушталууда: