Агуулгын хүснэгт:
- Алхам 1: 50Hz давтамжтай Pwm дохио үүсгэх
- Алхам 2: Хувьсах үүргийн мөчлөгийн Arduino програм
- Алхам 3: 50Гц давтамжтай Arduino Pins дээр ээлжлэн солино
- Алхам 4: H гүүр жолоодох, Pwm дохиог шүүх
Видео: Inverter -д зориулсан Arduino Sinewave: 4 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-30 11:05
Энэ төсөлд би хоёр 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 програм
Дээрх зурган дээр бид массивын утгатай хувьсах үүргийн мөчлөгийн дохионуудтай байна.
Гэхдээ яаж ийм дохио өгөх вэ ???
Доорх програмын хэсэг нь тасалдлыг ашиглан үүргийн мөчлөгийн утгыг өөрчлөх болно
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 дээр ээлжлэн солино
Зүү бүр бүрэн синус долгион хийхийн тулд зөвхөн хагас ажлын мөчлөг үүсгэдэг тул бид хоёр тээглүүр ашигладаг бөгөөд тэдгээр нь 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 мотороор туршиж үзсэн болно.
Зөвлөмж болгож буй:
Хийн хөдөлгүүрт зориулсан Arduino RPM хязгаарлагч: 5 алхам
Хийн хөдөлгүүрт зориулсан Arduino RPM хязгаарлагч: Youtube жагсаал Энэ нь бензин хөдөлгүүрийн хурдыг хязгаарлах захирагчийг солиход зориулагдсан болно. Энэхүү RPM хязгаарлагчийг 3 өөр тохиргоонд шилжүүлж болно. Би үүнийг ганц цилиндр, Бриггс, Страттон хөдөлгүүрт суулгаж, Ardu ашигласан
Arduino болон бусад микро төхөөрөмжүүдэд зориулсан хямд ESP8266 WiFi бамбай: 6 алхам (зурагтай)
Arduino болон бусад микро төхөөрөмжүүдэд зориулсан хямд ESP8266 WiFi бамбай: Шинэчлэлт: 2020 оны 10 -р сарын 29 -нд E220.4 ESP8266 номын сангийн номын сангаар шалгагдсан - шинэчлэгдсэн: 2016 оны 9 -р сарын 23 -ны өдөр Arduino ESP хавтангийн номын сангийн V2.3.0 -ийг бүү ашигла. V2.2.0 ажил Шинэчлэлт: 2016 оны 5 -р сарын 19 Энэ төслийн 14 -р сарын байдлаар номын сангууд болон кодыг шинэчлэн засварлах болно
Мобайлаар дамжуулан Arduino програмчлал -- Ардуинодроид -- Android -д зориулсан Arduino Ide -- Нүдээ анивчих: 4 алхам
Мобайлаар дамжуулан Arduino програмчлал || Ардуинодроид || Android -д зориулсан Arduino Ide || Blink: Миний youtube сувагт бүртгүүлээд илүү олон видео үзээрэй …… Arduino бол USB -ээр шууд програмчлах боломжтой самбар юм. Энэ нь коллеж, сургуулийн төсөл, тэр ч байтугай бүтээгдэхүүний прототипт маш энгийн бөгөөд хямд байдаг. Ихэнх бүтээгдэхүүнүүд үүнд тулгуурлан бүтээгддэг
Тамил хэл дээр мултиметрийг хэрхэн ашиглах вэ - Эхлэгчдэд зориулсан гарын авлага - Эхлэгчдэд зориулсан мултиметр: 8 алхам
Тамил хэл дээр мултиметрийг хэрхэн ашиглах вэ | Эхлэгчдэд зориулсан гарын авлага | Эхлэгчдэд зориулсан мультиметр: Сайн байна уу найзуудаа, энэ хичээлээр би мультиметрийг бүх төрлийн электроникийн хэлхээнд 7 өөр үе шаттайгаар хэрхэн ашиглахыг тайлбарласан болно. Үүнд: 1) эвдрэлийг арилгах тоног төхөөрөмжийн тасралтгүй байдлыг шалгах тест 2) тогтмол гүйдлийг хэмжих 3) диод ба LED турших 4) хэмжих Рези
Эхлэгчдэд зориулсан Arduino: 16x2 LCD дэлгэцтэй Arduino интерфэйс: 5 алхам
Эхлэгчдэд зориулсан Arduino: 16x2 LCD дэлгэцтэй Arduino интерфэйс Тайлбарласан: Бүгдээрээ сайн байцгаана уу, өнөө үед Arduino маш алдартай болсон бөгөөд кодчилох хялбар байдлаас шалтгаалан хүн бүр үүнийг хүлээн зөвшөөрдөг болсон. модулийг ажиллуулахын тулд хөгжүүлэгчид хүртэл. Энэ нь