Search the Community
Showing results for tags 'PWM'.
-
Добрый день! Интересует такой вопрос. Как узнать какая мощность рассеивается на мосфете в ШИМ регуляторе. Допустим, мосфет irfz44n, сопротивление открытого перехода 0.032Ом, при токе в 10А мощность составит всего около 3Вт. То есть, выставляем скважность в 100% и мосфет почти не греется. Но когда ставим 50%, начинает греться. Собственно от чего? Он же либо закрыт либо открыт. Или в те короткие моменты открытия/закрытия, когда его сопротивление динамическое? Если так, то получается чем больше частота регулятора, тем пагубней это для мосфета. Помогите разобраться Всем спасибо
-
Приветствую дорогое сообщество, прошу помощи в реализации проекта- дрифт трайка для детворы, а именно в создании контроллера для мотор-колеса управляемого с ардуино. Сам трайк я построил еще летом, и тогда использовал дешевый китайский контроллер для запуска двигателя, вот пробный заезд как видно из видео, мне необходимо отталкиваться чтобы стартануть, это происходит из за отсутствия датчиков холла, и мой вес ему трудно сдернуть с места чтобы потом понимать куда крутиться колесо и уже его дальше крутить. С того времени было решено построить свой контроллер для управления, а также был сделан апгрейд колеса и встроены датчики холла. Так как времени было всегда в обрез, занимался мало этим делом, но вот, праздники и можно малость поработать. Для начала подключил датчики холла к ардуине, убедился что прилетают все данные и написал простую программу по вращению колеса. Данная программа работает без проблем с моторчиком от сдрома - проверенно, прилагаю... //throttle const int analogInPin1 = 22; //hall input int hall_sensor_a = 7; int hall_sensor_b = 2; int hall_sensor_c = 4; //Motor setup const int a_motor_lout = 3; const int a_motor_pwm_hout = 9; const int b_motor_lout = 6; const int b_motor_pwm_hout = 11; const int c_motor_lout = 10; const int c_motor_pwm_hout = 5; void setup(){ // Serial.begin(9600); pinMode(a_motor_lout, OUTPUT); pinMode(a_motor_pwm_hout, OUTPUT); pinMode(b_motor_lout, OUTPUT); pinMode(b_motor_pwm_hout, OUTPUT); pinMode(c_motor_lout, OUTPUT); pinMode(c_motor_pwm_hout, OUTPUT); pinMode(hall_sensor_a, INPUT); pinMode(hall_sensor_b, INPUT); pinMode(hall_sensor_c, INPUT); } void loop(){ /* int A; A = 11111; Serial.println(digitalRead(7)); Serial.println(digitalRead(2)); Serial.println(digitalRead(4)); Serial.println(A); */ while(1){ int val = analogRead(analogInPin1); val = constrain(val, 211, 830); int thLevel = map(val, 211, 830, 50, 0); if ( thLevel <= 45){ // int thLevel = 0; delay(thLevel); if (digitalRead(hall_sensor_a)==1 && digitalRead(hall_sensor_b)==0 && digitalRead(hall_sensor_c)==1){ digitalWrite(a_motor_pwm_hout,1);digitalWrite(a_motor_lout,0);digitalWrite(c_motor_lout,0); digitalWrite(b_motor_pwm_hout,0);digitalWrite(b_motor_lout,1);digitalWrite(c_motor_pwm_hout,0); delay(thLevel);} else { if (digitalRead(hall_sensor_a)==0 && digitalRead(hall_sensor_b)==0 && digitalRead(hall_sensor_c)==1){ digitalWrite(a_motor_lout,0);digitalWrite(c_motor_pwm_hout,0);digitalWrite(c_motor_lout,1); digitalWrite(b_motor_pwm_hout,0);digitalWrite(b_motor_lout,0);digitalWrite(a_motor_pwm_hout,1); delay(thLevel);} else { if (digitalRead(hall_sensor_a)==0 && digitalRead(hall_sensor_b)==1 && digitalRead(hall_sensor_c)==1){ digitalWrite(c_motor_pwm_hout,0);digitalWrite(b_motor_lout,0);digitalWrite(a_motor_lout,0); digitalWrite(b_motor_pwm_hout,1);digitalWrite(a_motor_pwm_hout,0);digitalWrite(c_motor_lout,1); delay(thLevel);} else { if (digitalRead(hall_sensor_a)==0 && digitalRead(hall_sensor_b)==1 && digitalRead(hall_sensor_c)==0){ digitalWrite(a_motor_pwm_hout,0);digitalWrite(c_motor_pwm_hout,0);digitalWrite(a_motor_lout,1); digitalWrite(b_motor_lout,0);digitalWrite(c_motor_lout,0);digitalWrite(b_motor_pwm_hout,1); delay(thLevel);} else { if (digitalRead(hall_sensor_a)==1 && digitalRead(hall_sensor_b)==1 && digitalRead(hall_sensor_c)==0){ digitalWrite(a_motor_pwm_hout,0);digitalWrite(c_motor_pwm_hout,1);digitalWrite(c_motor_lout,0); digitalWrite(b_motor_lout,0);digitalWrite(a_motor_lout,1);digitalWrite(b_motor_pwm_hout,0); delay(thLevel);} else { if (digitalRead(hall_sensor_a)==1 && digitalRead(hall_sensor_b)==0 && digitalRead(hall_sensor_c)==0){ digitalWrite(a_motor_pwm_hout,0);digitalWrite(c_motor_lout,0);digitalWrite(b_motor_pwm_hout,0); digitalWrite(b_motor_lout,1);digitalWrite(a_motor_lout,0);digitalWrite(c_motor_pwm_hout,1); delay(thLevel);} }}}}} } else{ digitalWrite(a_motor_pwm_hout,0);digitalWrite(c_motor_lout,0);digitalWrite(b_motor_pwm_hout,0); digitalWrite(b_motor_lout,0);digitalWrite(a_motor_lout,0);digitalWrite(c_motor_pwm_hout,0); }}} далее имеются в руках только N-channel мосфеты STP75NF75 которые решил завести с помощью драйвера HIP4086 нарисовал схему, вытравил плату, так как не очень удобно было к его ногам прицепиться(хотя пытался), пытаюсь запустить, а он не подает жизни :(. На двух выходах драйвера к мосфетам всегда высокий уровень(+12), и что бы я не подавал на входы, все молчит. Ранее когда пытался завести похожее но на базе транзисторов, то хоть мотор ногами дергал, но не крутился, а сейчас вообще тишина. Ни мосфеты, ни другие элементы на плате не греются. Не могу ума приложить что не так тут и как проверить еще... Буду признателен за любые комментарии.
- 51 replies
-
Нейтрализатор ключевого режима работы ШИМ-контроллеров ИИП
Falconist posted a blog entry in Falconist. Мемуары
Одним из существенных недостатков обратноходовых AC/DC, а также DC/DC преобразователей (в качестве примера - UCx84x, MC34063 и т.п.), является ключевой режим их работы, когда по достижению выходным напряжением номинального значения, работа ШИМ-контроллера блокируется и цепь обратной связи ожидает его падения до некоторого "нижнего" уровня, после которого следует следующий запуск контроллера ("старт/стопный" режим). В итоге выходное напряжение становится пульсирующим, с амплитудой пульсаций порядка 50...100 мВ. При попытке питания таким напряжением аудиоустройств отчетливо слышится "жужжание" с частотой этих пульсаций. Реализованный в ШИМ-контроллерах последних разработок (AP3105 FAN6602 SG6741 FAN6755 SG6841 SP6850 FAN6753 SG6858 FAN6862 и т.д.) режим "Green Mode" (переход в "спящий" режим при снижении тока, потребляемого нагрузкой, ниже установленного значения), также не способствуют нормальной работе нагрузок с быстропеременным потреблением тока (те же аудиоустройства, электромоторы, ШИМ-регуляторы и т.п.). Для компенсации подобных режимов, обычно рекомендуется применять "костыль" в виде нагрузочного резистора по выходу, через который протекает ток, достаточный для исключения перехода ШИМ-контроллера в ключевой режим (стабилизация выходного напряжения осуществляется непрерывно путем изменения длительности импульсов прямого хода). Решение, конечно, простое, но не лишенное таких недостатков, как существенный нагрев этого резистора, а также недоиспользование полезной мощности преобразователя из-за "отсоса" им части выходного тока. Исходя из этих предпосылок, представляется целесообразным подгружать выход преобразователя "поглотителем тока", достаточным для поддержания непрерывного режима стабилизации выходного напряжения и отключаемым при достижении тока, потребляемого нагрузкой, какого-то определенного значения. Поскольку не требуется поддержания жестких режимов, схема получилась достаточно простой: Собственно нагрузочный источник тока выполнен на VT1VT2R1. Резистор R2 служит для обеспечения его работы при запертом транзисторе VT3, пока ток, принимаемый нагрузкой, создает на резисторе R3 падение напряжения, не превышающее 0,68 В. По достижению этого порога транзистор VT3 отпирается и шунтирует транзистор V2, прекращая тем самым работу источника тока. Весь выходной ток поступает в нагрузку, никуда не ответвляясь. Цепь обратной связи стабилизации выходного напряжения (U1ZD1R4) показана условно. Схема отсимулирована в симуляторе Мультисим V.14.0 (файл симуляции для желающих "поиграться" приаттачен). Апробация её "в железе" отложена до начала реализации проекта мощного ИИП для питания моторчиков. Конечно же, данная схема не лишена недостатков, главным из которых видится довольно значительное падение напряжения на токовом шунте R3. Другие недостатки выявятся при тестировании. Компенсатор ключевого режима.ms14- 4 comments
-
2
-
- ШИМ-контроллер
- PWM
-
(and 5 more)
Tagged with:
-
Нужна помощь гуру по sg3525 имеется китайский модуль, при запуске преобразователя(12-220)начинают нагреваться ключи при совсем небольшой нагрузке(75 вт лампочка, трансформатор ~300вт)без нагрузки меандр приблизительно "нормальный" - на лично мой взгляд неопытного осцилографера Но самое интересное начинается когда реализовал обратную связь на оптроне 817-ом и на осцилограмме вылазит какой-то мини меандр при уменьшении скважности и сопровождается сильным нагревом ключей(irf3205)
-
Недавно я использовал Arduino для программирования stm32, и мне нужно использовать ШИМ-выход, но кажется, что частота фиксирована на 550 Гц. Я хотел бы знать, как изменить частоту ШИМ простым и легким способом. Например, я могу использовать analogWriteFreq(3000) для изменения частоты ШИМ на 3 КГц на ESP8266, но эта функция не работает на stm32. есть ли аналогичный метод для stm32?