Разбиране на дизайна на веригата
Ако не искате да четете цялото обяснение, вместо това можете да гледате това видео:

Сега нека да видим диаграмата на веригата по -долу и да научим как всъщност работи това нещо. Виждаме следните основни части във веригата:

Arduino Board - Това е нашият мозък. Той издава импулси на SPWM, които решават как ще работи нашата верига.
IR2110 MOSFET драйвер за ICS (IC1 и IC2) -Тези устройства вземат стандартните SPWM сигнали от Arduino и ги правят съвместими, за да превключват правилно 4 N-канала H-Bridge Mosfets, използвайки метода за зареждане.
MOSFETS (Q1, Q2, Q3, Q4) - Това са превключвателите на захранването. Те включват и изключват DC захранването по специфичен начин за създаване на променлив ток на изхода.
Диоди (1N4007) и кондензатори - Те са за активиране на правилната работа на мрежата за зареждане на ICS за перфектно превключване на 4 mosfets.
Други кондензатори и резистори - Те са малки, но много важни, защото поддържат всичко да работи гладко.
Захранване - Нуждаем се от +12V и +5V за Arduino и IR2110 ICS и високо DC напрежение за MOSFET, според спецификациите на натоварването.
Какво се случва във веригата?
Сега нека да видим как работи това стъпка по стъпка:
Arduino генерира SPWM сигнали на два изходни пина (щифт 8 и щифт 9). Тези сигнали продължават да променят ширината, за да създадат форма, еквивалентна на променлива синусова вълна.
IR2110 ICS приема тези PWM сигнали и ги използва, за да включва и изключва MOSFET по много специфичен начин.
H-Bridge, направен с помощта на четири MOSFET, преобразува захранването на DC шината в AC-подобен изход, като превключва посоката на тока през натоварването с помощта на SPWM превключването.
При изхода получаваме приближение на синусоида, което означава, че изглежда като синусоидна вълна, но всъщност е направена от бързо превключване на импулси.
Ако добавим филтърна верига на изхода, тогава можем да изгладим тези импулси и да получим по -перфектна синусоидна вълна.
Нашият Arduino Code for Sine Wave PWM
Така че сега нека да видим кода. Това ще стартира Arduino, за да генерира SPWM сигналите.
835EA9484999CA2B1A94FC3D1BB3E885B51FF2262Какво се случва в този код?
Първо настроихме два изходни пина (щифт 8 и щифт 9). Те ще изпратят нашите PWM сигнали.
След това в цикъла включваме и изключваме щифта със специален модел.
Започваме с тесни импулси и постепенно увеличаваме ширината на импулса и след това го намаляваме обратно надолу. Това създава стъпаловидна PWM модел на синусоида.
След като се извърши цикълът от първото полувреме, тогава повтаряме същото на другия щифт (щифт 9) за следващия цикъл.
По този начин нашият H-мост превключва MOSFETs в подходяща синусоидална вълна като мода.
Какво е добро в този дизайн
Дизайнът всъщност е много прост. Използваме само Arduino и някои общи компоненти.
Тук не се нуждаем от генератор на синусоида, вдясно. Самият Arduino прави синусовата форма, използвайки SPWM.
H-Bridge работи ефективно, използвайки IR2110 ICS, за да се увери, че MOSFETS се превключва правилно, без да се прегрява.
Можем лесно да настроим SPWM, в случай че искаме различна честота на синус вълна, след това просто променяме кода малко.
Как трябва да се справим с забавянето на зареждане на Arduino
Сега едно много важно нещо, което трябва да разберем, е, че Ардуино отнема известно време, за да започне, след като включим силата.
Това се случва, защото когато захранваме Arduino, той първо управлява вътрешния си зареждащ механизъм, който отнема няколко секунди.
Така през това време драйверът на IR2110 Gate ICS и MOSFET не може да получава никакви подходящи сигнали от Arduino.
Ако това се случи, тогава MOSFET могат да се включат на случаен принцип, което може да повреди ICS незабавно или да причини късо съединение или експлозия.
За да сме сигурни, че горното зареждане на зареждане не изгаря ИС и MOSFET по време на първоначалната захранване, трябва да модифицираме горния код, както е показано по -долу:
// By Swagatam - Full Bridge Sine Wave Inverter Code with Delay
void setup() {
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
delay(3000); // Booting delay (wait for 3 seconds before starting)
}
void loop() {
// First pin (8) switching pattern
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(2000);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(1250);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(750);
digitalWrite(8, LOW);
delayMicroseconds(500);
digitalWrite(8, HIGH);
delayMicroseconds(500);
digitalWrite(8, LOW);
// Second pin (9) switching pattern
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(2000);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(1250);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(750);
digitalWrite(9, LOW);
delayMicroseconds(500);
digitalWrite(9, HIGH);
delayMicroseconds(500);
digitalWrite(9, LOW);
}
Списък на части
| Arduino Board | Arduino uno (или всяка съвместима дъска) | 1 |
| MOSFET драйвер IC | IR2110 High & Low Side Driver | 2 |
| Mosfets | IRF3205 (или подобен n-канал) | 4 |
| Диоди | 1N4007 (за зареждане и защита) | 4 |
| Резистори | 1KΩ 1/4W (падане на Mosfet Gate) | 4 |
| Резистори | 150Ω 1/4W (резистор на серията MOSFET GATE) | 4 |
| Кондензатори | 100nf (кондензатор за Bootstrap) | 2 |
| Кондензатори | 22UF 25V (филтър за захранване) | 2 |
| Зареждане | Всяко резистивно или индуктивно натоварване | 1 |
| Захранване | +12V DC (за MOSFET) и +5V DC (за Arduino) | 1 |
| Проводници и конектори | Подходящ за връзки на веригата | Според нуждите |
Съвети за строителство
Сега, когато всъщност изграждаме това нещо, трябва да бъдем много внимателни за няколко важни неща. В противен случай може да не работи или по -лошо, нещо може да изгори нали? Ето няколко супер важни съвета за строителство, които трябва да следваме:
Как трябва да подредим частите на дъската
Ако използваме дъска, тогава тази схема може да не работи добре, тъй като MOSFET и драйвери с висока мощност се нуждаят от силни, солидни връзки.
Затова трябва да използваме PCB (печатна платка) или поне PERF платка и да споделим правилно частите.
Ако направим PCB, тогава трябва да държим MOSFET и IR2110 ICS близо един до друг, така че сигналите да не станат слаби или забавени.
Дебелите проводници трябва да преминават за високи токови пътеки, като от захранването до MOSFET и от MOSFET до товара.
Тънките проводници могат да се използват само за сигнални връзки като от Arduino до IR2110 ICS.
Как трябва да поставим MOSFETS
Четирите MOSFET трябва да бъдат поставени в подходяща форма на H-мост, така че окабеляването да не се разхвърля.
Всеки MOSFET трябва да има къси и дебели връзки към IR2110 IC.
Ако поставим MOSFET твърде далеч от IR2110, сигналите могат да станат слаби и MOSFET може да не се превключват правилно.
Ако това се случи, тогава MOSFET могат да се нагреят и дори да изгорят.
Как трябва да отстраним проблема с топлината
Ако използваме IRF3205 MOSFET или подобни, тогава те ще се загреят, ако не им дадем радиатор.
Така че трябва да поправим голям алуминиев радиатор на MOSFET, за да ги запазим.
Ако правим инвертор с висока мощност (повече от 100W), тогава също трябва да прикрепим охлаждащ вентилатор на радиатора.
Ако Mosfets станат прекалено горещи за докосване, това означава, че има някакъв проблем и трябва да проверим отново веригата.
Как трябва да захранваме веригата
Частта Arduino работи на 5V, а MOSFET се нуждаят от 12V или повече, за да работят.
Така че ние никога не трябва да свързваме 12V с Arduino, или той ще изгори незабавно!
IR2110 ICS се нуждаят от две захранвания:
12V за MOSFET с висока страна
5V за секцията Логика
Ако смесим тези електропроводи, веригата няма да работи правилно и MOSFET няма да се превключват правилно.
Как трябва да свържем проводниците
Връзката на земята (GND) е супер важна. Ако заземяването е слабо или дълго, тогава веригата може да се държи странно.
Трябва да използваме общо основание за всички части, което означава, че земята Arduino, IR2110 и MOSFET източник на земята трябва да бъдат свързани.
Ако видим веригата да се държи странно (като изходната трептене или MOSFET се затоплят без товар), тогава първо трябва да проверим заземяващите връзки.
Как трябва да проверим веригата, преди да я захранваме
Преди да включим захранването, трябва да проверим двукратно всички връзки, за да видим дали всичко е правилно.
Ако имаме мултицет, тогава трябва да го използваме, за да проверим напреженията в различни точки, преди да поставим MOSFET.
Ще се нуждаем строго на осцилоскоп, за да можем да проверим SPWM сигналите, идващи от Arduino, за да видим дали те изглеждат правилно.
Как трябва да тестваме внимателно веригата
Най -добрият начин за безопасно тестване на тази схема е като започнете с ниско напрежение.
Вместо 12V първо можем да опитаме с 6V или 9V, за да видим дали MOSFET се превключват правилно.
Ако веригата работи добре при ниско напрежение, тогава можем бавно да се увеличим до 12V и накрая до цялото напрежение.
Ако изведнъж нанесем пълно напрежение и нещо не е наред, тогава нещо може да изгори незабавно!
Така че трябва да тестваме стъпка по стъпка и да продължим да проверяваме за прегряване или грешно поведение.
Как можем да добавим филтър за по -плавен изход
Тази верига прави променлив ток, използващ PWM, но все още е изработен от бързи импулси.
Ако искаме чиста синусова вълна, тогава трябва да добавим LC филтър на изхода.
Този LC филтър е просто голям индуктор и кондензатор, свързан с изхода.
Индукторът премахва бързо превключващите импулси и кондензаторът изглажда формата на вълната.
Ако направим това правилно, тогава можем да получим чиста синусова вълна, която е безопасна за уреди.
Как трябва да предпазим веригата от повреда
Винаги трябва да добавяме предпазител последователно с захранването.
Ако нещо къси панталони или MOSFET се провали, тогава предпазителят ще се счупи и ще запази веригата от изгаряне.
Ако MOSFET се провалят, тогава понякога те се провалят (което означава, че винаги остават).
Ако това се случи, тогава огромен ток може да тече и повреди трансформатора или други части.
Така че винаги е добре да проверите MOSFET, като използвате мултицет, преди да приложите висока мощност.
Заключение
И така, тук видяхме как можем да направим инвертор на синусоида, използвайки Just Arduino и H-Bridge MOSFET верига. Използвахме драйвери на IR2110 MOSFET, за да превключим правилно MOSFET и PWM контрола от Arduino, за да генерираме нашия синусо-модулиран променлив ток.
Сега едно нещо, което трябва да запомните, е, че този изход все още е направен от бързо превключване на импулси, така че ако се нуждаем от чиста синусоидна вълна, тогава трябва да добавим LC филтър на изхода, за да го изгладим.
Но като цяло това е много практичен и лесен начин да направите инвертор на синусоида у дома!