Съдържание:
- Стъпка 1: Изберете Sigal Wire
- Стъпка 2: Удължете кабела към Arduino Board
- Стъпка 3: Анализ на сигнала
- Стъпка 4: Кодирайте вашия анализ на сигнала
- Стъпка 5: Идентифицирайте филтър
- Стъпка 6: Филтриране: Част 1
- Стъпка 7: Филтриране: Част 2
- Стъпка 8: Филтриране: Част 3
- Стъпка 9: Филтриране: Част 4
Видео: Използвайте Arduino за показване на оборотите на двигателя: 10 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:51
Това ръководство ще очертае как използвах Arduino UNO R3, 16x2 LCD дисплей с I2C и LED лента, която да се използва като индикатор за скоростта на двигателя и светлината за превключване в моята кола Acura Integra. Той е написан като някой с известен опит или излагане на софтуер Arduino или кодиране като цяло, математическия софтуер MATLAB и създаване или модифициране на електрически вериги. В бъдеще това може да бъде преработено, за да бъде по -лесно за разбиране за някой с малко или никакъв опит с тези теми.
Стъпка 1: Изберете Sigal Wire
Ще трябва да получите сигнал, който корелира с оборотите на двигателя. Възможно е да се добави система, която измерва оборотите на двигателя, но е много по -практично да се включи към съществуващ проводник, който носи информация за скоростта на двигателя. Един автомобил може да има множество източници за това и той може да варира значително от година на година за един модел превозно средство. В името на този урок ще използвам примера на моята кола, модифицирана писта 2000 Acura Integra LS. Открих, че на моя двигател (B18B1 с OBD2) има неизползвано напрежение, което е високо 12V и пада до 0V при завършване на пълен оборот.
Неща, които ще ви помогнат да идентифицирате потенциален сигнал за скоростта на двигателя:
- Схема на свързване на вашия автомобил
- Търсене във вашия автомобил във форуми, включващо сигнали на двигателя/ECU
- Приятен механик или ентусиаст на автомобили
Стъпка 2: Удължете кабела към Arduino Board
След като сте избрали подходящ сигнал, ще трябва да го разширите навсякъде, където поставяте дъската си Arduino. Реших да сложа моята в превозното средство, където беше радиото, затова насочих новия проводник от двигателя, през гумена втулка в пожарната стена и точно до зоната на радиото. Тъй като вече има изобилие от ръководства за отстраняване, запояване и защита на окабеляването, няма да обяснявам този процес.
Стъпка 3: Анализ на сигнала
Тук нещата могат да се усложнят. Общото разбиране за анализа и контрола на сигнала ще ви помогне в дълъг път, но е възможно с малко знания.
Сигналният проводник, избран най -вероятно, няма да изплюе точната стойност на оборотите на двигателя. Той ще трябва да бъде оформен и модифициран, за да даде точния брой обороти на двигателя, които искате. Поради факта, че всеки различен автомобил и сигнален проводник, който може да бъде различен, от този момент нататък ще обясня как използвах позиционния сигнал от разпределителя на моя Integra.
Моят сигнал обикновено е 12V и пада до 0V при завършване на едно пълно завъртане. Ако знаете времето за завършване на едно пълно завъртане или един пълен цикъл, това може лесно да се преведе в обороти/мин, като се използват някои основни понятия.
1 / (секунди на цикъл) = цикли в секунда или Hz
Обороти в минута = Hz * 60
Стъпка 4: Кодирайте вашия анализ на сигнала
Този метод изисква получаване на времето, необходимо на входния сигнал за завършване на един пълен цикъл. За щастие софтуерът IDE на Arduino има команда, която прави точно това, PulseIn.
Тази команда ще изчака сигнал да премине праг, ще започне да брои и ще спре да брои, когато прагът бъде пресичан отново. Има някои подробности, които трябва да се отбележат при използването на командата, така че ще включа връзка към информация на PulseIn тук:
PulseIn ще върне стойност в микросекунди и за да се опрости математиката, това трябва незабавно да се преобразува в нормални секунди. Следвайки математиката на предишната стъпка, тази продължителност от време може да бъде приравнена директно към RPM.
Забележка: след опит и грешка открих, че дистрибуторът извършва две завъртания за всяко едно завъртане на коляновия вал на двигателя, така че просто разделих отговора си на 2, за да отчета това.
Стъпка 5: Идентифицирайте филтър
Ако имате късмет, вашият сигнал няма да има „шум“(колебания) и скоростта на двигателя ви ще бъде точна. В моя случай имаше много шум, идващ от разпределителя, който често даваше напрежения далеч от очакваното. Това се превръща в много фалшиви показания за действителната скорост на двигателя. Този шум ще трябва да се филтрира.
След известен анализ на сигнала, почти целият шум идва на честоти (Hz) много по -високи от това, което самият двигател извежда (което е вярно за повечето реални динамични системи). Това означава, че нискочестотният филтър е идеалният кандидат да се погрижи за това.
Нискочестотният филтър позволява преминаването на ниски честоти (желани) и намалява високите честоти (нежелани).
Стъпка 6: Филтриране: Част 1
Проектирането на филтъра може да се извърши на ръка, но използването на MATLAB значително ще ускори това, ако имате достъп до софтуера.
Нискочестотният филтър може да бъде приравнен към трансферна функция (или фракция) в областта на Лаплас (честотна област). Входната честота ще бъде умножена по тази част и изходът е филтриран сигнал, който има само информацията, която искате да използвате.
Единствената променлива във функцията е tau. Тау е равно на 1 / Омега, където Омега е граничната честота, която искате (трябва да е в радиани в секунда). Пределната честота е границата, при която честотите, по -високи от нея, ще бъдат премахнати и честотите, по -ниски от нея, ще бъдат запазени.
Зададох граничната честота равна на обороти в минута, които двигателят ми никога няма да достигне (990 оборота в минута или 165 Hz). Графиките на FFT показват приблизително какви честоти пренасяше суровият ми сигнал и честотите, които излязоха от филтъра.
Стъпка 7: Филтриране: Част 2
Тук MATLAB беше използван отново заради времето. Дефинира се граничната честота и от това се показва резултантната трансферна функция. Имайте предвид, че тази част се отнася само за домейна Laplace и не може да се използва директно на микроконтролер, базиран на времето като Arduino UNO R3.
Стъпка 8: Филтриране: Част 3
MATLAB има команда, която ще преобразува непрекъсната функция (честотна област) в дискретна функция (времева област). Резултатът от тази команда ще осигури уравнение, което може лесно да бъде включено в IDE кода на Arduino.
Стъпка 9: Филтриране: Част 4
В скицата на Arduino включете променливите u и y преди настройката. Командата float просто дефинира как променливата ще съхранява данни (неща като максимална стойност, десетични знаци и т.н …) и тук ще бъде предоставена връзка към повече информация за това: https://www.arduino.cc/reference/en/language /вариация …
В цикъла, в който се осъществява преобразуването от необработен сигнал в оборотите на двигателя, включете променливата u и уравнението на множеството y. Има няколко начина да се използва това, но променливата u трябва да бъде зададена равна на необработения входен сигнал, който се измерва, а променливата y ще бъде филтрираната стойност.
Препоръчано:
Проверка на оборотите за мини мотор Dc: 11 стъпки (със снимки)
Проверка на оборотите за мини мотор Dc: Обороти в минута, накратко е скоростта на въртене, изразена в обороти в минута. инструментите за измерване на обороти обикновено използват тахометър. Преди миналата година намерих интересен проект, направен от electro18, и това е моето вдъхновение, той беше луд
Показване на показанията на сензора на живо от Arduino на LCD дисплей на Nokia 5110: 4 стъпки (със снимки)
Показване на показанията на сензора на живо на Arduino на LCD дисплей на Nokia 5110: Ако някога сте работили с arduino, вероятно сте искали той да показва показанията на сензора. вероятно искам да показва показанията на нещо повече
Показване на температурата и влажността и събиране на данни с Arduino и обработка: 13 стъпки (със снимки)
Показване на температурата и влажността и събиране на данни с Arduino и обработка: Въведение: Това е проект, който използва дъска Arduino, сензор (DHT11), компютър с Windows и програма за обработка (безплатно изтегляне) за показване на данни за температурата, влажността в цифров и форма на лентова диаграма, показване на час и дата и стартиране на време за преброяване
Автономно управление на оборотите на двигателя чрез система за обратна връзка от инфрачервен тахометър: 5 стъпки (със снимки)
Автономно управление на оборотите на двигателя, използвайки система за обратна връзка от тахометър на базата на инфрачервени лъчи: Винаги има нужда от автоматизиране на процес, бил той прост/чудовищен. методи за напояване/напояване на нашето малко парче земя. Проблемът с липсата на текуща линия за захранване
Използвайте SSH и XMing за показване на X програми от компютър с Linux на компютър с Windows: 6 стъпки
Използвайте SSH и XMing за показване на X програми от компютър с Linux на компютър с Windows: Ако използвате Linux на работното място и Windows у дома или обратно, понякога може да се наложи да влезете в компютъра на другото си място и стартирайте програми. Е, можете да инсталирате X сървър и да активирате SSH тунелиране с вашия SSH клиент и един