Სარჩევი:

PCBWay Arduino ველოსიპედის საზომი: 4 ნაბიჯი
PCBWay Arduino ველოსიპედის საზომი: 4 ნაბიჯი

ვიდეო: PCBWay Arduino ველოსიპედის საზომი: 4 ნაბიჯი

ვიდეო: PCBWay Arduino ველოსიპედის საზომი: 4 ნაბიჯი
ვიდეო: Bike Light Arduino 2024, ივლისი
Anonim
PCBWay Arduino ველოსიპედის საზომი
PCBWay Arduino ველოსიპედის საზომი

ბევრ მანქანაში არის მოწყობილობები, რომლებიც ითვლიან გავლილ მანძილს და აუცილებელია მძღოლისთვის ინფორმაციის წარსადგენად.

ამრიგად, ამ ინფორმაციის საშუალებით შესაძლებელია ორ წერტილს შორის გავლილი მანძილის მონიტორინგი, მაგალითად, ავტომობილის ოდომეტრის საშუალებით.

მარაგები

01 x PCBWay საბაჟო PCB

01 x Arduino UNO - UTSOURCE

01 x LCD 16x2 ჩვენება - UTSOURCE

01 x პურის დაფა - UTSOURCE

01 x მავთულის მხტუნავები - UTSOURCE

01 x 10kR მბრუნავი პოტენომეტრი - UTSOURCE

01 x UTSOURCE ლერწმის გადამრთველი - UTSOURCE

ამიტომ, ამ სტატიის საშუალებით ჩვენ გასწავლით თუ როგორ უნდა ააწყოთ თქვენი მანძილის გამოთვლის მოწყობილობა ლერწმის გადართვის სენსორის გამოყენებით.

ნაბიჯი 1: პროექტი

Პროექტი
Პროექტი

შემდეგი პროექტი შეიქმნა სპორტული დარბაზის ველოსიპედით გავლილი მანძილის გამოსათვლელად. გარდა ამისა, თქვენ შეისწავლით თუ როგორ უნდა შექმნათ პროგრამირება პროექტისათვის.

ამ პროექტს აქვს სამი ფუნქცია:

  • ველოსიპედით გავლილი მანძილის გამოთვლა;
  • მოწყობილობის გაშვების რადიუსის კონფიგურაცია;
  • ადაპტირებადია ნებისმიერ ველოსიპედზე.

ამ ფუნქციებზე წვდომისათვის მომხმარებელი გამოიყენებს სისტემის სამ ღილაკს. თითოეულ ღილაკს აქვს თქვენი ფუნქციონირება. სისტემაში ჩვენ გვაქვს შემდეგი ღილაკები:

გაზრდის ღილაკი: ის გამოყენებული იქნება ბორბლების რადიუსის კონფიგურაციის და რადიუსის მნიშვნელობის გაზრდის ვარიანტში შესასვლელად;

შემცირების ღილაკი: ის გამოყენებული იქნება ბორბლების რადიუსის კონფიგურაციის ვარიანტის შესამცირებლად;

შეიყვანეთ ღილაკი: ის გამოყენებული იქნება სისტემაში რადიუსის მნიშვნელობის ჩასასმელად.

გარდა ამისა, ჩვენ გვაქვს Reed Switch Sensor. ის პასუხისმგებელია იმის დადგენაზე, როდესაც ბორბლები ასრულებს სრულ ბრუნვას. ამის გამოსავლენად საჭიროა ბორბლებზე მაგნიტის დაყენება.

ლერწმის გადამრთველი მოცემულია ზემოთ მოცემულ ფიგურაში.

ნაბიჯი 2:

ამრიგად, ყოველ ჯერზე, როდესაც მაგნიტი მიუახლოვდება სენსორს, ის ამოქმედებს Reed Switch სენსორს. პროცესი მუშაობს შემდეგი განტოლების საშუალებით:

მოგზაურობის მანძილი = 2 * π * რადიუსი * TurnNumber

ამ განტოლების საშუალებით ჩვენ ვიცით რა არის ველოსიპედის მიერ გავლილი მანძილი.

განტოლებაში, რადიუსი არის ჩასმული მომხმარებლის მიერ, ხოლო ბრუნვის ნომერი გამოითვლება ბორბლის შემობრუნების რაოდენობის მიხედვით.

ბორბლის შემობრუნების დასადგენად საჭიროა მაგნიტის დაყენება ველოსიპედის ბორბალზე და ბორბლის მახლობლად რიდის გადამრთველის სენსორის დაყენება.

პროცესის გასაადვილებლად, ჩვენ ვქმნით დაბეჭდილ მიკროსქემის დაფას Reed Switch Sensor და სამი ღილაკის დასაკავშირებლად. დაბეჭდილი მიკროსქემის დაფა ქვემოთ მოცემულია ქვემოთ მოცემულ ფიგურაში.

ნაბიჯი 3:

გამოსახულება
გამოსახულება

როგორც ნაჩვენებია PCB– ში შესაძლებელია Arduino Nano– ს ნახვა. ის პასუხისმგებელია ყველა სისტემის გაკონტროლებაზე. გარდა ამისა, ჩვენ გვაქვს 5 JST კონექტორი.

C1 სანამ C4 კონექტორები გამოიყენება სამი ღილაკისა და Reed გადამრთველის სენსორის დასაკავშირებლად. ახლა, 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;

ბაიტი cont = 0;

ხელმოუწერელი long int VoltaCompleta = 0;

ხელმოუწერელი გრძელი int tempo_atual = 0, ultimo_tempo = 0;

float DistKm = 0;

ხელმოუწერელი ინტერ რაიო = 0; float Distancia = 0;

ბათილად დაყენება ()

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

lcd. დასაწყისი (16, 2);

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

if (EEPROM.read (MEMORIA)! = 73) {ConfiguraRaio (); EEPROM.write (MEMORIA, 73); }

lcd.setCursor (3, 0);

lcd.print ("დისტანცია"); lcd.setCursor (6, 1); lcd.print (დისტანცია);

lcd.setCursor (14, 1);

lcd.print ("კმ");

რაიო = EEPROM.read (PosRaio);

}

ბათილი მარყუჟი ()

{

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

სენსორი = digitalRead (ReedSwitch); Decremento = digitalRead (BotaoDecremento); გაზრდა = digitalRead (BotaoIncremento);

// Regiao de codigo para acumular a distancia percorrida

if (სენსორი == 0 && estado_anterior == 1) {VoltaCompleta ++;

დისტანცია = (float) (2*3.14*რაიო*ვოლტაკომპლეტა)/1000000.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

თუ (დამატება == 1 && EstadoAnteriorIncremento == 0) {EstadoAnteriorIncremento = 1; }

თუ (გაზრდა == 0 && EstadoAnteriorIncremento == 1)

{EstadoAnteriorIncremento = 0; lcd. წმინდა (); ConfiguraRaio (); }}

void ConfiguraRaio ()

{

ბაიტი რაიოროდა = 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)

{რაიოროდა = რაიოროდა +1; გაძლიერება წინა = 1; }

თუ (გადიდება == 0 && გაზრდა წინა == 1)

{IncrementoAnterior = 0; }

თუ (Decremento == 1 && DecrementoAnterior == 0)

{რაიოროდა = რაიოროდა - 1; DecrementoAnterior = 1; }

თუ (Decremento == 0 && DecrementoAnterior == 1)

{DecrementoAnterior = 0; }

lcd.setCursor (6, 1);

lcd.print (რაიოროდა);

} while (BotaoEnter == 0);

lcd. წმინდა ();

EEPROM.write (PosRaio, RaioRoda);

დაბრუნების; }

ამ კოდიდან ის ალბათ გამოთვლის თქვენს მანძილს თქვენს არდუინოსთან.

ნაბიჯი 4: დასკვნა

ამიტომ, თუ გსურთ საკუთარი PCB, შეგიძლიათ მიიღოთ ამ ბმულის საშუალებით PCBWay.com ვებსაიტზე. ამისათვის თქვენ შეგიძლიათ შეხვიდეთ ვებგვერდზე, შექმნათ თქვენი ანგარიში და მიიღოთ თქვენი საკუთარი PCB.

Silícios Lab მადლობას უხდის UTSOURCE– ს შესთავაზოს ელექტრონული კომპონენტები ამ პროექტის შესაქმნელად.

გირჩევთ: