Мазмуну:

Engine RPMди көрсөтүү үчүн Arduino колдонуңуз: 10 кадам (сүрөттөр менен)
Engine RPMди көрсөтүү үчүн Arduino колдонуңуз: 10 кадам (сүрөттөр менен)

Video: Engine RPMди көрсөтүү үчүн Arduino колдонуңуз: 10 кадам (сүрөттөр менен)

Video: Engine RPMди көрсөтүү үчүн Arduino колдонуңуз: 10 кадам (сүрөттөр менен)
Video: Lesson 98: Arduino 10 LED Push button Projects, Potentiometer LED Voltmeter and Traffic Light 2024, Ноябрь
Anonim
Engine RPM көрсөтүү үчүн Arduino колдонуңуз
Engine RPM көрсөтүү үчүн Arduino колдонуңуз
Engine RPM көрсөтүү үчүн Arduino колдонуңуз
Engine RPM көрсөтүү үчүн Arduino колдонуңуз
Engine RPM көрсөтүү үчүн Arduino колдонуңуз
Engine RPM көрсөтүү үчүн Arduino колдонуңуз

Бул колдонмодо мен кантип Arduino UNO R3, I2C менен 16x2 ЖК дисплейин жана мотор ылдамдыгын өлчөөчү жана светофор катары колдонула турган LED тилкесин Acura Integra трек машинамда кантип колдонгонум баяндалат. Бул кандайдыр бир тажрыйбасы бар же Arduino программалык камсыздоосу же жалпысынан коддоо, MATLAB математикалык программасы жана электр схемаларын түзүү же өзгөртүү боюнча жазылган. Келечекте бул темалар боюнча тажрыйбасы аз жана тажрыйбасы жок бирөө үчүн түшүнүктүү болушу үчүн кайра каралышы мүмкүн.

1 -кадам: Sigal Wire тандаңыз

Sigal Wire тандаңыз
Sigal Wire тандаңыз

Сиз кыймылдаткычтын ылдамдыгына байланышкан сигналды алышыңыз керек. Кыймылдаткычтын ылдамдыгын өлчөөчү системаны кошууга болот, бирок кыймылдаткычтын ылдамдыгы жөнүндө маалыматты алып жүргөн учурдагы зымга тийгизүү алда канча практикалык. Бир машинеде булактын бир нече булагы болушу мүмкүн жана ал бир эле унаанын моделинде жыл сайын өзгөрүшү мүмкүн. Бул окуу куралы үчүн мен машинамдын мисалын колдоном, 2000 Acura Integra LS треги өзгөртүлгөн. Мен кыймылдаткычымда (OBD2 менен B18B1) 12В бийик болгон жана толук революцияны аяктагандан кийин 0Вге чейин түшүп кеткен колдонулбаган чыңалуу бар экенин көрдүм.

Кыймылдаткычтын потенциалдуу сигналын аныктоого жардам бере турган нерселер:

  • Унааңыздын туташуу схемасы
  • Кыймылдаткыч/ECU сигналдарын камтыган унааңыз үчүн форумдарды издөө
  • Достук механик же унаа ышкыбозу

2 -кадам: Ардуино тактасына зымды узартыңыз

Wire'ди Arduino тактасына узартыңыз
Wire'ди Arduino тактасына узартыңыз
Wire'ди Arduino тактасына узартыңыз
Wire'ди Arduino тактасына узартыңыз

Тийиштүү сигналды тандап алгандан кийин, аны Arduino тактасын кайсы жерге койсоңуз, ошол жерге узартууңуз керек болот. Мен өзүмдү радио бар машинанын ичине жайгаштырууну чечтим, ошондуктан жаңы зымды кыймылдаткычтан, от дубалындагы резина капкак аркылуу жана радионун аймагына бурдум. Электр өткөргүчтөрүн тазалоо, ширетүү жана коргоо боюнча көптөгөн көрсөтмөлөр бар болгондуктан, мен бул процессти түшүндүрбөйм.

3 -кадам: Сигналды анализдөө

Сигнал анализи
Сигнал анализи

Бул жерде нерселер татаалдашып кетиши мүмкүн. Сигналды анализдөө жана көзөмөлдөө жөнүндө жалпы түшүнүккө ээ болуу сизге узак жолго жардам берет, бирок анча -мынча билим менен ишке ашат.

Тандалган сигнал зымы кыймылдаткычтын ылдамдыгынын так маанисин түкүрбөйт. Бул сиз каалаган кыймылдаткычтын RPMинин так санын берүү үчүн калыптанышы жана өзгөртүлүшү керек. Ар бир машинанын жана сигналдын зымы башкача болушу мүмкүн болгондуктан, ушул убактан тартып мен Integra дистрибьюторунун позиция сигналын кантип колдонгонумду түшүндүрөм.

Менин сигналым, адатта, 12В жана бир толук айланууну аяктаганда 0Вге түшөт. Эгер сиз бир толук айланууну, же бир толук циклди бүтүрүү убактысын билсеңиз, анда кээ бир негизги түшүнүктөрдү колдонуп революцияга/мүнгө которсо болот.

1 / (циклге секунд) = секундасына цикл, же Гц

Мүнөтүнө айлануу = Гц * 60

4 -кадам: Сигнал талдооңузду коддоңуз

Сиздин сигнал талдоо код
Сиздин сигнал талдоо код

Бул ыкма кирүү сигналынын бир толук циклди бүтүрүү үчүн керектүү убакытты алууну талап кылат. Бактыга жараша Arduino IDE программасында PulseIn дал ушундай буйрук бар.

Бул буйрук босогодон өтүү үчүн сигналды күтөт, саноону баштайт жана кайра босогону аттаганда саноону токтотот. Буйрукту колдонууда белгилей кетүү керек болгон айрым деталдар бар, ошондуктан мен бул жерде PulseIn маалыматына шилтемени кошом:

PulseIn микросекунддардагы маанини кайтарат жана математиканы жөнөкөй сактоо үчүн муну дароо кадимки секунддарга айландыруу керек. Мурунку кадам боюнча математикадан кийин, бул убакыттын узактыгы түздөн -түз RPMге барабар болот.

Эскертүү: сыноо жана жаңылыштыктан кийин мен дистрибьютор кыймылдаткычтын кран валынын ар бир айлануусу үчүн эки айланууну аткарарын билдим, ошондуктан мен жоопту 2ге бөлдүм.

5 -кадам: Чыпканы аныктоо

Чыпканы аныктоо
Чыпканы аныктоо

Эгер бактылуу болсоңуз, сиздин сигналда "ызы -чуу" болбойт (кыймыл) жана кыймылдаткычыңыздын ылдамдыгы так болот. Менин учурда, дистрибьютордон келген ызы -чуу көп болду, ал көп учурда күтүлгөндөн алыс чыңалуу берди. Бул чыныгы кыймылдаткыч ылдамдыгынын өтө жалган көрсөткүчтөрүнө айланат. Бул ызы -чууну чыпкалоо керек болот.

Сигналды анализдегенден кийин, дээрлик бардык ызы -чуулар кыймылдаткычтын өндүрүшүнөн алда канча жогору жыштыктарда (Гц) келди (бул чыныгы динамикалык системалар үчүн туура). Бул төмөн өтмө чыпкасы бул жөнүндө кам көрүү үчүн идеалдуу талапкер дегенди билдирет.

Төмөн өтүү чыпкасы төмөн жыштыктарга (каалаган) өтүүгө мүмкүндүк берет жана жогорку жыштыктарды (керексиз) начарлатат.

6 -кадам: Чыпкалоо: 1 -бөлүк

Чыпкалоо: 1 -бөлүк
Чыпкалоо: 1 -бөлүк
Чыпкалоо: 1 -бөлүк
Чыпкалоо: 1 -бөлүк
Чыпкалоо: 1 -бөлүк
Чыпкалоо: 1 -бөлүк

Чыпканы долбоорлоо кол менен жасалышы мүмкүн, бирок, эгерде сизде программалык камсыздоого мүмкүнчүлүгүңүз болсо, MATLABты колдонуу аны тездетет.

Төмөн өтүү чыпкасы Лаплас домениндеги (жыштык домениндеги) өткөрүп берүү функциясына (же фракциясына) барабар болот. Киргизүү жыштыгы бул бөлүккө көбөйтүлөт жана чыгаруу сиз колдонгуңуз келген маалыматты гана камтыган чыпкаланган сигнал.

Функциянын бир гана өзгөрмөсү - tau. Тау 1 / Омегага барабар, мында Омега сиз каалаган чекит жыштыгы (секундуна радиан менен болушу керек). Чектөө жыштыгы - бул жыштыктар алынып салынган жана андан төмөн жыштыктар сактала турган чек.

Мен чектин жыштыгын кыймылдаткычым эч качан жетпей турган RPMге барабар кылдым (990 RPM же 165 Hz). FFT графиктери болжол менен менин чийки сигналым кандай жыштыктарды жана фильтрден чыккан жыштыктарды көрсөтөт.

7 -кадам: Чыпкалоо: 2 -бөлүк

Чыпкалоо: 2 -бөлүк
Чыпкалоо: 2 -бөлүк
Чыпкалоо: 2 -бөлүк
Чыпкалоо: 2 -бөлүк

Бул жерде MATLAB кайрадан убакыт үчүн колдонулган. Кесүү жыштыгы аныкталат жана андан алынган өткөрүп берүү функциясы көрсөтүлөт. Эсиңизде болсун, бул бөлүк Laplace доменине гана тиешелүү жана аны убакытка негизделген Arduino UNO R3 сыяктуу микро контроллерде түз колдонууга болбойт.

8 -кадам: Чыпкалоо: 3 -бөлүк

Чыпкалоо: 3 -бөлүк
Чыпкалоо: 3 -бөлүк
Чыпкалоо: 3 -бөлүк
Чыпкалоо: 3 -бөлүк

MATLAB үзгүлтүксүз функцияны (жыштык доменин) дискреттик функцияга (убакыт доменине) айландыра турган буйрукка ээ. Бул буйруктун чыгышы Arduino IDE кодуна оңой киргизиле турган теңдемени камсыз кылат.

9 -кадам: Чыпкалоо: 4 -бөлүк

Чыпкалоо: 4 -бөлүк
Чыпкалоо: 4 -бөлүк
Чыпкалоо: 4 -бөлүк
Чыпкалоо: 4 -бөлүк

Arduino эскизинде u жана y өзгөрмөлөрүн орнотуудан мурун кошуңуз. Float буйругу жөн гана өзгөрмөнүн маалыматтарды кантип сактай турганын аныктайт (максималдуу мааниси, ондуктары ж. /varia…

Чийки сигналдан кыймылдаткычтын ылдамдыгына айлануу жүрүп жаткан укурукта u өзгөрмөсүн жана y көп теңдемесин камтуу. Муну колдонуунун бир нече жолу бар, бирок u өзгөрмөсү чийки кирүүчү сигналга барабар болушу керек жана y өзгөрмөсү чыпкаланган мааниге ээ болот.

Сунушталууда: