Სარჩევი:

საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით: 6 ნაბიჯი
საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით: 6 ნაბიჯი

ვიდეო: საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით: 6 ნაბიჯი

ვიდეო: საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით: 6 ნაბიჯი
ვიდეო: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, ივლისი
Anonim
საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით
საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით
საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით
საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით
საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით
საავტომობილო სიჩქარის გაზომვა არდუინოს გამოყენებით

ძნელია ძრავის rpm- ის გაზომვა ??? არა მგონია. აქ არის ერთი მარტივი გამოსავალი.

მხოლოდ ერთ IR სენსორს და თქვენს ნაკრებში არსებულ Arduino- ს შეუძლია ამის გაკეთება.

ამ პოსტში მე მოგცემთ მარტივ სახელმძღვანელოს, რომელიც განმარტავს, თუ როგორ უნდა გაზომოთ ნებისმიერი ძრავის RPM IR სენსორის და Arduino UNO/nano გამოყენებით.

მასალები:

1. Arduion uno (ამაზონი) / Arduion nano (ამაზონი)

2. IR სენსორი (ამაზონი)

3. DC ძრავა ნებისმიერი (ამაზონი)

4. LCD 16*2 (ამაზონი)

გამოყენებული ინსტრუმენტები

1. შედუღების რკინა (ამაზონი)

2. Wire Stripper (ამაზონი)

ნაბიჯი 1: ნაბიჯი: 1 უზრუნველყოს სენსორებისა და მოწყობილობების მუშაობის მდგომარეობა

რა არის IR სენსორი? IR სენსორი არის ელექტრონული მოწყობილობა, რომელიც ასხივებს შუქს, რათა იგრძნოს გარშემო არსებული ობიექტი. IR სენსორს შეუძლია გაზომოს ობიექტის სითბო, ასევე ამოიცნოს მოძრაობა. ჩვეულებრივ, ინფრაწითელ სპექტრში, ყველა ობიექტი ასხივებს თერმული გამოსხივების რაიმე ფორმას. ამ ტიპის გამოსხივება ჩვენი თვალისთვის უხილავია, მაგრამ ინფრაწითელ სენსორს შეუძლია ამ გამოსხივების ამოცნობა.

რა არის DC ძრავა? პირდაპირი დენის (DC) ძრავა არის ელექტრო მანქანების ტიპი, რომელიც ელექტრო ენერგიას გარდაქმნის მექანიკურ ენერგიად. DC ძრავები იღებენ ელექტროენერგიას პირდაპირი დენის საშუალებით და ამ ენერგიას გარდაქმნიან მექანიკურ ბრუნვად.

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

რა არის არდუინო?

Arduino არის ღია კოდის ელექტრონიკის პლატფორმა, რომელიც დაფუძნებულია ადვილად გამოსაყენებელ აპარატურასა და პროგრამულ უზრუნველყოფაზე. არდუინოს დაფებს შეუძლიათ წაიკითხონ შეყვანა - სინათლე სენსორზე, თითი ღილაკზე, ან Twitter შეტყობინება - და გადააქციონ გამომავალში - გაააქტიურონ ძრავა, ჩართონ LED, გამოაქვეყნონ რაღაც ინტერნეტში. თქვენ შეგიძლიათ უთხრათ თქვენს დაფას, თუ რა უნდა გააკეთოს, დაფაზე არსებული მიკროკონტროლერისთვის მითითებების გაგზავნით. ამისათვის თქვენ იყენებთ Arduino პროგრამირების ენას (გაყვანილობის საფუძველზე) და Arduino პროგრამულ უზრუნველყოფას (IDE), დამუშავების საფუძველზე.

ჩამოტვირთეთ ARDUINO IDE

ნაბიჯი 2: როგორ მუშაობს?

რა არის ლოგიკა ამის უკან ??

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

ამ შემთხვევაში, IR სენსორი გაუგზავნის პულსს არდუინოს, როდესაც მისი IR სხივი ძრავის პროპელერებთან იჭრება. ჩვეულებრივ, ჩვენ ვიყენებთ პროპელერს ორი დანით, მაგრამ მე გამოვიყენე პროპელერი სამი პირით, როგორც ეს მოცემულია ფიგურაში. პროპელერის პირების რაოდენობის მიხედვით ჩვენ გვჭირდება რამოდენიმე მნიშვნელობის შეცვლა RPM– ის გამოთვლისას.

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

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

პრობლემის გადასაჭრელად ერთზე მეტი გზა არსებობს, მაგრამ ჩვენ უნდა ავირჩიოთ რომელია საუკეთესო ამ კოდებში მე გავზომე ხანგრძლივობა შეფერხებებს შორის (IR სენსორი) მე გამოვიყენე მიკროს () ფუნქციები პულსის ხანგრძლივობის გასაზომად მიკრო წამებში.

შეგიძლიათ გამოიყენოთ ეს ფორმულა RPMRPM = ((1/ხანგრძლივობა)*1000*1000*60)/პირების გასაზომად

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

60 - წამიდან წუთამდე

1000 - წამი წამამდე

1000 - მიკრო წისქვილზე

პირები - ფრთები არ არის პროპელერში.

LCD ეკრანი - Arduino განაახლებს LCD ეკრანის ბრძანებისა და მონაცემების რეგისტრატორებს. რომელიც აჩვენებს ASCII სიმბოლოებს LCD ეკრანზე.

ნაბიჯი 3: პროგრამირება თქვენი Arduino გამოყენებით Arduino IDE

#ჩართეთ

LiquidCrystal LCD (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR სენსორი INPUT ხელმოუწერელი გრძელი პრვემიკროები; // დროის შესანახად ხელმოუწერელი ხანგრძლივობა; // დროის სხვაობის შესანახად ხელმოუწერელი გრძელი lcdrefresh; // lcd- ის დროის შესანახად int rpm- ის განახლებისთვის; // RPM მნიშვნელობა ლოგიკური მიმდინარეობა; // IR შეყვანის სკანირების ლოგიკური წინასწარი მდგომარეობა; // IR სენსორის მდგომარეობა წინა სკანირების დროს void setup () {pinMode (IR_IN, INPUT); lcd. დასაწყისი (16, 2); პრევმიკროსი = 0; prevstate = LOW; } void loop () {///////////////////////////////////////// ////////////////////////////////////// RPM საზომი currentstate = digitalRead (IR_IN); // IR სენსორის მდგომარეობის წაკითხვა if (prevstate! = Currentstate) // თუ შეიცვალა შეყვანის {if (currentstate == LOW) // თუ შეყვანა მხოლოდ HIGH- დან LOW- მდე იცვლება {ხანგრძლივობა = (micros () - prevmicros); // დროის სხვაობა რევოლუციას შორის მიკროწამებში rpm = ((60000000/ხანგრძლივობა)/3); // rpm = (1/ დრო მილი)*1000*1000*60; prevmicros = micros (); // დროის შენახვა ნექტრის რევოლუციის გამოთვლისთვის}} prevstate = currentstate; // შეინახეთ ეს სკანირება (წინასწარი სკანირება) მონაცემები შემდეგი სკანირებისთვის //////////////////////////////////// ///////////////////////////////////////////////// LCD ეკრანი თუ ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("ძრავის სიჩქარე"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd. ბეჭდვა (rpm); lcdrefresh = millis (); }}

ნაბიჯი 4: სიმულაცია პროტეუსის გამოყენებით

სიმულაცია პროტეუსის გამოყენებით
სიმულაცია პროტეუსის გამოყენებით

ეს პროექტი მშვენივრად მუშაობდა, როდესაც ვცდილობდი ამის სიმულაცია პროტეუსის დახმარებით.

IR სენსორის გამოყენების ნაცვლად, მე გამოვიყენე DC პულსის გენერატორი, რომელიც მოახდენს IR პულსის იმიტირებას, რაც წარმოიქმნება, როდესაც IR სხივები ხვდება პროპელერის პირებს.

თქვენ უნდა შეიტანოთ ცვლილებები თქვენს პროგრამაში, თქვენი სენსორის მიხედვით

IR სენსორმა LM358 უნდა გამოიყენოს ეს ბრძანება.

if (currentstate == HIGH) // თუ შეყვანა მხოლოდ LOW– დან HIGH– მდე იცვლება

IR სენსორმა LM359 უნდა გამოიყენოს ეს ბრძანება.

if (currentstate == LOW) // თუ შეყვანა მხოლოდ HIGH- დან LOW- მდე იცვლება

ნაბიჯი 5: აპარატურის შესრულება

აპარატურის შესრულება
აპარატურის შესრულება
აპარატურის შესრულება
აპარატურის შესრულება
აპარატურის შესრულება
აპარატურის შესრულება

სქემატური გამოყენებისათვის გამოიყენეთ სიმულაციური სურათები ან მიმართეთ პროგრამის კოდებს და შესაბამისად დაამყარეთ კავშირები. ატვირთეთ პროგრამის კოდი Arduino– ში და გაზომეთ ნებისმიერი ძრავის RPM. დაელოდეთ ჩემს შემდეგ პოსტს და უყურეთ ჩემს YouTube არხს.

გირჩევთ: