Բովանդակություն:

PCBWay Arduino հեծանիվների հեռաչափ ՝ 4 քայլ
PCBWay Arduino հեծանիվների հեռաչափ ՝ 4 քայլ

Video: PCBWay Arduino հեծանիվների հեռաչափ ՝ 4 քայլ

Video: PCBWay Arduino հեծանիվների հեռաչափ ՝ 4 քայլ
Video: How to add more PINs to Arduino with custom PCB from @PCBWay #arduino #hardware #electronics #diy 2024, Նոյեմբեր
Anonim
PCBWay Arduino հեծանվային ճանապարհաչափ
PCBWay Arduino հեծանվային ճանապարհաչափ

Շատ մեքենաներում կան սարքեր, որոնք հաշվարկում են անցած տարածությունը և կարևոր են վարորդին տեղեկատվություն ներկայացնելու համար:

Այսպիսով, այս տեղեկատվության միջոցով հնարավոր է վերահսկել երկու կետերի միջև անցած տարածությունը, օրինակ ՝ մեքենայի ճանապարհաչափի միջոցով:

Պարագաներ

01 x PCBWay Պատվերով PCB

01 x Arduino UNO - ԱTSԲՅՈՐ

01 x LCD 16x2 էկրան - ԱՐ. ԵՔ

01 x Գրատախտակ - ՀԱՄԱԼԻՐ

01 x Մետաղյա թռչկոտիչներ - ՀԱՄԱԼԻՐ

01 x 10kR պտտվող պոտենցիոմետր - UTSOURCE

01 x UTSOURCE Եղեգի անջատիչ - UTSOURCE

Հետևաբար, այս հոդվածի միջոցով մենք ձեզ կսովորեցնենք, թե ինչպես հավաքել հեռավորության հաշվարկման սարքը ՝ օգտագործելով եղեգի անջատիչի սենսորը:

Քայլ 1: Նախագիծ

Նախագիծը
Նախագիծը

Հետևյալ նախագիծը ստեղծվել է մարզասրահի հեծանիվով անցած տարածությունը հաշվարկելու համար: Բացի այդ, դուք կսովորեք, թե ինչպես ստեղծել ծրագրի համար ծրագրավորում:

Այս նախագիծը ունի երեք գործառույթ.

  • Հաշվարկել հեծանիվով անցած տարածությունը;
  • Սարքի գործարկման շառավիղի կազմաձևում;
  • Հարմարվող ցանկացած հեծանիվին:

Այս գործառույթներին մուտք գործելու համար օգտագործողը կօգտագործի համակարգի երեք կոճակները: Յուրաքանչյուր կոճակ ունի ձեր ֆունկցիոնալությունը: Համակարգում մենք ունենք հետևյալ կոճակները.

Բարձրացման կոճակ. Այն կօգտագործվի անիվների շառավիղը կազմաձևելու և շառավիղը ավելացնելու տարբերակի մեջ մուտքագրելու համար.

Decrement Button: Այն կօգտագործվի անիվների շառավիղը կազմաձևելու տարբերակը նվազեցնելու համար.

Մուտքագրեք կոճակը. Այն կօգտագործվի համակարգում շառավիղի արժեքը տեղադրելու համար:

Բացի այդ, մենք ունենք Reed Switch Sensor: Այն պատասխանատու է հայտնաբերել, երբ անիվները կատարում են ամբողջական շրջադարձ: Դա հայտնաբերելու համար անհրաժեշտ է մագնիս տեղադրել անիվների վրա:

Reed Switch- ը ներկայացված է վերևում նկարում:

Քայլ 2:

Այսպիսով, ամեն անգամ, երբ մագնիսը մոտենում է սենսորին, այն կգործարկի Reed Switch սենսորը: Գործընթացը գործում է հետևյալ հավասարման միջոցով.

Veանապարհորդված հեռավորություն = 2 * π * շառավիղ * TurnNumber

Այս հավասարման միջոցով մենք կիմանանք, թե որն է հեծանիվի կատարած ճանապարհը:

Հավասարում շառավիղը տեղադրվում է օգտագործողի կողմից, իսկ շրջադարձի թիվը հաշվարկվում է անիվի պտույտների թվի միջոցով:

Իսկ անիվի պտույտները հայտնաբերելու համար անհրաժեշտ է հեծանիվի անիվի մեջ մագնիս տեղադրել և Անիվի մոտ Reed Switch Sensor- ը տեղադրելու համար:

Գործընթացը հեշտացնելու համար մենք ստեղծում ենք տպագիր տպատախտակ ՝ Reed Switch Sensor- ը և երեք կոճակները միացնելու համար: Տպագիր տպատախտակները ստորև ներկայացված են ստորև ներկայացված նկարում:

Քայլ 3:

Պատկեր
Պատկեր

Ինչպես ցույց է տրվում PCB- ում, հնարավոր է տեսնել Arduino Nano- ն: Այն պատասխանատու է վերահսկելու բոլոր համակարգերը: Բացի այդ, մենք ունենք 5 JST միակցիչ:

Երեք կոճակները և Reed Switch Sensor- ը միացնելու համար օգտագործվում են C1 մինչև C4 միակցիչները: Այժմ C5 միակցիչն օգտագործվում է LCD 16x2 I2C LCD միացնելու համար:

Հետևաբար, այս համակարգի միջոցով դուք կարող եք տեղադրել նախագիծը ձեր հեծանիվում և ստանալ անցած ճանապարհի արժեքը:

Դրա համար կարող եք օգտագործել ստորև ներկայացված կոդը:

#ներառել #ներառել

/*

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

#սահմանեք ՀԻՇԱՏԱԿԸ 120

#սահմանի PosRaio 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;

բայթ կոնտ = 0;

անստորագիր երկար int VoltaCompleta = 0;

անստորագիր երկար int tempo_atual = 0, ultimo_tempo = 0;

բոց DistKm = 0;

անստորագիր int raio = 0; բոց Distancia = 0;

դատարկ կարգավորում ()

{Serial.begin (9600); pinMode (8, Մուտք); pinMode (9, Մուտք); pinMode (10, Մուտք); pinMode (12, Մուտք);

lcd. սկսել (16, 2);

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

if (EEPROM.read (MEMORIA)! = 73) {ConfiguraRaio (); EEPROM.write (ՀԻՇԱՏԱԿԱՐԱՆ, 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);

}

դատարկ շրջան ()

{

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

տվիչ = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); Ավելացում = 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; }

// Regiao de Codigo para Configurar o Raio

եթե (ավելացում == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

եթե (ավելացում == 0 && EstadoAnteriorIncremento == 1)

{EstadoAnteriorIncremento = 0; lcd. հստակ (); ConfiguraRaio (); }}

դատարկ ConfiguraRaio ()

{

բայթ RaioRoda = 0;

// Imprimir mensagem para digitar o raio em cm

lcd.setCursor (0, 0); lcd.print («Inserir Raio (սմ)»);

անել

{

lcd.setCursor (6, 1);

Ավելացում = digitalRead (BotaoIncremento);

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

եթե (Բարձրացում == 1 && ԲարձրացումԱռաջին == 0)

{RaioRoda = RaioRoda + 1; ԲարձրացումԱռաջ = 1; }

եթե (Բարձրացում == 0 && ԲարձրացումԱռաջին == 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. հստակ ();

EEPROM.write (PosRaio, RaioRoda);

վերադարձ; }

Այս ծածկագրից այն հնարավոր է հաշվարկի ձեր հեռավորությունը ձեր Arduino- ի հետ:

Քայլ 4: Եզրակացություն

Հետևաբար, եթե ցանկանում եք ձեր սեփական PCB- ն, կարող եք ձեռք բերել այս հղումով ՝ PCBWay.com կայքում: Դրա համար կարող եք մուտք գործել կայք, ստեղծել ձեր հաշիվը և ձեռք բերել ձեր սեփական PCB- ները:

Silícios Lab- ը շնորհակալություն է հայտնում UTSOURCE- ին `առաջարկելու էլեկտրոնային բաղադրիչներ այս նախագիծը ստեղծելու համար:

Խորհուրդ ենք տալիս: