Агуулгын хүснэгт:

Хөдөлгүүрийн эргэлтийн хурдыг харуулахын тулд Arduino -г ашиглана уу: 10 алхам (зурагтай)
Хөдөлгүүрийн эргэлтийн хурдыг харуулахын тулд Arduino -г ашиглана уу: 10 алхам (зурагтай)

Видео: Хөдөлгүүрийн эргэлтийн хурдыг харуулахын тулд Arduino -г ашиглана уу: 10 алхам (зурагтай)

Видео: Хөдөлгүүрийн эргэлтийн хурдыг харуулахын тулд Arduino -г ашиглана уу: 10 алхам (зурагтай)
Видео: 🟡 CARA BENAR MEMASANG KABEL HZ METER Panel Listrik (1 Phase) 2024, Долдугаар сарын
Anonim
Хөдөлгүүрийн эргэлтийг харуулахын тулд Arduino -г ашиглана уу
Хөдөлгүүрийн эргэлтийг харуулахын тулд Arduino -г ашиглана уу
Хөдөлгүүрийн эргэлтийг харуулахын тулд Arduino -г ашиглана уу
Хөдөлгүүрийн эргэлтийг харуулахын тулд Arduino -г ашиглана уу
Хөдөлгүүрийн эргэлтийг харуулахын тулд Arduino -г ашиглана уу
Хөдөлгүүрийн эргэлтийг харуулахын тулд Arduino -г ашиглана уу

Энэхүү гарын авлагад би Arduino UNO R3, I2C -тэй 16x2 LCD дэлгэц, хөдөлгүүрийн хурд хэмжигч, ээлжийн гэрэл болгон ашиглах LED зурвасыг Acura Integra автомашиндаа хэрхэн ашиглаж байсныг тайлбарлах болно. Энэ нь Arduino програм хангамж эсвэл ерөнхийдөө кодчилол, MATLAB математик програм хангамж, цахилгаан хэлхээг бий болгох эсвэл өөрчлөх туршлагатай эсвэл туршлагатай хүмүүсийн хувьд бичигдсэн болно. Ирээдүйд эдгээр сэдвээр туршлага багатай, туршлагагүй хүмүүст үүнийг ойлгоход хялбар болгох үүднээс үүнийг шинэчилж болно.

Алхам 1: Sigal утас сонгоно уу

Sigal утас сонгоно уу
Sigal утас сонгоно уу

Та хөдөлгүүрийн хурдтай холбоотой дохио авах ёстой. Хөдөлгүүрийн хурдыг хэмждэг системийг нэмж оруулах боломжтой боловч хөдөлгүүрийн хурдны мэдээллийг агуулсан одоо байгаа утсыг холбох нь илүү практик юм. Ганц машинд олон эх сурвалж байж болох бөгөөд нэг машины загвар дээр жил бүр өөр өөр байж болно. Энэхүү гарын авлагад зориулж би 2000 Acura Integra LS -ийн өөрчилсөн замыг өөрийн машиныхаа жишээн дээр ашиглах болно. Би хөдөлгүүр дээрээ (OBD2 -тэй B18B1) ашиглагдаагүй хүчдэл гарч, 12В өндөр бөгөөд бүрэн эргэлт хийсний дараа 0В хүртэл буурдаг болохыг олж мэдсэн.

Хөдөлгүүрийн хурдны боломжит дохиог тодорхойлоход туслах зүйлс:

  • Таны машины холболтын схем
  • Хөдөлгүүр/ECU дохиог агуулсан автомашиныхаа форумыг хайж байна
  • Найрсаг механик эсвэл машин сонирхогч

Алхам 2: Утасыг Arduino самбар руу сунгана уу

Утсыг Arduino самбар руу сунгана уу
Утсыг Arduino самбар руу сунгана уу
Утсыг Arduino самбар руу сунгана уу
Утсыг Arduino самбар руу сунгана уу

Тохирох дохиог сонгосны дараа та Arduino самбараа хаана байрлуулахаа сунгах хэрэгтэй болно. Би уурхайг радио байсан тээврийн хэрэгслийн дотор байрлуулахаар шийдсэн тул хөдөлгүүрээс авсан шинэ утсыг галын хананд резинэн бэхэлгээгээр дамжуулж, радиогийн талбай руу чиглүүлэв. Утасыг хуулах, гагнах, хамгаалах талаар маш олон тооны гарын авлага байдаг тул би энэ үйл явцыг тайлбарлахгүй.

Алхам 3: Дохионы шинжилгээ

Дохионы шинжилгээ
Дохионы шинжилгээ

Энд л бүх зүйл төвөгтэй болж болно. Дохионы анализ, удирдлагын талаар ерөнхий ойлголттой байх нь танд урт хугацаанд туслах болно, гэхдээ үүнийг бага мэдлэгтэйгээр хийх боломжтой.

Сонгосон дохионы утас нь хөдөлгүүрийн хурдны яг утгыг нулимахгүй байх магадлалтай. Үүнийг яг хүссэн хөдөлгүүрийн эргэлтийн тоог өгөхийн тулд хэлбэржүүлэх, өөрчлөх шаардлагатай болно. Машин, дохионы утас бүр өөр өөр байж магадгүй тул энэ үеэс эхлэн би Integra дистрибьютерээс авсан байрлалын дохиог хэрхэн ашигласнаа тайлбарлах болно.

Миний дохио нь ердийн 12V бөгөөд нэг бүтэн эргэлт хийх үед 0V хүртэл буурдаг. Хэрэв та нэг бүтэн эргэлт эсвэл нэг бүтэн мөчлөг хийх цагийг мэдэж байгаа бол үүнийг зарим үндсэн ойлголтуудыг ашиглан хувьсгал/мин болгон хялбархан орчуулж болно.

1 / (нэг мөчлөгт секунд) = секундэд цикл, эсвэл Гц

Нэг минутын эргэлт = Гц * 60

Алхам 4: Дохионы шинжилгээгээ кодчилно уу

Дохионы шинжилгээнд код оруулна уу
Дохионы шинжилгээнд код оруулна уу

Энэ арга нь оролтын дохиог нэг бүтэн мөчлөгийг дуусгахад шаардагдах хугацааг олж авахыг шаарддаг. Аз болоход Arduino IDE програм хангамж нь яг үүнийг хийдэг PulseIn гэсэн командтай байдаг.

Энэ тушаал нь босгыг давах дохиог хүлээж, тоолж эхлэх ба босгыг дахин давах үед тоолохоо зогсооно. Командыг ашиглахдаа зарим нарийн ширийн зүйлийг анхаарч үзэх хэрэгтэй тул би энд PulseIn -ийн мэдээллийн линкийг оруулах болно:

PulseIn нь утгыг микросекундээр буцааж өгөх бөгөөд математикийг энгийн байлгахын тулд үүнийг энгийн секундэд шууд хөрвүүлэх ёстой. Өмнөх алхам дээрх математикийн дараа энэ хугацааг RPM -тэй шууд тэнцүүлж болно.

Тэмдэглэл: Туршилт, алдааны дараа дистрибьютер хөдөлгүүрийн тахир голын эргэлт бүрт хоёр эргэлт хийдэг болохыг олж мэдсэн тул үүнийг хариулахын тулд хариултаа 2 -т хуваасан.

Алхам 5: Шүүлтүүрийг тодорхойлох

Шүүлтүүрийг тодорхойлох
Шүүлтүүрийг тодорхойлох

Хэрэв та азтай бол таны дохио ямар ч "чимээ" (хэлбэлзэл) авахгүй бөгөөд таны хөдөлгүүрийн хурд яг байх болно. Миний хувьд дистрибьютороос ихэвчлэн хүлээгдэж байснаас хол хүчдэл өгдөг маш их чимээ гардаг байсан. Энэ нь хөдөлгүүрийн бодит хурдны талаархи маш буруу уншилт болж хувирдаг. Энэ дуу чимээг шүүх шаардлагатай болно.

Дохионы шинжилгээ хийсний дараа бараг бүх дуу чимээ нь хөдөлгүүрийн гаргадаг давтамжаас (Гц) давсан (энэ нь ихэнх бодит динамик системүүдийн хувьд үнэн юм). Энэ нь бага нэвтрүүлэх шүүлтүүр нь үүнийг шийдвэрлэх хамгийн тохиромжтой нэр дэвшигч гэсэн үг юм.

