Përmbajtje:
- Hapi 1: Gjenerimi i sinjalit Pwm për 50Hz
- Hapi 2: Programi Arduino për Ciklin e Detyrës së Ndryshueshme
- Hapi 3: Alternimi në kunjat Arduino 50Hz
- Hapi 4: Drejtimi i Urës H dhe Filtrimi i Sinjalit Pwm
Video: Arduino Sinewave për Inverters: 4 Hapa
2024 Autor: John Day | [email protected]. E modifikuara e fundit: 2024-01-30 12:27
Në këtë projekt, unë kam krijuar një sinjal SPWM (pulsi valor sinus i moduluar gjerësisht) nga dy dalje dixhitale arduino pwm.
Sepse për të bërë një program të tillë më duhet të flas për shumë funksione dhe veti të tjera të arduino -s, projektin e plotë, përfshirë imazhet e oshiloskopit dhe për frekuenca të ndryshme, ju lutemi vizitoni faqen time në internet:
eprojectszone
Hapi 1: Gjenerimi i sinjalit Pwm për 50Hz
Për të gjeneruar një sinjal 50Hz në frekuencë më të lartë është e nevojshme të bëhen disa llogaritje. Frekuencat nga arduino mund të jenë në 8MHz, por ne duam një sinjal me cikël detyre të ndryshueshëm.
Për të kuptuar llojet e cikleve të ndryshueshme të detyrave të arduino, mund të lexoni këto 3 pjesë të të njëjtit postim 1, 2 dhe 3.
Le të supozojmë se frekuenca jonë është 50Hz që do të thotë se periudha kohore është 20ms. Pra, 10ms është gjysmë cikli. Në ato 10ms ne duhet të kemi shumë impulse me cikle të ndryshme detyre duke filluar me cikle të vegjël të punës, në mes të sinjalit kemi cikle maksimale të punës dhe përfundojmë gjithashtu me cikle të vegjël detyre. Për të gjeneruar një valë sinus do të përdorim dy kunja një për gjysmë cikli pozitiv dhe një për gjysmën e ciklit negativ. Në postimin tonë për këtë ne përdorim kunjat 5 dhe 6 që do të thotë Kohëmatësi 0.
Për një sinjal të qetë ne zgjedhim fazën e duhur pwm në një frekuencë 31372 Hz-shiko postimin e mëparshëm. Një nga problemet më të mëdha është se si ne llogarisim ciklin e nevojshëm të punës për secilin puls. Pra, për shkak se frekuenca jonë është f = 31372Hz periudha për secilin puls është T = 1/31372 = 31.8 ne, kështu që numri i impulseve për një gjysmë cikli është N = 10ms/31.8us = 314 impulse. Tani për të llogaritur ciklin e punës për secilin impuls kemi y = sinx, por në këtë ekuacion na duhen shkallë kështu që gjysma e ciklit ka 180deg për 314 impulse. Për çdo impuls kemi 180/314 = 0.57deg/impuls. Kjo do të thotë se për çdo puls ne ecim përpara me 0.57deg.
y është cikli i punës dhe x vlera e pozicionit në gjysmën e ciklit të punës. në fillim x është 0, më pas që x = 0.57, x = 1.14 dhe kështu me radhë deri në x = 180.
nëse llogarisim të gjitha vlerat 314, marrim një grup elementësh 314 (lloji "int" për t'u llogaritur më lehtë nga arduino).
Një grup i tillë është:
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, 249, 249, 249, 249, 249, 248, 248, 248, 248, 248, 247, 247, 247, 246, 246, 245, 245, 244, 244, 243, 243, 242, 242, 241, 240, 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};
Ju mund të shihni se si një valë sinus, cikli i punës është më i ulëti në elementin e parë dhe të fundit dhe më i lartë në mes.
Hapi 2: Programi Arduino për Ciklin e Detyrës së Ndryshueshme
Në imazhin e mësipërm kemi sinjale të cikleve të detyrave të ndryshueshme me vlera nga vargu.
Por si të bëni një sinjal të tillë?
pjesa e programit më poshtë përdorni ndërprerjet për të ndryshuar vlerat e cikleve të punës
sei (); // aktivizoni ndërprerjet
}
ISR (TIMER1_COMPA_vect) {// ndërpritet kur kohëmatësi 1 përputhet me vlerën OCR1A
nëse (i> 313 && OK == 0) {// vlera përfundimtare nga vektori për pin 6
i = 0; // shko te vlera e parë e vektorit (grup)
OK = 1; // aktivizoni pin 5
}
x = sinPWM ; // x merr vlerën nga vektori që korrespondon me pozicionin i (i është zero i indeksuar) -vlera e ciklit të punës
i = i+1; // shkoni në pozicionin tjetër
}
Hapi 3: Alternimi në kunjat Arduino 50Hz
Sepse çdo kunj gjeneron vetëm një cikël gjysmë pune për të bërë një valë sinus të plotë, ne përdorim dy kunja të cilët alternohen njëra pas tjetrës pas 10 sekondave të sakta (për 50Hz). Ky ndryshim i kunjave bëhet në fund të grupit- pasi le të themi se pin 5 ka gjeneruar 314 impulse, ky pin fiket dhe aktivizon pin 6, i cili bën të njëjtën gjë, por për ciklin e detyrës negative.
Meqenëse arduino mund të gjenerojë vetëm sinjale pozitive, cikli negativ i punës bëhet në urë- mund të lexoni këtu për të
Programi për ndryshimin e kunjave:
sei (); // aktivizoni ndërprerjet
}
ISR (TIMER1_COMPA_vect) {// ndërpritet kur kohëmatësi 1 përputhet me vlerën OCR1A
nëse (i> 313 && OK == 0) {// vlera përfundimtare nga vektori për pin 6
i = 0; // shkoni në vlerën e parë të vektorit
OK = 1; // aktivizoni pin 5
}
nëse (i> 313 && OK == 1) {// vlera përfundimtare nga vektori për pin 5
i = 0; // shkoni në vlerën e parë të vektorit
OK = 0; // aktivizoni pin 6
}
x = sinPWM ; // x merr vlerën nga vektori që korrespondon me pozicionin i (i është zero i indeksuar)
i = i+1; // shkoni në pozicionin tjetër
nëse (OK == 0) {
OCR0B = 0; // bëni pin 5 0
OCR0A = x; // aktivizoni pin 6 në ciklin përkatës të punës
nëse (OK == 1) {
OCR0A = 0; // bëni pin 6 0
OCR0B = x; // aktivizoni pin 5 në ciklin përkatës të punës
}
}
Hapi 4: Drejtimi i Urës H dhe Filtrimi i Sinjalit Pwm
Sinjalet e marra nga arduino janë pjesa e kontrollit për aplikimet e inverterit sepse të dyja janë pozitive. Për të bërë një valë sinus të plotë dhe një inverter praktik ne duhet të përdorim një urë h dhe për të pastruar pwm një filtër me kalim të ulët.
Ura H është paraqitur këtu.
Filtri me kalim të ulët i testuar me motorë të vegjël Ac-këtu.
Recommended:
Sensori i temperaturës për Arduino i aplikuar për COVID 19: 12 hapa (me fotografi)
Sensori i temperaturës për Arduino i aplikuar për COVID 19: Sensori i temperaturës për Arduino është një element themelor kur duam të matim temperaturën e një procesori të trupit të njeriut. Sensori i temperaturës me Arduino duhet të jetë në kontakt ose afër për të marrë dhe matur nivelin e nxehtësisë. Kështu është
HacKIT: një Kompjuteri Civile për Privatësi të Vështirë (për Veshje) për Hacking Alexa, Google dhe Siri: 4 hapa
HACKIT: një Kit Privacy Private Hard (vesh) për Hacking Alexa, Google dhe Siri: Të lodhur nga " i zgjuar " pajisjet ju përgjojnë? Atëherë ky grup mjetesh për vëzhgim-hakim është për ju! HacKIT është një çantë e ulët (e veshur) e privatësisë qytetare e teknologjisë së ulët për të ridizajnuar, hakuar dhe rimarrë Amazon Echo, Google Home,
Mur për mur për IPad si Paneli i Kontrollit të Automatizimit në shtëpi, duke përdorur magnet të kontrolluar me servo për të aktivizuar ekranin: 4 hapa (me fotografi)
Muri i Murit për IPad Si Paneli i Kontrollit të Automatizimit të Shtëpisë, Duke përdorur Magnetin e kontrolluar me Servo për të Aktivizuar Ekranin: Kohët e fundit kam kaluar mjaft kohë duke automatizuar gjërat brenda dhe rreth shtëpisë sime. Unë jam duke përdorur Domoticz si aplikacionin tim për Automatizimin e Shtëpisë, shihni www.domoticz.com për detaje. Në kërkimin tim për një aplikacion pulti që tregon të gjithë informacionin e Domoticz të ndryshojë
DIY MusiLED, LED të sinkronizuara me muzikë me aplikacionin Windows & Linux me një klik (32-bit & 64-bit). Lehtë për t’u rikrijuar, e lehtë për t’u përdorur, e lehtë për t’u portuar .: 3 hapa
DIY MusiLED, LED të sinkronizuara me muzikë me aplikacionin Windows & Linux me një klik (32-bit & 64-bit). Lehtë për t'u rikrijuar, e lehtë për t'u përdorur, e lehtë për t'u transferuar.: Ky projekt do t'ju ndihmojë të lidhni 18 LED (6 të kuqe + 6 blu + 6 të verdhë) në bordin tuaj Arduino dhe të analizoni sinjalet e Kartës së Zërit të kompjuterit tuaj në kohë reale dhe t'i transmetoni ato në LED për t'i ndezur ato sipas efekteve të rrahjes (Snare, High Hat, Kick)
Qëndrim për laptopë me 3 hapa dhe 3 hapa (me syze leximi dhe tabaka me stilolaps): 5 hapa
Qëndrim për laptopë me hapa 3 & 3 hapa (me syze leximi dhe tabaka për stilolapsa): Kjo $ 3 & Qëndrimi i laptopit me 3 hapa mund të bëhet brenda 5 minutave. It'sshtë shumë e fortë, me peshë të lehtë dhe mund të paloset për ta marrë kudo që të shkoni