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

Inverter -д зориулсан Arduino Sinewave: 4 алхам
Inverter -д зориулсан Arduino Sinewave: 4 алхам

Видео: Inverter -д зориулсан Arduino Sinewave: 4 алхам

Видео: Inverter -д зориулсан Arduino Sinewave: 4 алхам
Видео: Как сделать схему усилителя постоянного тока высокой мощности LM2577 (с обратной связью ) 2024, Арваннэгдүгээр
Anonim
Inverter -д зориулсан Arduino Sinewave
Inverter -д зориулсан Arduino Sinewave

Энэ төсөлд би хоёр arduino pwm дижитал гаралтаас SPWM (синус долгионы импульс өргөн модуляцлагдсан) дохиог үүсгэсэн.

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

төслийн бүс

Алхам 1: 50Hz давтамжтай Pwm дохио үүсгэх

Өндөр давтамжтайгаар 50 Гц дохио үүсгэхийн тулд зарим тооцоо хийх шаардлагатай байдаг. Arduino -ийн давтамж 8 МГц давтамжтай байж болох боловч бид хувьсах үүргийн мөчлөгтэй дохио авахыг хүсч байна.

Arduino -ийн хувьсах ажлын мөчлөгийн төрлийг ойлгохын тулд 1, 2, 3 -р бичлэгийн 3 хэсгийг уншиж болно.

Бидний давтамж 50 Гц байна гэж үзье. Тиймээс 10 мс бол хагас мөчлөгийн үе юм. Эдгээр 10 м -ийн хувьд жижиг үүргийн мөчлөгөөс эхлээд янз бүрийн үүргийн мөчлөгтэй олон импульс байх ёстой бөгөөд дохионы дунд хамгийн их үүргийн мөчлөгтэй байх ба жижиг үүргийн мөчлөгөөр дуусгах шаардлагатай байдаг. эерэг хагас мөчлөг, сөрөг хагас мөчлөгийн хувьд нэг. Манай нийтлэлд бид 5 ба 6 -р зүүг ашигладаг бөгөөд энэ нь таймер 0 гэсэн үг юм.

Гөлгөр дохионы хувьд бид 31372 Гц давтамжтай зөв pwm-ийг сонгоно. Өмнөх нийтлэлийг үзнэ үү. Хамгийн том бэрхшээл бол импульс бүрийн шаардлагатай ажлын мөчлөгийг хэрхэн тооцоолох явдал юм. Тиймээс, бидний давтамж f = 31372Hz тул импульс бүрийн хугацаа T = 1/31372 = 31.8 бидэнд байдаг тул хагас мөчлөгийн импульсийн тоо N = 10ms/31.8us = 314 импульс юм. Импульс тус бүрийн үүргийн мөчлөгийг тооцоолохын тулд бидэнд y = sinx байна, гэхдээ энэ тэгшитгэлд бидэнд градус хэрэгтэй тул хагас мөчлөгийн хувьд 314 импульсийн 180 градус байна. Импульс бүрийн хувьд 180/314 = 0.57 градус/импульс байна. Энэ нь судасны цохилт бүрт бид 0.57 градусаар урагшилна гэсэн үг юм.

y нь ажлын мөчлөг, x нь хагас ажлын мөчлөгийн байрлалын утга юм. Эхлээд x нь 0, гэхдээ x = 0.57, x = 1.14 гэх мэт x = 180 хүртэл байна.

Хэрэв бид 314 утгыг бүгдийг нь тооцоолох юм бол 314 элементийн массивыг олж авна (arduino -ээр тооцоолоход хялбар "int").

Ийм массив нь:

int sinPWM = {1, 2, 5, 7, 10, 12, 15, 17, 19, 22, 24, 27, 30, 32, 34, 37, 39, 42, 44, 47, 49, 52, 54, 57, 59, 61, 64, 66, 69, 71, 73, 76, 78, 80, 83, 85, 88, 90, 92, 94, 97, 99, 101, 103, 106, 108, 110, 113, 115, 117, 119, 121, 124, 126, 128, 130, 132, 134, 136, 138, 140, 142, 144, 146, 148, 150, 152, 154, 156, 158, 160, 162, 164, 166, 168, 169, 171, 173, 175, 177, 178, 180, 182, 184, 185, 187, 188, 190, 192, 193, 195, 196, 198, 199, 201, 202, 204, 205, 207, 208, 209, 211, 212, 213, 215, 216, 217, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 237, 238, 239, 240, 240, 241, 242, 242, 243, 243, 244, 244, 245, 245, 246, 246, 247, 247, 247, 248, 248, 248, 248, 249, 249, 249, 249, 249, 250, 250, 250, 250, 250, 249, 249, 249, 249, 249, 248, 248, 248, 248, 247, 247, 247, 246, 246, 245, 245, 244, 244, 243, 243, 242, 242, 241, 240, 240, 239, 238, 237, 237, 236, 235, 234, 233, 232, 231, 230, 229, 228, 227, 226, 225, 224, 223, 222, 221, 220, 219, 217, 21 6, 215, 213, 212, 211, 209, 208, 207, 205, 204, 202, 201, 199, 198, 196, 195, 193, 192, 190, 188, 187, 185, 184, 182, 180, 178, 177, 175, 173, 171, 169, 168, 166, 164, 162, 160, 158, 156, 154, 152, 150, 148, 146, 144, 142, 140, 138, 136, 134, 132, 130, 128, 126, 124, 121, 119, 117, 115, 113, 110, 108, 106, 103, 101, 99, 97, 94, 92, 90, 88, 85, 83, 80, 78, 76, 73, 71, 69, 66, 64, 61, 59, 57, 54, 52, 49, 47, 44, 42, 39, 37, 34, 32, 30, 27, 24, 22, 19, 17, 15, 12, 10, 7, 5, 2, 1};

Синус долгион шиг үүргийн мөчлөг нь эхний ба сүүлчийн элементийн хамгийн бага, дунд нь хамгийн өндөр байдаг гэдгийг та харж байна.

Алхам 2: Хувьсах үүргийн мөчлөгийн Arduino програм

Хувьсах үүргийн мөчлөгийн Arduino програм
Хувьсах үүргийн мөчлөгийн Arduino програм

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

Гэхдээ яаж ийм дохио өгөх вэ ???

Доорх програмын хэсэг нь тасалдлыг ашиглан үүргийн мөчлөгийн утгыг өөрчлөх болно

sei (); // тасалдлыг идэвхжүүлэх

}

ISR (TIMER1_COMPA_vect) {// таймер 1 нь OCR1A утгатай таарч байвал тасалдах

if (i> 313 && OK == 0) {// зүү 6 -ийн векторын эцсийн утга

i = 0; // векторын анхны утга руу очих (массив)

OK = 1; // 5 -р зүүг идэвхжүүлнэ үү

}

x = sinPWM ; // x нь i байрлалд харгалзах векторын утгыг авна (i тэг индексжүүлсэн)-үүргийн мөчлөгийн утга

i = i+1; // дараагийн байрлал руу орно

}

Алхам 3: 50Гц давтамжтай Arduino Pins дээр ээлжлэн солино

50Hz давтамжтай Arduino Pins
50Hz давтамжтай Arduino Pins

Зүү бүр бүрэн синус долгион хийхийн тулд зөвхөн хагас ажлын мөчлөг үүсгэдэг тул бид хоёр тээглүүр ашигладаг бөгөөд тэдгээр нь 10 секундын дараа (50 Гц -ийн хувьд) ээлжлэн солигддог. Энэ зүүг массивын төгсгөлд хийдэг- 5-р зүү нь 314 импульс үүсгэсэн гэж хэлсний дараа энэ зүүг унтрааж, 6-р зүүг идэвхжүүлсэн бөгөөд энэ нь ижил зүйлийг хийдэг боловч сөрөг ажлын мөчлөгийн хувьд.

Ардуино нь зөвхөн эерэг дохио өгч чаддаг тул сөрөг үүргийн циклийг h гүүр дээр хийдэг тул та эндээс уншиж болно

Зүү солих програм:

sei (); // тасалдлыг идэвхжүүлэх

}

ISR (TIMER1_COMPA_vect) {// таймер 1 нь OCR1A утгатай таарч байвал тасалдах

if (i> 313 && OK == 0) {// зүү 6 -ийн векторын эцсийн утга

i = 0; // векторын эхний утга руу очно уу

OK = 1; // 5 -р зүүг идэвхжүүлнэ үү

}

if (i> 313 && OK == 1) {// 5 -р зүү дэх векторын эцсийн утга

i = 0; // векторын эхний утга руу очно уу

OK = 0; // 6 -р зүүг идэвхжүүлнэ үү

}

x = sinPWM ; // x нь i байрлалд харгалзах векторын утгыг авна (i тэг индексжүүлсэн)

i = i+1; // дараагийн байрлал руу орно

хэрэв (OK == 0) {

OCR0B = 0; // зүү 5 0 болгох

OCR0A = x; // холбогдох үүргийн мөчлөгийн 6 -р зүүг идэвхжүүлнэ

хэрэв (OK == 1) {

OCR0A = 0; // зүү 6 0 болгох

OCR0B = x; // холбогдох үүргийн мөчлөгийн 5 -р зүүг идэвхжүүлнэ

}

}

Алхам 4: H гүүр жолоодох, Pwm дохиог шүүх

Ардуиногоос авсан дохио нь инвертерийн хэрэглээний хяналтын хэсэг бөгөөд хоёулаа эерэг байдаг. Бүрэн синус долгион, практик инвертер болгохын тулд бид h гүүрийг ашиглаж, pwm бага нэвтрүүлэх шүүлтүүрийг цэвэрлэх ёстой.

H-гүүрийг энд толилуулж байна.

Бага нэвтрүүлэх шүүлтүүрийг жижиг Ac мотороор туршиж үзсэн болно.

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