Мазмұны:

Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз: 10 қадам (суреттермен)
Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз: 10 қадам (суреттермен)

Бейне: Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз: 10 қадам (суреттермен)

Бейне: Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз: 10 қадам (суреттермен)
Бейне: Lesson 101: Using IR Remote to control TV, AC Bulb with Relay, DC Motor and Servo Motor 2024, Қараша
Anonim
Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз
Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз
Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз
Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз
Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз
Қозғалтқыштың айналу жиілігін көрсету үшін Arduino пайдаланыңыз

Бұл нұсқаулықта менің Arduino UNO R3, I2C бар 16x2 СКД дисплейі мен Acura Integra автокөлігінде қозғалтқыштың жылдамдығын өлшейтін және ауыспалы шам ретінде қолданылатын жарықдиодты жолақты қалай қолданғаным баяндалады. Бұл тәжірибесі бар немесе Arduino бағдарламалық жасақтамасымен немесе жалпы кодтаумен, MATLAB математикалық бағдарламалық жасақтамасымен және электр тізбектерін құрумен немесе өзгертумен байланысты жазылған. Болашақта бұл тақырыптармен тәжірибесі жоқ адамдарға түсінікті болу үшін қайта қаралуы мүмкін.

1 -қадам: Sigal сымын таңдаңыз

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

Сізге қозғалтқыш жылдамдығына сәйкес келетін сигнал қажет. Қозғалтқыш жылдамдығын өлшейтін жүйені қосуға болады, бірақ қозғалтқыш жылдамдығы туралы ақпаратты тасымалдайтын бар сымға тигізу әлдеқайда тиімді. Бір автокөлікте бұл үшін бірнеше көздер болуы мүмкін және ол бір көліктің бір үлгісінде жыл сайын өзгеруі мүмкін. Бұл оқулық үшін мен өз машинамның үлгісін қолданамын, 2000 Acura Integra LS түрлендірілген жол. Мен қозғалтқышымда (OBD2 бар B18B1) пайдаланылмайтын кернеу бар екенін білдім, ол 12 В жоғары және толық айналымды аяқтағаннан кейін 0 В дейін төмендейді.

Қозғалтқыштың потенциалды сигналын анықтауға көмектесетін нәрселер:

  • Көлігіңіздің электр схемасы
  • Қозғалтқыш/ECU сигналдары қатысатын көлікке арналған форумдарды іздеу
  • Мейірімді механик немесе автокөлік әуесқойы

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

Ардуино тақтасына сымды кеңейтіңіз
Ардуино тақтасына сымды кеңейтіңіз
Ардуино тақтасына сымды кеңейтіңіз
Ардуино тақтасына сымды кеңейтіңіз

Сәйкес сигналды таңдағаннан кейін, оны Arduino тақтасын қай жерге қойсаңыз да кеңейту қажет болады. Мен минаны радио қолданатын көлік құралының ішіне орналастыруды шештім, сондықтан мен жаңа сымды қозғалтқыштан, от қабырғасындағы резеңке тордан және радио аймағына қарай бағыттадым. Сымдарды тазарту, дәнекерлеу және қорғау бойынша көптеген нұсқаулықтар бар болғандықтан, мен бұл процесті түсіндірмеймін.

3 -қадам: сигналды талдау

Сигналды талдау
Сигналды талдау

Міне, бұл жерде жағдай күрделене түсуі мүмкін. Сигналды талдау мен басқару туралы жалпы түсінікке ие болу сізге ұзақ жолда көмектеседі, бірақ аз біліммен мүмкін.

Таңдалған сигнал сымы қозғалтқыш жылдамдығының нақты мәнін шығармайды. Қажетті қозғалтқыш айналымының нақты санын беру үшін оны пішіндеу және өзгерту қажет. Әр таңдалған автомобиль мен сигнал сымы әр түрлі болуы мүмкін болғандықтан, осы сәттен бастап мен Integra дистрибьюторының позиция сигналын қалай қолданғанымды түсіндіремін.

Менің сигналым әдетте 12В және бір толық айналуды аяқтағанда 0В дейін төмендейді. Егер сіз бір толық айналымды немесе бір толық циклды аяқтау уақытын білсеңіз, оны кейбір негізгі ұғымдарды қолдана отырып, минутына революцияға оңай аударуға болады.

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

Айналым минутына = Гц * 60

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

Сіздің сигнал талдауларыңызды кодтаңыз
Сіздің сигнал талдауларыңызды кодтаңыз

Бұл әдіс кіріс сигналына бір толық циклды аяқтау үшін қажет уақытты алуды қажет етеді. Бақытымызға орай, Arduino IDE бағдарламалық жасақтамасында дәл PulseIn командасы бар.

Бұл команда табалдырықтан өту үшін сигналды күтеді, санауды бастайды және табалдырықты қайта аттағанда санауды тоқтатады. Пәрменді пайдалану кезінде ескеру қажет кейбір мәліметтер бар, сондықтан мен мұнда PulseIn ақпаратына сілтемені қосамын:

PulseIn микросекундтарда мәнді қайтарады және математиканы қарапайым ұстау үшін оны бірден қалыпты секундқа түрлендіру керек. Алдыңғы қадамдағы математикадан кейін бұл уақыт ұзақтығын тікелей RPM -ге теңестіруге болады.

Ескерту: сынақтан және қателіктен кейін мен дистрибьютордың қозғалтқыш иінді білігінің әр айналуы үшін екі айналымды аяқтағанын білдім, сондықтан мен бұл үшін жауапты 2 -ге бөлдім.

5 -қадам: Сүзгіні анықтаңыз

Сүзгіні анықтаңыз
Сүзгіні анықтаңыз

Егер сіз бақытты болсаңыз, сіздің сигналыңызда «шу» болмайды (қозғалыс) және қозғалтқыштың жылдамдығы дәл болады. Менің жағдайда, дистрибьютордан күткеннен алыс кернеуді беретін шу болды. Бұл қозғалтқыштың нақты жылдамдығының жалған көрсеткіштеріне айналады. Бұл шуды сүзу қажет болады.

Кейбір сигналдарды талдаудан кейін, шудың барлығы дерлік қозғалтқыш шығаратыннан әлдеқайда жоғары жиіліктерде (Гц) пайда болды (бұл нақты динамикалық жүйелердің көпшілігіне сәйкес келеді). Бұл төмен өту сүзгісі бұл мәселеге өте жақсы үміткер екенін білдіреді.

Төмен өту сүзгісі төмен жиіліктерді (қалаған) өткізуге мүмкіндік береді және жоғары жиілікті (қажетсіз) әлсіретеді.

6 -қадам: Сүзу: 1 -бөлім

Сүзу: 1 бөлім
Сүзу: 1 бөлім
Сүзу: 1 бөлім
Сүзу: 1 бөлім
Сүзу: 1 бөлім
Сүзу: 1 бөлім

Сүзгіні қолмен жасауға болады, алайда MATLAB -ты қолдану бағдарламалық қамтамасыз етуге қол жеткізе алатын болсаңыз, бұл айтарлықтай жылдамдатады.

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

Функциядағы жалғыз айнымалы - tau. Тау 1 / Омега -ға тең, мұнда Омега - сіз қалаған шекті жиілік (секундына радианмен болуы керек). Шектеу жиілігі - бұл жиіліктер одан жоғары жиіліктер жойылатын және одан төмен жиіліктер сақталатын шек.

Мен шектеу жиілігін қозғалтқышым ешқашан жетпейтін айналу жиілігіне тең етіп қойдым (990 айн / мин немесе 165 Гц). 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 айнымалысы сүзілген мән болады.

Ұсынылған: