Სარჩევი:
ვიდეო: PCBWay Arduino ველოსიპედის საზომი: 4 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ბევრ მანქანაში არის მოწყობილობები, რომლებიც ითვლიან გავლილ მანძილს და აუცილებელია მძღოლისთვის ინფორმაციის წარსადგენად.
ამრიგად, ამ ინფორმაციის საშუალებით შესაძლებელია ორ წერტილს შორის გავლილი მანძილის მონიტორინგი, მაგალითად, ავტომობილის ოდომეტრის საშუალებით.
მარაგები
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– ს შესთავაზოს ელექტრონული კომპონენტები ამ პროექტის შესაქმნელად.
გირჩევთ:
დროის გაზომვა (ფირის საზომი საათი): 5 ნაბიჯი (სურათებით)
დროის გაზომვა (ლენტი გაზომვის საათი): ამ პროექტისთვის ჩვენ (ალექს ფიელმა და ანა ლინტონმა) ავიღეთ ყოველდღიური საზომი ინსტრუმენტი და ის საათად ვაქციეთ! თავდაპირველი გეგმა იყო არსებული ფირის მოტორიზება. ამის შექმნისას ჩვენ გადავწყვიტეთ, რომ უფრო ადვილი იქნებოდა საკუთარი გარსის შექმნა
CMOS სიხშირის საზომი: 3 ნაბიჯი
CMOS სიხშირის საინფორმაციო პროგრამა: ეს არის სახელმძღვანელო PDF ფაილებით და ფოტოებით, თუ როგორ შევქმენი ჩემი სიხშირის მრიცხველი გასართობად დისკრეტული ლოგიკის გარეშე. მე არ შევალ დეტალურად იმის შესახებ, თუ როგორ გავაკეთე მიკროსქემის ღორები ან როგორ გავამაგრე იგი, მაგრამ სქემები დამზადებულია KICAD– ში, რომელიც უფასო რბილია
ტაქომეტრი/სკანირების საზომი Arduino, OBD2 და CAN ავტობუსის გამოყენებით: 8 ნაბიჯი
ტაქომეტრი/სკანირების საზომი Arduino, OBD2 და CAN ავტობუსების გამოყენებით: Toyota Prius– ის (ან სხვა ჰიბრიდული/სპეციალური ავტომობილის) ნებისმიერ მფლობელს ეცოდინება, რომ მათ საინფორმაციო დაფებს შეიძლება აკლია რამდენიმე ციფერბლატი! ჩემს პრიუსს არ გააჩნია ძრავის RPM და ტემპერატურის მაჩვენებელი. თუ სპექტაკლის ბიჭი ხართ, შეიძლება გინდოდეთ იცოდეთ ისეთი რამ, როგორიცაა დროის წინსვლა და
წვრილმანი ველოსიპედის საზომი: 5 ნაბიჯი (სურათებით)
წვრილმანი ველოსიპედის საზომი: მე გაჩვენებთ როგორ ავაშენოთ ველოსიპედის სიჩქარე. ეს აჩვენებს თქვენს სიჩქარეს, საშუალო სიჩქარეს, ტემპერატურას, მოგზაურობის დროს და საერთო მანძილს. თქვენ შეგიძლიათ შეცვალოთ იგი ღილაკის გამოყენებით. გარდა ამისა, სიჩქარე ნაჩვენებია ტაქომეტრზე. მე ავაშენე იმიტომ, რომ მე
პორტატული მანძილის საზომი მოწყობილობა Arduino– ით !: 9 ნაბიჯი (სურათებით)
პორტატული დისტანციის საზომი მოწყობილობა Arduino– ით! ის იყენებს PICO- ს, Arduino თავსებადი დაფას და რამდენიმე სხვა ელექტრონულ ნაწილს, რომლებიც უკვე