Бага нэвтрүүлэх шүүлтүүр нь бага давтамжийг (хүссэн) дамжуулж, өндөр давтамжийг (хүсээгүй) сулруулдаг.

Алхам 6: Шүүлтүүр: 1 -р хэсэг

Шүүлтүүр: 1 -р хэсэг
Шүүлтүүр: 1 -р хэсэг
Шүүлтүүр: 1 -р хэсэг
Шүүлтүүр: 1 -р хэсэг
Шүүлтүүр: 1 -р хэсэг
Шүүлтүүр: 1 -р хэсэг

Шүүлтүүрийг өөрийн гараар хийх боломжтой боловч MATLAB -ийг ашиглах нь програм хангамжид хандах боломжтой бол үүнийг ихээхэн хурдасгах болно.

Бага нэвтрүүлэх шүүлтүүрийг Лаплас домэйны (давтамжийн домэйн) дамжуулах функц (эсвэл фракц) -тай тэнцүүлж болно. Оролтын давтамжийг энэ бутархайгаар үржүүлэх бөгөөд гаралт нь зөвхөн таны ашиглахыг хүссэн мэдээллийг агуулсан шүүсэн дохио болно.

Функцийн цорын ганц хувьсагч нь tau юм. Тау нь 1 / Омега -тай тэнцүү бөгөөд энд Омега бол таны хүссэн хязгаарын давтамж юм (секундэд радианаар байх ёстой). Таслах давтамж нь давтамжийг хасах, түүнээс бага давтамжийг хадгалах хязгаар юм.

Би таслах давтамжийг миний хөдөлгүүр хэзээ ч хүрэхгүй байх болно (990 эрг / мин эсвэл 165 Гц). FFT график дээр миний түүхий дохио ямар давтамжтай, шүүлтүүрээс гарсан давтамжийг ойролцоогоор харуулдаг.

Алхам 7: Шүүлтүүр хийх: 2 -р хэсэг

Шүүлтүүр: 2 -р хэсэг
Шүүлтүүр: 2 -р хэсэг
Шүүлтүүр: 2 -р хэсэг
Шүүлтүүр: 2 -р хэсэг

Энд MATLAB -ийг цаг хугацааны хувьд дахин ашиглав. Таслах давтамжийг тодорхойлж, үүнээс үүссэн дамжуулах функцийг харуулна. Энэ хэсгийг зөвхөн Лаплас домэйнд хамаарах бөгөөд Arduino UNO R3 гэх мэт цаг дээр суурилсан микро хянагч дээр шууд ашиглах боломжгүй гэдгийг санаарай.

Алхам 8: Шүүлтүүр: 3 -р хэсэг

Шүүлтүүр: 3 -р хэсэг
Шүүлтүүр: 3 -р хэсэг
Шүүлтүүр: 3 -р хэсэг
Шүүлтүүр: 3 -р хэсэг

MATLAB нь тасралтгүй функцийг (давтамжийн домэйн) салангид функц (цагийн домэйн) болгон хувиргах командтай. Энэ командын гаралт нь Arduino IDE кодод хялбархан оруулах тэгшитгэлийг өгөх болно.

Алхам 9: Шүүлтүүр хийх: 4 -р хэсэг

Шүүлтүүр: 4 -р хэсэг
Шүүлтүүр: 4 -р хэсэг
Шүүлтүүр: 4 -р хэсэг
Шүүлтүүр: 4 -р хэсэг

Arduino тоймд u болон y хувьсагчдыг тохируулахаас өмнө оруулна уу. Float тушаал нь хувьсагч өгөгдлийг хэрхэн хадгалахыг тодорхойлдог (хамгийн их утга, аравтын бутархай гэх мэт … гэх мэт) бөгөөд энэ талаар дэлгэрэнгүй мэдээлэл авах линкийг энд өгөх болно: https://www.arduino.cc/reference/en/language /varia…

Түүхий дохионоос хөдөлгүүрийн хурд руу шилжих мөчлөгт u хувьсагч ба y олон тэгшитгэлийг оруулна уу. Үүнийг ашиглах олон арга байдаг боловч u хувьсагчийг хэмжиж буй түүхий оролтын дохиотой тэнцүү байх ёстой бөгөөд y хувьсагч нь шүүгдсэн утга байх болно.

Зөвлөмж болгож буй: