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

Arduino ашиглан моторын хурдыг хэмжих: 6 алхам
Arduino ашиглан моторын хурдыг хэмжих: 6 алхам

Видео: Arduino ашиглан моторын хурдыг хэмжих: 6 алхам

Видео: Arduino ашиглан моторын хурдыг хэмжих: 6 алхам
Видео: 50 САМЫХ ИННОВАЦИОННЫХ ЛИЧНЫХ ТРАНСПОРТНЫХ СРЕДСТВ 2021–2022 гг. 2024, Долдугаар сарын
Anonim
Arduino ашиглан моторын хурдыг хэмжих
Arduino ашиглан моторын хурдыг хэмжих
Arduino ашиглан моторын хурдыг хэмжих
Arduino ашиглан моторын хурдыг хэмжих
Arduino ашиглан моторын хурдыг хэмжих
Arduino ашиглан моторын хурдыг хэмжих

Хөдөлгүүрийн эргэлтийг хэмжихэд хэцүү байна уу? Би тэгж бодохгүй байна. Энд нэг энгийн шийдэл байна.

Таны иж бүрдэлд байгаа зөвхөн нэг IR мэдрэгч ба Arduino үүнийг хийх боломжтой.

Энэ бичлэгт би IR мэдрэгч болон Arduino UNO/нано ашиглан аливаа хөдөлгүүрийн эргэлтийг хэрхэн хэмжих талаар тайлбарлах энгийн хичээлийг өгөх болно.

Хангамж:

1. Arduion uno (Amazon) / Arduion нано (Amazon)

2. IR мэдрэгч (Амазон)

3. DC мотор дурын (Amazon)

4. LCD 16*2 (Амазон)

Ашигласан хэрэгсэл

1. Гагнуурын төмөр (Амазон)

2. Утас хуулагч (Амазон)

Алхам 1: Алхам: 1 Мэдрэгч ба төхөөрөмжийн ажиллах нөхцлийг хангах

IR мэдрэгч нь хүрээлэн буй орчны объектуудыг мэдрэх зорилгоор гэрэл цацруулдаг электрон төхөөрөмж юм. IR мэдрэгч нь объектын дулааныг хэмжихээс гадна хөдөлгөөнийг илрүүлж чаддаг. Ихэвчлэн хэт улаан туяаны спектр дэх бүх объектууд ямар нэгэн дулааны цацраг туяа цацруулдаг. Ийм цацраг туяа нь бидний нүдэнд үл үзэгдэх боловч хэт улаан туяаны мэдрэгч нь эдгээр цацрагийг илрүүлж чаддаг.

Тогтмол гүйдэл (DC) мотор нь цахилгаан энергийг механик энерги болгон хувиргадаг цахилгаан машин юм. DC мотор нь цахилгаан гүйдлийг шууд гүйдэлээр дамжуулж, энэ энергийг механик эргэлт болгон хувиргадаг.

Тогтмол гүйдлийн хөдөлгүүр нь үүсгэсэн цахилгаан гүйдлээс үүсэх соронзон орныг ашигладаг бөгөөд энэ нь гаралтын босоо аманд бэхлэгдсэн роторын хөдөлгөөнийг хангадаг. Гаралтын момент ба хурд нь цахилгаан оролт болон хөдөлгүүрийн дизайнаас хамаарна.

Arduino гэж юу вэ?

Arduino бол ашиглахад хялбар техник хангамж, програм хангамж дээр суурилсан нээлттэй эхийн электроникийн платформ юм. Arduino самбар нь мэдрэгч дээрх гэрэл, товчлуур дээрх хуруу эсвэл твиттер мессежийг оруулан уншиж, гаралт болгон хувиргах - моторыг идэвхжүүлэх, LED -ийг асаах, онлайнаар ямар нэгэн зүйл нийтлэх боломжтой. Та самбар дээрх микроконтроллер руу зааварчилгаа илгээж юу хийхээ самбартаа хэлж болно. Үүнийг хийхийн тулд та Arduino програмчлалын хэлийг (утас холболт дээр суурилсан), мөн боловсруулалтад суурилсан Arduino програм хангамжийг (IDE) ашигладаг.

ARDUINO IDE татаж авах

Алхам 2: Энэ нь хэрхэн ажилладаг вэ?

Тэгвэл үүний цаана ямар логик байна вэ?

Энэ нь кодлогчтой маш төстэй ажилладаг. Кодлогчдыг эхлэгчдэд ойлгоход хэцүү байдаг. Таны мэдэх ёстой зүйл бол IR мэдрэгч нь импульс үүсгэдэг бөгөөд импульс бүрийн хоорондох хугацааны интервалыг бид олж мэдэх болно.

Энэ тохиолдолд хэт ягаан туяаны мэдрэгч нь хөдөлгүүрийн сэнстэй холбогдож байх үед Arduino руу импульс илгээх болно. Ихэвчлэн бид хоёр иртэй сэнсийг ашигладаг, гэхдээ би зураг дээр үзүүлсэн шиг гурван иртэй сэнсийг ашигласан. сэнсний ирний тооноос хамааран RPM -ийг тооцоолохдоо зарим утгыг өөрчлөх шаардлагатай болно.

Бид хоёр иртэй сэнстэй гэж үзье. Хувьсгалт мотор бүрийн хувьд ир нь IR туяаг хоёр удаа тасалдаг. Тиймээс IR мэдрэгч нь таслах үед импульс үүсгэдэг.

Одоо бид тодорхой хугацааны интервалаар IR мэдрэгчийн үүсгэсэн тооны импульсийг хэмжих програм бичих ёстой.

Асуудлыг шийдэх хэд хэдэн арга байдаг, гэхдээ би импульсийн хугацааг микро секундээр хэмжихийн тулд micros () функцийг ашигласан тасалдал хоорондын хугацааг (IR мэдрэгч) хэмжсэн энэ кодын аль нь хамгийн сайн болохыг сонгох ёстой.

Та энэ томъёог ашиглан RPMRPM = ((1/үргэлжлэх хугацаа)*1000*1000*60)/ирийг хэмжих боломжтой.

хаана, үргэлжлэх хугацаа - импульс хоорондын хугацааны интервал.

60 секундээс хэдэн минут хүртэл

1000 - тээрэмээс секундын хооронд

1000 - микро тээрэмдэх

ир - сэнсний далавч байхгүй.

LCD дэлгэц - Arduino нь LCD дэлгэцийн тушаал, өгөгдлийн бүртгэлийг шинэчилдэг. LCD дэлгэц дээр ASCII тэмдэгтүүдийг харуулдаг.

Алхам 3: Arduino IDE ашиглан Arduino програмчлах

#оруулах

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR мэдрэгч INPUT гарын үсэг зураагүй урт prevmicros; // Цагийг гарын үсэг зураагүй урт хугацаанд хадгалахын тулд; // Цагийн зөрүүг хадгалахын тулд гарын үсэг зураагүй урт lcdrefresh; // int rpm -ийг шинэчлэх lcd -д цаг хадгалахын тулд; // RPM утга boolean currentstate; // IR оролтын одоогийн төлөв boolean prevstate; // Өмнөх скан хоосон тохиргоонд IR мэдрэгчийн төлөв () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; өмнөх төлөв = LOW; } хүчингүй гогцоо () {/////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// RPM Measurement currentstate = digitalRead (IR_IN); // IR мэдрэгчийн төлөвийг уншина уу (prevstate! = Currentstate) // Хэрэв оролтод өөрчлөлт орсон бол {if (currentstate == LOW) // Хэрэв оролт нь зөвхөн HIGH -аас LOW болж өөрчлөгдвөл {duration = (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: Proteus ашиглан симуляци хийх

Proteus ашиглан симуляци хийх
Proteus ашиглан симуляци хийх

Би үүнийг протеусын тусламжтайгаар дуурайхыг оролдоход энэ төсөл маш сайн ажилласан.

Хэт улаан туяаны мэдрэгчийг ашиглахын оронд би DC импульс үүсгэгчийг ашигласан.

Та ашиглаж буй мэдрэгчийнхээ дагуу програмдаа өөрчлөлт оруулах ёстой

LM358 бүхий IR мэдрэгч энэ тушаалыг ашиглах ёстой.

if (currentstate == HIGH) // Хэрэв оролт нь зөвхөн LOW -с HIGH болж өөрчлөгдвөл

LM359 бүхий IR мэдрэгч энэ тушаалыг ашиглах ёстой.

if (currentstate == LOW) // Хэрэв оролт зөвхөн HIGH -аас LOW болж өөрчлөгдвөл

Алхам 5: Тоног төхөөрөмжийн гүйцэтгэл

Тоног төхөөрөмжийн гүйцэтгэл
Тоног төхөөрөмжийн гүйцэтгэл
Тоног төхөөрөмжийн гүйцэтгэл
Тоног төхөөрөмжийн гүйцэтгэл
Тоног төхөөрөмжийн гүйцэтгэл
Тоног төхөөрөмжийн гүйцэтгэл

Схемийн хувьд симуляцийн зургуудыг ашиглана уу эсвэл програмын кодыг лавлаж, үүний дагуу холболт хий. Програмын кодыг Arduino -д байршуулж, ямар ч моторын эргэлтийг хэмжинэ. Миний дараагийн бичлэгийг хүлээж байгаарай, миний YouTube сувгийг үзээрэй.

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