Jump to content

Search the Community

Showing results for tags 'шим'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Вопрос-Ответ. Для начинающих
    • Песочница (Q&A)
    • Дайте схему!
    • Школьникам и студентам
    • Начинающим
    • Паяльник TV
    • Обсуждение материалов с сайта
  • Радиоэлектроника для профессионалов
    • Световые эффекты и LED
    • Роботы и модели на ДУ-управлении
    • Автоматика
    • Самодельные устройства к компьютеру
    • Программное обеспечение
    • Автомобильная электроника
    • Системы охраны и наблюдения. Личная безопасность
    • Питание
    • Электрика
    • Промышленная электроника
    • Ремонт
    • Металлоискатели
    • Измерительная техника
    • Мастерская радиолюбителя
    • Сотовая связь
    • Спутниковое ТВ
    • КВ и УКВ радиосвязь
    • Жучки
    • Телефония и фрикинг
    • Высокое напряжение
    • Идеи и технологии будущего
    • Справочная радиоэлементов
    • Литература
    • Разное
  • Аудио
    • FAQ, Технологии и компоненты
    • Для начинающих
    • Источники звука
    • Предусилители, темброблоки, фильтры
    • Питание аудио аппаратуры
    • Усилители мощности
    • Акустические системы
    • Авто-аудио
    • Ламповая техника
    • Гитарное оборудование
    • Прочее
  • Микроконтроллеры
  • Товары и услуги
  • Разное
  • Переделки's ATX->ЛБП
  • Переделки's разные темы
  • Киловольты юмора's Юмор в youtube

Blogs

There are no results to display.

There are no results to display.

Marker Groups

  • Пользователи форума

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


ICQ


Skype


Интересы


Город


Сфера радиоэлектроники


Оборудование

Found 121 results

  1. День добрый. Сразу обозначу, что я профан в электронике. Необходимо собрать стенд для промывки труб отопления, который состоит из насоса и компрессора. Компрессор нужен для создания кратковременных гидроударов. Воздух из ресивера должен подаваться в шланг с водой через электромагнитный клапан, который будет контролироваться Генератором импульсов. Все необходимые комплектующие у меня есть и все подключено, кроме самого клапана. При подлючении к ШИМ контроллеру клапан отказывается работать. Полярность соблюдена 100%, пробовал включить на разных частотах и процентовках, бесполезно. Та же светодиодная лента подключенная к ШИМ работает прекрасно, моргает. Питание ШИМ через блок питания для светодиодной ленты, на выходе 12v 8.3A Где то читал что необходимо подключать какие то конденсаторы или что то повышающее, но так и не понял, что и как. Существуют заводские варианты таких промывок, но все они стоят каких то бешеных денег, хотя принципиально исполтзуется такая схема. Буду премного благодарен если поможете.
  2. Здравствуйте, уважаемые форумчане! Вообще говоря, не имею такой привычки - донимать людей вопросами, и до всего стараюсь доходить самостоятельно. Но в данном случае без "помощи зала" совсем никак: перепробовал уже все, что только смог придумать - а "воз и ныне там! Поэтому и обращаюсь сюда - возможно, кто-то уже сталкивался с чем-то подобным, и сумел найти решение... Суть проблемы в следующем: решил построить ШИМ-контроллер для автомобильного вентилятора охлаждения ("карлсона"), но никак не могу заставить его работать - как только открываются VT2 и VT3, подключая нагрузку, МК уходит в резет или виснет (чаше - первое)!.. Сбросившись, опять пытается подключить нагрузку, и опять резетится, и так - без конца! Причем, изначально решил испытать схему не на индуктивной нагрузке (электромоторе), а на вполне себе пассивной 60Вт (около 3A по току) лампочке из фары - и та же фигня: МК пытается запуститься, сбрасывается, лампа моргает, дергается... Даже не ШИМ, а обычное мигание лампой с частотой 1Гц через несколько вспышек или вешает МК, или резетит его (что видно по сбою ритма моргания). При этом без нагрузки - по осциллографу, подключенному к ноге 5 МК или к нижнему (по схеме) выводу R7 - все отлично: наблюдается ровный и чистенький ШИМ-сигнал, изменяющийся согласно тестовой программе! Однако, стоит подать нагрузку, как осциллограмма начинает прыгать: появляются ШИМ-импульсы, затем ровная линия, затем снова импульсы с тем заполнением, которое должно быть в самом начале программы... Собственно, это наблюдение и позволило сделать вывод о том, что МК перезагружается. Естественно, первая мысль - слабый лабораторник (он у меня импульсный, самодельный, где-то на 3А - действительно слабый; но та же петрушка наблюдалась и при попытках питать устройство от трансформаторного ЗУ на 10А). Ну, пригнал машину, снял с нее аккум (100% свежий и не дающий просадок!), запитал от него - однако проблема повторилась... Значит, дело не в питании!.. Пробовал много различных танцев с бубном: отключал внешнюю цепочку сброса R2-C2 (результат - ноль), включал BOD микроконтроллера (стало еще хуже), подвешивал вместо C4 и C6 электролиты большей емкости (не помогло)... Думал, что, возможно, кондеи C4 и C6 разряжаются через R7 - экспериментировал с его сопротивлением (от 100 до 960 Ом), перекидывал его верхний вывод на анод VD1 (чтобы отсечь резистор от фильтрующих C4 и C6) - тщетно... Грешил даже на то, что какие-то проблемы вносит емкость затворов VT2 и VT3 - уменьшал сопротивление R10 и R12, дабы затвор быстрее "разряжался" - безрезультатно... Игрался с частотой МК и ШИМ - перебрал частоты ШИМ от 18 до 4687 Гц; пытался запускать нагрузку с разным заполнением ШИМ, от 10 до 40% - как глючило, так и глючит... Т.е., перелопатил, практически, всю схему! Удалось заставить устройство нормально работать на лампу, и даже на пару спаралеленных электродвигателей МЭ218 (от "печки") следующим образом: R8 был исключен (вместо него - перемычка), а C7 (изначально - К73-17В всего на 0,47мкФ) был заменен на пару электролитов по 1500мкФ, включенных плюс к плюсу последовательно (для устранения полярности кондеев). Нагрузка стала нормально подключаться, отрабатывать как на повышение, так и на убывание заполнения ШИМ. Двигатели отлично работали как при ступенчатом изменении ШИМ-заполнения, так и при плавном. Единственное, что при попытке подать на двигатели ШИМ с заполнением менее 20%, МК опять начинал дергаться и резетить, а так же резетил при резком отключении движков: если раскрутить их до 100%, а потом снять сигнал, то МК перезагружался; однако, если после 100% плавно понижать обороты где-то до 40%, и лишь потом снимать сигнал, то схема работала нормально. Плюс, очень сильно нагревались электролиты C7... Однако, когда принес схему в машину - для отладки непосредственно в "боевых условиях", и подключил мощный двигатель вентилятора, началась старая песня с резетами... Сейчас, вроде бы, "осенило" - поменял VD2 на Шоттки 1N5822 - лампочка запустилась на "ура" даже без С7; так же отлично и мягко стартовала спарка из МЭ218 - радостный побежал к машине... Но с "карлсоном" - опять мимо: МК вновь ушел в перезагрузку... Все: я не знаю, что тут делать - каждую деталь уже перелопатил, и кучу вариантов испробовал!!! Но ничего не понятно(( Вот и прошу помочь: может быть, кто-то уже был в такой ситуации, и как-то решил подобную проблему? VT2 и VT3 стоят "фирменные", IR-овские (не Китай) - из "Чип и Дипа". ATtiny13 - с Алиэкспресс; чтобы исключить возможность брака конкретной микросхемы, пробовал ставить в схему несколько разных экземпляров МК (из одной посылки). DS18B20 пока еще не подключал (нужно разобраться с ШИМ!). IRF3205 каскадированны для уменьшения нагрева (хотя его и так практически нет), и для дополнительной надежности (чтобы в случае выхода из строя одного транзистора не перегреть машину). Тестовую программу специально написал "китайским стилем", без циклов и т.п. - чтобы она была максимально простой, наглядной и линейной - для уверенности, что не в ней дело. Подскажите пожалуйста - откуда эти резеты, и как с ними бороться? Как заставить схему отрабатывать на мощную нагрузку? Заранее благодарю!!! ;*************ТЕСТОВАЯ ПРОГРАММА************* ;============ДИРЕКТИВЫ ТРАНСЛЯТОРУ=========== .device ATtiny13 .include "tn13def.inc" .list ;Обзывательство регистров .def Temp = R16 .cseg .org 0x00 ;=========ТАБЛИЦА ВЕКТОРОВ ПРЕРЫВАНИЙ======== rjmp Begin //Начальный сброс reti //Внешнее прерывание INT0 reti //Изменение состояния любой линии reti //Переполнение T0 reti //Готовность EEPROM reti //Срабатывание компаратора reti //Совпадение в канале A таймера T0 reti //Совпадение в канале B таймера T0 reti //Переполнение сторожевого таймера reti //Завершение преобразования в АЦП ;============МОДУЛЬ ИНИЦИАЛИЗАЦИИ============ Begin: ;-----Инициализация стека ldi Temp, RAMEND out SPL, Temp ;-----Отключение компаратора ldi Temp, 0x80 out ACSR, Temp ;-----Настройка портов ldi Temp, 0b00000111 out DDRB, Temp //PB0 - на вывод ;-----Настройка ШИМ ldi Temp, 0b11000001 out TCCR0A, Temp //Режим - быстрый ШИМ с инверсией ldi Temp, 0b00000010 out TCCR0B, Temp //Делим тактирование таймера на 8 rjmp Start //При старте пропускаем 5-секундную задержку ;===============ТЕСТОВЫЙ ЦИКЛ================ PWM: ldi Temp, 0b00000000 out OCR0A, Temp //ШИМ=0% rcall Delay5sec //Ждем 5 сек ;-----Повышаем скорость Start: ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 255 out OCR0A, Temp //ШИМ=100% rcall Delay2sec ;-----Понижаем скорость ldi Temp, 230 out OCR0A, Temp //ШИМ=90% rcall Delay2sec ldi Temp, 205 out OCR0A, Temp //ШИМ=80% rcall Delay2sec ldi Temp, 179 out OCR0A, Temp //ШИМ=70% rcall Delay2sec ldi Temp, 154 out OCR0A, Temp //ШИМ=60% rcall Delay2sec ldi Temp, 128 out OCR0A, Temp //ШИМ=50% rcall Delay2sec ldi Temp, 102 out OCR0A, Temp //ШИМ=40% rcall Delay2sec ldi Temp, 77 out OCR0A, Temp //ШИМ=30% rcall Delay2sec rjmp PWM //Возвращаемся, и начинаем с 5 сек "молчания" ;===========ПОДПРОГРАММЫ ЗАДЕРЖКИ============ ;-----Задержка в 2 секунды Delay2sec: ldi R17, 253 ldi R18, 75 ldi R19, 29 L1: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L1 nop ret ;-----Задержка в 5 секунд Delay5sec: ldi R17, 253 ldi R18, 61 ldi R19, 73 L2: subi R17, 1 sbci R18, 0 sbci R19, 0 brcc L2 nop ret
  3. Всем доброго дня, Начинаю изучать STM32. Запустил пример http://www.avislab.com/blog/stm32-timer-pwm/ в котором при нажатии двух кнопок увеличивается и уменьшается яркость на ножке PB6 все работает. Хотел переключить ШИМ на другую ножку в 28 строке поменял GPIO_Pin_6 на GPIO_Pin_7 переключил светодиод на PB7 код не работает. Подскажите что я не правильно делаю?
  4. Доброго дня всем. Помогите новичку пожалуйста. Занедорого достались фары от гибридного авто в которых светодиоды вместо галогеновых ламп. Достались без блоков-драйверов. Купить их не предлагайте ( дорого (. Очень хочу их правильно запитать, чтоб долго прослужили. Питать от бортовой сети авто 12 вольт (при заведенной машине 13,4-14,1 вольт). Вскрыв фару обнаружил что светодиоды (их 3 штуки) соединены последовательно. Имею в арсенале два блока питания регулируемых. Один до 12 (14 мах) вольт, второй до 36 (39 мах). Сначала подключил к 12 вольтовому - реакции 0. Потом к 36и вольтовому - тоже 0. Отцепил один светодиод и оставшиеся 2 последовательно зажглись примерно на 36 вольт (ток больше 0,8 ампера не давал) И включал их кратковременно чтоб не деградировали. Как светят - фото ниже прилагаю. Светодиод определить не могу - надписей на нем нету. Измерил падение напряжения на одном светодиоде - примерно 10,5 вольт. Включил его через резистор 620 ом (0,125 Вт) подавал напряжение и следил за током. Примерно с 14 вольт на светодиоде стало 10,4 вольта и крутил БП до 18-19 вольт - на светодиоде осталось 10,5 Вольт. Ток опять же больше 0,8 Ампера не давал (этот ток примерно на 19 вольтах через резистор). Читал на китайском сайте nichia храктеристики примерно таких светодиодов - там напряжение питания и 7,3 вольта и 9,8 ( мах 10,5 по таблице) и ток 1 ампер - а я про свои ничего не знаю. Может на моих тоже ток 1 ампер можно подать? Импульсным током? Или сколько надо? Как опредилить? Поставил маленький радиатор на светодиод временно чтоб контролировать нагрев - на 0,8 ампера уже достаточно теплым становится но это при постоянном токе от БП. Вопросы: 1 При импульсном токе светодиоды не так сильно греются? 2 Как определить светодиод? Может есть какие сайты? 3 Слышал что паралельно подключать светодиоды нельзя только последовательно? Чтоб равномерно ток распределился? 4 Если запитывать последовательно то нужно делать преобразователь напряжения? Китайский DC-DC не подойдет? 5 Хочу в каждой фаре запитать диоды отдельно импульсным током ( два последовательно - те что в линзах стоят и один отдельно - что в боковой подсветке) Если светодиод уже питается от 10,5 вольта - можно отдельно на каждый сделать шим драйвер или как лучше? 6 Есть в арсенале ардуино нано и обычная. Можно с нее пускать импульсы для открывания ключей (и какие лучше ставить). Например едешь на машине прямо - горят два светодиода в линзах, начинаешь поворачивать - включается третий светик - который в боковой подсветке (горят все три) 7 Если 5 и 6 возможно - какой частотой импульсов питать светодиоды? И какая скважность импульса должна быть хоть примерно? Хватит ли частоты ардуинки для этого? Или это лишнее и достаточно на NE555 сделать с ключем ШИМ? Голова уже кипит от моих "знаний" - подскажите кому не сложно? Отблагодарю $ на номер телефона закину. Заранее спасибо. С Уважением, Санечек )
  5. Здравствуйте, уважаемые пользователи сайта "ПАЯЛЬНИК". Мне очень необходима Ваша квалифицированная помощь в разработке устройства контроля параметров ветрогенераторной установки. В общем объеме устройство должно выполнять 5 основных функций: 1. Заряд аккумуляторных батарей 48В 200Ач. 2. Стабилизация оборотов ветроколеса. 3. Сброс излишка энергии на 4 или 6 нагревательных ТЭНОВ по 24В каждый, с поочерёдным их включением по мере увеличения излишка энергии. 4. Контроль напряжения сети с переключение в аварийный режим (работа на инвертор). 5. Вывод информации на LCD и организация меню пользователя. В качестве микроконтроллера буду использовать ATMega16. Для заряда АКБ и для работы на ТЭНы планирую использовать 2 канала. Каждый из каналов будет состоять из TL494 + драйвер + два MOSFETа в режиме полумоста с обратными связями по напряжению и току + LC-фильтр. Каналы будут управляться микроконтроллером двумя портами ШИМ через RC-фильтры. Для индикации планирую использовать символьный LCD 20x2. Логику работы устройства вижу так: С одной из фаз 3-х фазного ветрогенератора снимаем показания частоты, запоминаем. Проводим повторный замер и сравниваем с предыдущим. Если частота растёт добавляем нагрузку на колесо с помощью управления каналами АКБ и (или) ТЭНов. Если частота падает - уменьшаем нагрузку. Постоянно выполняем замер напряжения и тока по 2-м каналам и выводим значения на дисплей. Как только аккумулятор достигает заряженного состояния, переходим в режим работы с ТЭНами и включаем 1-й ТЭН при максимальной скважности, следим за оборотами, регулируем нагрузку и т.д. 2,3,4-й ТЭНы. Кто может что добавить или посоветовать? Интересует всё от начала и до конца: советы, схемные решения, помощь в расчёте выходного дросселя, оптимизация и т.д. Всё изготовленное мною будет иметь подробный фотоотчёт до самого конца, пока устройство не будет на 100% завершено. Все схемы и исходники будут доступны. По сути мы можем вместе создать устройство, необходимое очень многим людям. Заранее всем спасибо!!!
  6. Здравствуйте, подскажите пожалуйста какой импусный диод (D1) можно использовать в даной схеме, тобишь он должен быть расчитан на ток проходящий через катушку, а собственно как это узнать...буду благодарен за помощь). Если кто-то знает, подскажите, пожалуйста, какой мосфет(Q3) можно использовать. Еще интересует по каким критериям они подбираються и где это можно сделать(тобишь сайт на котором можно указать нужные параметры/или это как-то по другому подбирается?). На счет импульсов генерируемых Arduino Uno на микропроцесоре ATmega328P. Частота в даном примере(вообще она будет перед стартом задаваться в пределах 1-50Гц) 50Гц, период 0,02с, duty cycle 50%. Если нужна дополнительная информацыя, без проблем, в мерах своих возможностей, добавлю. За любую помощь зарание спасибо.
  7. Здравствуйте, если кто-то знает, подскажите, пожалуйста, какой мосфет(Q3) можно использовать. Еще интересует по каким критериям они подбираються и где это можно сделать(тобишь сайт на котором можно указать нужные параметры/или это как-то по другому подбирается?). На счет импульсов генерируемых Arduino Uno на микропроцесоре ATmega328P. Частота в даном примере(вообще она будет перед стартом задаваться в пределах 1-50Гц) 50Гц, период 0,02с, duty cycle 50%. Еще такой вопрос, подскажите, пожалуйста, нормальный ли характер графика D на осцилографе? Почему он именно такой, если не нормальный, то что исправить? Если нужна дополнительная информацыя, без проблем, в мерах своих возможностей, добавлю. За любую помощь зарание спасибо.
  8. Всем привет. Возникла необходимость получать очень большие токи (порядка тысяч ампер) при низких напряжениях (1-4) В. Существуют ли вообще способы как то обойти огромные потери на диодах (при таких токах на их 0.7 в будет куча тепла рассеиваться)? Думал в сторону синхронного выпрямления, но нужно слишком много мосфетов
  9. в крацце. я спалил (не факт что умерли. не знаю как проверить) 4 разных транзистора. причина этой писанины. я не смог запустить мосфеты. делал все по схеме. все резисторы. даже диод ставил ибо нагрузка это 2амперный двигатель. подавал шим через ардуино. с разными частотами. не работает НИЧЕГО. я уже купил модуль где точно все распаяно как надо. не работает. он открыт все время. на на всю силу открыт. поставил диод. все равно не управляется ардуиной. код простейший (воид сетап:пинмод(5 аутпут); аналогврайт(5, 255)). но. когда я попровал с другой частотой void setup() { // ШИМ 8 разрядов, 62,5 кГц TCCR1A = TCCR1A & 0xe0 | 1; TCCR1B = TCCR1B & 0xe0 | 0x09; pinMode(5, OUTPUT); analogWrite(5, 0; // на выводе 9 ШИМ=10% } void loop(){ } двигатель начал пищать. я надеюсь мосфет не пробило 5 ампер от аккумулятора когда я пытался грубо его включить. а еще я делал уже без резисторв но на крутом каком то мосфете. у которого порог открытия затвора больше ноля(вольт) ирлб какойто. смотрел видео алекса гавера (заметки ардуинщика) я реально не знаю что уже делать. руки опускаются, а модель самолета и сервопривод с аппаратурой ждут. доп фото скину по надобностью (не спрашивайте почему я такой глуп и не знаю как запустить элементарный мосфет. мне 15. если поможете, куплю шоколадку)
  10. Вопрос такой: Какая самая простая схема преобразования прямоугольного ШИМ напряжения с 50% заполнением вида: ` _ ` _ _| |_| |_ на пике 24В, на минимуме 0В, т.е. в среднем получается 12В. в 12В DC напряжение вида: ----------------------- Ну то есть ШИМ сигнал нужно преобразовать в обычный сигнал. Схема должна преобразовывать в зависимости от ШИМ, т.е. если ШИМ будет 33% заполнением, т.е. 0.33*24В(на пике)=8В в среднем, то схема должна давать 8В прямую линию (с минимальным разбросом напряжения). Если есть готовая микросхема, то можно ее название дать.
  11. Значит в чем суть, по всем параметрам сгорела микросхема, и она без маркировки, может кто то уже чинил подобный блок, и знает что там и чем заменить, буду благодарен. Я бы загрузил больше фото но больше 10 мб нельзя. Стрелками указал что заменил. Высоковольтный диод c3d100, 10ом резистор, конденсатор на 100пф 630в, рядом с этой микросхемой была перемычка, нулевой резистор и она имела Сопротивление в 102ом,после всего этого что заменил никаких результатов. Помогите кто знает
  12. Добрый день! Подскажите, пожалуйста, можно ли вынести переменный резистор 16K1-B10K, L20KC, 10 кОм с ШИМ регулятора на отдельную плату? Какие провода лучше использовать? На какое расстояние можно вынести (длина провода) и изменятся ли от этого характеристики? (все-таки, как я понимаю, появится дополнительное сопротивление от провода) ШИМ покупной в RDC2-0024 - фото и схема в аттаче DOC002726141.pdf
  13. Вынес то что не получается в упрощенной форме в отдельный проект. Среда разработки CooCox 1.7.8, микроконтроллер STM32F103C8T6. Нужно раз в ~100 мсек формировать на ножке МК, например,такую последовательность: Стартовую длительность формирует таймер, в первом же своем прерывании по совпадению активирует DMA и дальше уже DMA по запросу таймера загружает значение CCR из массива. Что то похожее на управление светодиодами WS2812B. То что я сочинил выдает на пин: Но только один раз при первом вызове. При последующих вызовах данные из массива выдаются без первоначальной длительности в 150 мкс. Не могу найти ошибку. #include <stm32f10x.h> #include <stm32f10x_conf.h> #include <stm32f10x_gpio.h> #include <stm32f10x_rcc.h> #include <stm32f10x_tim.h> #include <stm32f10x_dma.h> GPIO_InitTypeDef PIN; TIM_TimeBaseInitTypeDef TIM_Config; TIM_OCInitTypeDef TIM_OCConfig; DMA_InitTypeDef DMA_Setting; uint8_t Test_Buf[] = {15,30,30,30,15}; void delay_ms(uint32_t ms) { volatile uint32_t nCount; RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq (&RCC_Clocks); nCount = (RCC_Clocks.HCLK_Frequency/10000)*ms; for (; nCount != 0; nCount--); } void Init_GPIO(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE); PIN.GPIO_Pin = GPIO_Pin_11; // PA11 -> TIM1 Channel4 PIN.GPIO_Mode = GPIO_Mode_AF_PP; PIN.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &PIN); } void Init_TIM_Transmit(void) { RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE); TIM_TimeBaseStructInit(&TIM_Config); // настройки по дефолту TIM_Config.TIM_Prescaler = 72-1; // Запускаем таймер на тактовой частоте 1 MHz (72000000/(72-1)) TIM_Config.TIM_Period = 150-1; // Период - 150 мкс TIM_Config.TIM_ClockDivision = 0; // частоту дополнительно не делим TIM_Config.TIM_CounterMode = TIM_CounterMode_Up; // считаем вверх TIM_TimeBaseInit(TIM1, &TIM_Config); // Инициализируем TIM1 TIM_OCStructInit(&TIM_OCConfig); // настройки по дефолту TIM_OCConfig.TIM_OCMode = TIM_OCMode_PWM1; // Конфигурируем как ШИМ (выравнивание по границе) TIM_OCConfig.TIM_OutputState = TIM_OutputState_Enable; // Включаем выход TIM_OCConfig.TIM_Pulse = 0; // CCR до старта пока нулевой TIM_OCConfig.TIM_OCPolarity = TIM_OCPolarity_High; // Полярность TIM_OCConfig.TIM_OCIdleState = TIM_OCIdleState_Reset; // состояние выхода по совпадению CCR (сброс) TIM_OC4Init(TIM1, &TIM_OCConfig); // Инициализируем 4-й выход таймера, это PA11 TIM_ARRPreloadConfig(TIM1,ENABLE); // Предзагрузка периода (ARR) TIM_OC4PreloadConfig(TIM1, TIM_OCPreload_Enable); // Предзагрузка длины импульса CCR 4-го канала // (даем досчитать до конца и только потом значение меняется на новое) TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // выключаем пока запрос к DMA от таймера TIM1 по достижении CCR) TIM_CtrlPWMOutputs(TIM1, ENABLE); // включаем выходы (это только для TIM1) TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); // разрешаем таймеру управлять выводом PA11 TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // запрещаем пока таймеру генерировать прерывание по совпадению NVIC_EnableIRQ(TIM1_CC_IRQn); // разрешаем прерывания TIM_Cmd(TIM1, DISABLE); // Выключаем таймер (пока ждем) } void TIM1_CC_IRQHandler(void) // прошло 130 мкс { if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 по совпадению } NVIC_EnableIRQ(TIM1_CC_IRQn); // выключаем прерывания от таймера TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM1->ARR = 40-1; // устанавливаем период 40 мкс TIM1->CCR4 = Test_Buf[0]; // ширину из массива для следующего импульса DMA1_Channel4->CNDTR = 4; // длина данных для DMA на 1 меньше т.к. уже установили выше 1 элемент TIM_DMACmd(TIM1,TIM_DMA_CC4,ENABLE); // разрешаем таймеру делать запрос к DMA по совпадению CCR DMA_Cmd(DMA1_Channel4, ENABLE); // включаем DMA } void Init_DMA(void) { RCC_AHBPeriphClockCmd(RCC_AHBPeriph_DMA1, ENABLE); // включаем тактирование DMA1 DMA_Setting.DMA_PeripheralBaseAddr = (uint32_t) &TIM1->CCR4; // куда копировать DMA_Setting.DMA_MemoryBaseAddr = (uint32_t) &Test_Buf[1]; // что копировать DMA_Setting.DMA_DIR = DMA_DIR_PeripheralDST; // копируем в периферию (Peripheral Destination, точка назначения - периферия) DMA_Setting.DMA_BufferSize = 0; // количество передаваемых данных DMA_Setting.DMA_PeripheralInc = DMA_PeripheralInc_Disable; // адрес периферии постоянный DMA_Setting.DMA_MemoryInc = DMA_MemoryInc_Enable; // адрес в памяти увеличиваем DMA_Setting.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord; // периферия 16 бит DMA_Setting.DMA_MemoryDataSize = DMA_MemoryDataSize_Byte; // массив 8 бит DMA_Setting.DMA_Mode = DMA_Mode_Normal; // режим обычный DMA_Setting.DMA_Priority = DMA_Priority_Medium; // приоритет средний DMA_Setting.DMA_M2M = DMA_M2M_Disable; // MemoryToMemory откл. DMA_Init(DMA1_Channel4, &DMA_Setting); // TIM1_CH4 относится к 4-му каналу DMA1 DMA_ITConfig(DMA1_Channel4, DMA_IT_TC, ENABLE); // настраиваем прерывание по окончанию передачи NVIC_EnableIRQ(DMA1_Channel4_IRQn); // включаем прерывания от 4-го канала DMA1 DMA_Cmd(DMA1_Channel4, DISABLE); // пока выключаем 4-ый канал DMA1 } void DMA1_Channel4_IRQHandler(void) // закончили передавать { if (DMA_GetITStatus(DMA1_IT_TC4) != RESET) { // по совпадению DMA_ClearITPendingBit(DMA1_IT_TC4); // сбрасываем флаг прерывания DMA1 Channel4 transfer complete } if (TIM_GetITStatus(TIM1, TIM_IT_CC4) != RESET) { // по совпадению TIM_ClearITPendingBit(TIM1,TIM_IT_CC4); // сбрасываем флаг прерывания TIM1 на всякий случай } TIM1->ARR = 150-1; // вновь настраиваем на период 150 мкс TIM1->CCR4 = 0; // и ждем следующею передачу TIM1->CNT = 0; // TIM_DMACmd(TIM1,TIM_DMA_CC4,DISABLE); // всё выключаем DMA_Cmd(DMA1_Channel4, DISABLE); // TIM_Cmd(TIM1, DISABLE); // TIM_ITConfig(TIM1, TIM_IT_CC4, DISABLE); // TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Disable); } int main(void) { Init_GPIO(); Init_TIM_Transmit(); Init_DMA(); delay_ms(1000); while(1) { TIM1->CCR4 = 130-1; // до включения линия удерживается в 0 (CCR=0) TIM_ITConfig(TIM1, TIM_IT_CC4, ENABLE); TIM_CCxCmd(TIM1,TIM_Channel_4,TIM_CCx_Enable); TIM_Cmd(TIM1, ENABLE); delay_ms(100); } } TEST_TIM_DMA.zip
  14. Помогите с такой задачей. Нужно реализовать диммирование драйвера PT4115 с гальванической развязкой от шим сигнала 24В Пробовал через оптопару - в результате получаем инвертированное диммирование. Как это исправить?
  15. Доброго времени суток! Прошу помощи в написании программы для PIC18F1320-I/P. Имеется нерабочая плата управления электродвигателем с указанным выше микроконтроллером, который приказал долго жить. Обороты регулируются переменным резистором, который задает постоянное напряжение на ноге #1 микросхемы от 0 до 5 В. С ноги #18 снимается ШИМ амплитудой 5 В (скважностью зависимой от приложенного напряжения на ноге #1), который далее идет на драйвер электродвигателя. На плате распаян кварц частотой 4МГц.
  16. Добрый день! Имеется готовый лазерный модуль с драйвером (стабилизатор тока и, наверное, напряжения). Хочу регулировать яркость лазера с помощью ШИМ с МК, гугл сказал что лучший вариант - шунтирование лазера. Но драйвер устроен таким образом, что в нём с питанием напрямую не связан ни "+" ни земля лазера. Набросал такую схемку, чтобы реализовать это через оптопару. Внимание, вопрос) 1. Заработает ли такая схема? 2. Какой посоветуете транзистор Q1 и оптопару? Макс. напряжение в цепи - 5В, ток - 0.5А Я думаю что-нибудь вроде IRLL014TRPBF 3. Какой выбрать номинал резистора R1 для разряда Q1? Частота ШИМ планируется в районе 1кгц.
  17. Доброго времени суток всем. Для своей новой жены захотелось мне сделать сердечко на atmega8, с кучей эффектов и т.д. Так вот, разные мигалки-переключалки св-диодов я написал, использовал delay. Но мне этого стало мало и я решил подключить шим программный. Отдельно от всей программы шим работает как нужно, так же и переключалки работают отдельно от шим, но вот когда я соединяю это всё воедино то работает только шим и не переходит дальше по коду.Я так понимаю, что таймеры и delay вместе работать не могут? Но если могут, то как? #include <mega8.h> #include <delay.h> #define GREEN PORTC.1=PORTC.2=PORTC.3=PORTC.0 unsigned char i, s,; unsigned char green=255; unsigned char green_b; //переменные, для буферизации значений скважности ШИМ unsigned char count; //переменная- счетчик вызовов обработчика прерываний unsigned char temp=1; interrupt [TIM0_OVF] void timer0_ovf_isr(void) { count++; if (count == 0){ //если счетчик переполнился и принял значение 0 green_b = green; GREEN = 1; } if (green_b == count) { GREEN = 0;} } void main(void) { PORTC=0x0F; //конфигурируем порт DDRC=0x0F; TCCR0=0x01; //настраиваем таймер TCNT0=0x00; TIMSK=0x01; //разрешаем генерацию прерывания по переполнению таймера T0 #asm("sei") //глобально разрешаем прерывания while (1) { for (i=0;i<3;i++) { if (temp==1) {if (green < 255) green += 1; else temp = 2;} if (temp==2) {if (green > 0) green -= 1; else temp = 1;} delay_ms(1000); }; s=7; for (i=0;i<=s;i++) { PORTC.0=1; delay_ms(200); PORTC.0=0; PORTC.1=1; delay_ms(200); PORTC.1=0; PORTC.2=1; delay_ms(200); PORTC.2=0; PORTC.3=1; delay_ms(200); PORTC.3=0; } for (i=0;i<=s;i++) { PORTC.3=1; delay_ms(200); PORTC.3=0; PORTC.2=1; delay_ms(200); PORTC.2=0; PORTC.1=1; delay_ms(200); PORTC.1=0; PORTC.0=1; delay_ms(200); PORTC.0=0; } for (i=0;i<=s;i++) { PORTC.3=1; delay_ms(200); PORTC.2=1; delay_ms(200); ; PORTC.1=1; delay_ms(200); PORTC.0=1; delay_ms(200); PORTC.3=0; delay_ms(200); PORTC.2=0; delay_ms(200); PORTC.1=0; delay_ms(200); PORTC.0=0; delay_ms(200); } for (i=0;i<=s;i++) { PORTC.0=1; delay_ms(200); PORTC.1=1; delay_ms(200); ; PORTC.2=1; delay_ms(200); PORTC.3=1; delay_ms(200); PORTC.0=0; delay_ms(200); PORTC.1=0; delay_ms(200); PORTC.2=0; delay_ms(200); PORTC.3=0; delay_ms(200); } for (i=0;i<=s;i++) { PORTC=0x01; delay_ms(200); PORTC=0x02; delay_ms(200); PORTC=0x04; delay_ms(200); PORTC=0x08; delay_ms(200); PORTC=0x09; delay_ms(200); PORTC=0x0A; delay_ms(200); PORTC=0x0C; delay_ms(200); PORTC=0x0D; delay_ms(200); PORTC=0x0E; delay_ms(200); PORTC=0x0F; delay_ms(200); PORTC=0x07; delay_ms(150); PORTC=0x0B; delay_ms(200); PORTC=0x03; delay_ms(250); PORTC=0x05; delay_ms(300); PORTC=0x09; delay_ms(350); PORTC=0x01; delay_ms(400); PORTC=0x02; delay_ms(200); PORTC=0x04; delay_ms(200); PORTC=0x08; delay_ms(200); PORTC=0x00; delay_ms(200); } for (i=0;i<=5;i++) { PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(150); PORTC=0x0f; delay_ms(300); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(300); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(300); PORTC=0x00; delay_ms(150); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(100); PORTC=0x0f; delay_ms(100); PORTC=0x00; delay_ms(1000); } } }
  18. Доброго времени суток! Друг попросил сделать эму некий аппарат: пищалку, которая издает звук с определенным периодом. Пример работы: сигнал 2 секунды, тишина 1 минуту, потом опять по новой. Так вот, программу написал, и вроде как даже работает, но как-то не стабильно.. Иногда пропустит один цикл, иногда (почти всегда) после нескольких минут вообще перестает работать. Использую сон ради экономии батареи, т.к. устройство автономно. Генерирую ШИМ на ноге PB0. переключатели подсоединены к PB3 PB4. Прошу помогите найти ошибку, а то я уже не знаю что тут не так..
  19. Уже 100500 раз говорено-переговорено об этом вопросе и всё равно постоянно возникают тупейшие темы по управлению светодиодами. "Юные дарования" почему-то считают, что раз светится - значит, это "лампа" накаливания. Уже и FAQов куча понаписано, и в Интернете море информации - а воз и ныне там... Повторяю 100501-й раз: СВЕТОДИОДЫ - НЕ ЛАМПОЧКИ!!!!! и требуют к себе совершенно иного подхода. Для начала давайте повторим, в общем-то, известные сведения о лампах накаливания. Их спираль, выполненная из тугоплавкого вольфрама, представляет собой чисто омическое сопротивление. По закону дедушки Ома (I = U / R) сила тока, проходящего через спираль, прямо пропорциональна приложенному к ней напряжению и обратно пропорциональна сопротивлению спирали. Поскольку у вольфрама температурный коэффициент сопротивления достаточно велик, то при раскаливании (свечении) спирали, ее сопротивление существенно (не менее, чем в десяток раз) увеличивается. В итоге зависимость тока, протекающего через спираль от приложенного к ней напряжения нелинейна. Это позволяет питать лампы, расчитанные, скажем, на 220 В, и 240 вольтами, не особо беспокоясь за их "здоровье". Тем более, что такие колебания напряжения (+\- 10%) считаются допустимыми для сети 220 В. Кстати, в сети бывают единичные всплески напряжения (от молний и других причин), намного больше указанных 10%. Иногда от них лампы перегорают, но в большей части случаев остаются "живыми"). Зачем я всё это расписываю - будет изложено позже. Теперь о вольт-амперной характеристике (ВАХ) светодиодов. На рисунке представлена ВАХ красного светодиода. Для светодиодов другого цвета она будет точно такой же, только сдвинутой вправо. А теперь сравните ее с ВАХ стабилитрона. Только нужно учесть, что "рабочим" диапазоном для стабилитрона является область обратной ветви (расположенной в левом нижнем квадранте графика). Иными словами, ВАХ светодиода (СветоИзлучающего диода = СИД или по английски Light Emitting Diode = LED) практически повторяет ВАХ стабилитрона. Разве что имеет немного больший наклон. Получается, что если прикладывать к СИД (в данном случае - красному) какое-то напряжение, то до значения 1,7...1,8 В он светиться вообще не будет. При увеличении его до 2 В яркость свечения будет номинальной (при номинальном токе = 20 мА). А при увеличении его всего-навсего еще на 0,05 В он тупо сгорит, т.к. ток превысит максимально допустимый. А это составляет ВСЕГО ЛИШЬ 2,5%!!! Кроме того, данный график является усредненным. Для каждого конкретного СИД он может сдвигаться вправо или влево по оси "Х" (напряжений). Т.е., если задать на СИД напряжение 2 В, то одни при нем будут светиться "вполнакала", а другие - могут и сгореть вследствие превышения через них допустимого тока. "Дядюшки Ляо", соединяя СИД в своих дешевых фонариках параллельно, просто ставят их из одной партии, поэтому и параметры ВАХ для использованных СИД оказываются очень близкими. Да еще и плавность наклона "рабочей" ветви позволяет худо-бедно согласовать протекающие через них токи. Из изложенного следует, что даже если запитать СИД жестко стабилизированным напряжением, всё равно придется либо его подстраивать под конкретные экземпляры, либо мириться или со снижением светоотдачи, или с укорочением времени работоспособности. Этот путь приемлем для тех, кто желает делать "по-китайски". Но мы-то пойдем "взрослым" путем! Он заключается в том, чтобы задать светодиоду(ам) оптимальный для него (них) ТОК. При этом нам будет глубоко начхать на то, какое на СИД упадет напряжение. Оно будет таким, каким позволит быть их ВАХ. Для красных и желтых СИД - примерно 2 В. Для зеленых и синих (и белых тоже!) - примерно 3 В. Указанные значения примерные, и будут несколько различаться для СИД различных производителей (технологий изготовления). Для нас это пока непринципиально. Наиболее простой путь ограничения тока через СИД - поставить последовательно с ним токоограничительный резистор. Такой способ широко применяется в светодиодных лентах, где они включены последовательно с цепочками из трех (как правило) включенных также последовательно СИД. Просто, но стрёмно. Давайте рассмотрим одну такую цепочку. Пускай СИД будут белого цвета. На них упадет 3 х 3 = 9 В. На токоограничительном резисторе - 3 В. Для тока через цепочку 20 мА при номинальном напряжении питания = 12 В, его сопротивление должно составлять 150 Ом. А что будет, если мы поставим такую ленту в авто, где напряжение в сети (приблизительно!) будет колебаться от 13,5...14 В (летом при заведенном двигателе) до 11...12 В (зимой, при остановленном двигателе)? На СИДах останется то же падение напряжения = 9 В, а вот на резисторе упадет уже не 3, а 5 В! Следовательно, ток через цепочку возрастет на 67% (до 33 мА). Что для СИДов - "смерти подобно", т.к. приближается к границе максимально допустимого значения. При снижении напряжения светимость СИДов будет стремительно падать. Тоже плохо. Еще хуже ситуация сложится, если попытаться запитать такую ленту от просто выпрямленного диодным мостом переменного напряжения с 12-вольтового трансформатора. Нужно учесть, что 12 В - это среднее действующее значение переменного тока. Максимальное амплитудное будет в корень из двух (примерно 1,4 раза) больше. Даже если исключить 1,4 В падения на диодах моста, всё равно получится 15,4 В. А значит, в пике ток через цепочку составит 42 мА! Уже больше, чем допустимо. СИДам будет явный гаплык. Большинство "юных дарований" (и не очень юных), пытаются исключить такую ситуацию, стабилизируя напряжение питания. Однако, импульсные стабилизаторы для них оказываются слишком сложные в повторении, а линейные 3-выводные интегральные стабилизаторы (7812) требуют входного напряжения минимум на 2 В больше, чем стабильное выходное. Т.е., при 14 В на выходе будет нужные 12 В, а при 12 В - всего 10 В, что дает всего 6...7 мА тока через цепочку. Вот теперь переходим к главному вопросу, ради которого и затевалась вся эта писанина. Какими же средствами можно застабилизировать ток через светодиоды? Желательно - максимально простыми, доступными даже начинающим (несмотря на то, что я неоднократно повторял: "Простота - хуже воровства!"). Однако, еще раз повторю старую и банальную истину: ничего универсального не бывает! Схемотехническое решение обязательно должно адаптироваться под ставящуюся задачу. Поэтому в последующем будет рассматривать два задачи: а) световые эффекты в авто и б) выходной каскад светодиодной светомузыки. Рассмотрим простейший транзисторный стабилизатор тока. В минимальном варианте ("А") он состоит из из всего двух деталей: транзистора VT1 с эмиттерным резистором R2. Нагрузка (цепочка из белых СИДов с падением на каждом из них по 3 В, без токоограничительного резистора!) включена между коллектором и шиной питания, а на базу подано опорное напряжение с параметрического стабилизатора на стабилитроне VD1 и балластном резисторе R1. Ток через эмиттерный резистор по закону Ома равен падению напряжения на нем, поделенному на его номинал. Такой же ток по определению протекает между коллектором и эмиттером транзистора и, соответственно, через СИДы. Поскольку транзистор можно рассматривать, как эмиттерный повторитель, то напряжение на эмиттерном резисторе равно напряжению на базе транзистора минус падение на базо-эмиттерном переходе (0,7 В). Т.о., ток через светодиоды можно регулировать либо величиной опорного напряжения на базе, либо номиналом эмиттерного резистора. Входное сопротивление эмиттерного повторителя равно произведению номинала эмиттерного резистора на коэффициент усиления транзистора, поэтому такая простейшая схема годится только для случаев относительно небольшого тока через СИДы. Скажем, в районе 100...200 мА. Если приходится коммутировать мощные, да еще и запараллеленные СИДы, либо достаточно длинную светодиодную ленту, то в качестве транзистора желательно поставить составной транзистор Дарлингтона ("Б"). Коэффициент его усиления равен произведению Ку составляющих его транзисторов. В случае параллельного подключения нескольких цепочек СИДов в каждую из них придется добавлять токовыравнивающие резисторы (R3R5), правда их номинал достаточен в пределах единиц Омов, а в ленте они уже имеются "по жизни". Для применения такой схемы в авто, где обшей шиной является кузов, придется использовать транзисторы p-n-p проводимости ("А"). Базовое опорное напряжение в этом случае отсчитывается от шины питания. Работа такой схемы ("Б"), обеспечивающей плавное зажигание и гашение СИДов при открывании двери (контакт SA1), показана на ролике. Данная параметрическая схема, с "аналоговым" управлением, вполне достаточна для применений, не требующих особо стабильного тока, а именно, для авто. Теперь давайте рассмотрим схему источника более стабильного тока а также роль токоограничительных резисторов, встроенных в светодиодную ленту. Правда, должен отметить, что эта схема позволяет регулировать ток только изменением номинала эмиттерного (истокового) резистора, независимо от уровня напряжения, поступающего на управляющий вход ("цифровое" управление). Во всех примерах применены цепочки белых СИДов с падением напряжения на каждом из них по 3 В. В простейшем варианте ("А") собственно стабилизатор тока выполнен на регулирующем транзисторе VT2. Напряжение на его базе при наличии управляющего напряжения на входе (левый вывод резистора задается таким, чтобы на его эмиттерном резисторе создавалось падение напряжения, равное 0,7 В, которое приоткрывает дополнительный транзистор VT1, между коллектором и эмиттером которого поддерживается напряжение, обеспечивающее нужный уровень приоткрывания транзистора VT2. Рассмотрим "бюджет" напряжений в цепочке поддержания стабильного тока через СИДы. На них падает 9 в, на эмиттерном резисторе - 0,7 В и все остальное напряжение (2,3 В) - на регулирующем транзисторе VT2. Т.о., при изменении питающего напряжения (скажем, от 10 В и больше), всё "лишнее" напряжение всё равно упадет между коллектором и эмиттером VT2, а ток в цепи останется на том же уровне. Если же коммутируется светодиодная лента ("Б"), со встроенными токоограничительными резисторами, то видно, что на них вместо 3 В упадет всего 1,8 В. Это обусловлено наличием т.н. "напряжения насыщения" между коллектором и эмиттером регулирующего транзистора, которое, к сожалению, невозможно "объехать на кривой козе", а значит, максимальной светимости ленты добиться тоже не удастся. Выходом из этой ситуации может быть применение в качестве регулирующего низковольтного полевого транзистора ("В"), имеющего (в отличие от высоковольтных), как правило, очень малое сопротивление канала, в пределах десятка мОм. Падение напряжения на таком малом сопротивлении составляет всего несколько десятков мВ, чем можно пренебречь. При питающем напряжении уже 13 В ("Г") такой стабилизатор обеспечивает номинальный ток. А что делать, если необходимо всё-таки регулировать яркость СИДов? Да очень просто: применить Широтно-Импульсную Модуляцию (ШИМ) входного напряжения. Т.е., на вход подать либо постоянное входное напряжение (тогда яркость будет максимальной), либо импульсную последовательность с частотой более 400...500 Гц (для исключения стробоскопического эффекта) и изменяющейся скважностью (отношение длительности периода между входными импульсами к длительности этого входного импульса). Чем короче входные импульсы, тем меньше яркость свечения СИДов. При этом, в отличие от ламп накаливания, яркость свечения СИДов будет прямо пропорциональной среднему протекающему через них току. При том, что максимальный ток не будет превышать номинального значения. Подобным образом можно организовать режим индикации габаритов и стоп-сигнала одними и теми же СИДами красного свечения. Схема генератора ШИМ выходит за рамки данной "статьи" и поэтому здесь не обсуждается. Да хоть банальнейший классический транзисторный мультивибратор! На говоря уже о таймере. Ну, и наконец, перейдем к светомузыке. Я просто долго и нудно ржу, когда вижу схемы, в которых СИДы питаются каскадами, построенными на транзисторах с общим эмиттером (истоком). Например, вот такую: Ведь совершенно очевидно (по крайней мере для меня), что это никаким образом не светомузыка, с плавным режимом свечения СИДов, а просто тупая "мигалка". Три последовательно включенных каскада с ОЭ-ОЭ-ОИ обеспечат режим либо полной отсечки, либо полного насыщения полевого транзистора. Для данного применения описанные выше схемы, конечно, возможно применить, но коль в исходную схему уже понапихано столько ОУ, то еще 3...4 к существенному усложнению не приведут, а качество работы повысят существенно. Ничего нового по схеме генератора тока на ОУ не скажу, поскольку она известна давным-давно. Принцип ее работы очень похож на описанный выше для двухтранзисторной схемы. ОУ поддерживает падение напряжения на резисторе R2 (а следовательно и ток через него) таким же, как и входное напряжение на неинвертирующем входе. Номинал резистора R2 можно выбрать достаточно малым, чтобы падение напряжения составляло всего 0,1...0,2 В, что позволит спокойно применять светодиодные ленты при практически полной яркости их свечения. Ну, а заодно и применить прецизионные выпрямители на ОУ: http://www.gaw.ru/ht.../funop_13_2.htm . ОУ для данного применения целесообразно применить LM358/LM324. На схеме показано, как лучше "заглушить" неиспользуемый ОУ из одного корпуса LM358 (DA1.1). В этой схеме нас совершенно не волнует, какое напряжение будет на затворе полевого транзистора - это "личное дело" ОУ. Главное, чтобы на истоковом резисторе поддерживалось нужное падение напряжения. Кроме того, СИДы можно питать НЕстабилизированным напряжением, прямо с выхода выпрямительного моста с конденсаторным фильтром, а стабилизировать только напряжение питания ОУ. Это существенно снизит токовую нагрузку на стабилизатор напряжения питания. А для схемы стабилизатора тока такой режим - сугубо фиолетовый. А теперь крепче держитесь за стул! В журнале "Радиолоцман" № 12 за 2015 год, на стр.15-16 описаны "новые" микросхемные стабилизаторы тока для светодиодов BCR420U/BCR421U фирмы "Infineon". Вниманию знатоков, их внутренняя схема!!! Схема из журнала "Радиомир", 2014, № 11, С.26: Дополнительный диод - германиевый или Шоттки. Схема позволяет существенно (в 2...3 раза) уменьшить падение напряжения на эмиттерном токоизмерительном шунте. Вот, собственно, и всё, что хотелось бы изложить по этому вопросу. Может быть, что-то запамятовал - так на то и существуют уточняющие вопросы. Ну и до кучи еще ссылочка на подобную тему: http://forum.cxem.ne...howtopic=134692
  20. Добрый день всем помогите разобраться со схемой сварочного инвертора , горят транзисторы на максимальном токе !!! Imma-315 инвертор трёх фазный... Управляющие импульсы шим приходят на полевые транзисторы затем с них на первый и второй трансформаторы , далее на комплиментарные пары 8050 и 8550 Импульсы приходят на затворы igbt с 2ух выходов 2 плеча ,задействованы 2 выхода и 4 igbt транзистора fgl40, на мертвое время sg3525 стоит 100 ом резистор , трансформаторы, я так понял нужны для гальванической развязки осциллограммы сброшу позже , без силы Исправны только 2 транзистора .. Хочу изменить максимальный выходной ток , уменьшить...
  21. Микроконтроллер с помощью ШИМ 3.3 В управляет напрямую полевиком, до этого схема работала хорошо! Сейчас начались какие-то танцы с бубном. На осциллограмме почему-то плывет задний фронт на транзисторе сток-исток и шумы. На фото осциллограммы при ШИМ 10 и 20%. Стоит задача сделать фронты максимально идеальными и убрать шумы.
  22. Доброго всем времени суток! пишу сюда так как сам не понимаю что и как хотелось бы узнать у тех кто понимает. Вообщем этот блок питания от муз. центра Sony dhc-az33d, причина: не включается. Вообщем я снял крышку и снял сразу его подключил к 220в и на выводах увидел только 30в и 4в(там всего 2в) а 12в и 8в не обнаружил. начал идти по схеме в итоге там был сгоревший предохранитель, диодный мост, термистор, варистор схемозащитные диоды, все это я поменял заместо предохранителя припаял лампочку обычную на 60w и думал что сейчас то он заработает но чуда не произошло но лампочка не загорелась. Начал смотреть дальше с диодного моста выходит около 300в. Еще увидел такой шим контроллер sc6700 k791 даташита на него нет, искал схему но тоже безрезультатно куда смотреть дальше я уже не знаю подскажите мне новичку.
  23. Tl494 имеет два компаратора, можно ли схему использовать как компаратор с гистерезисом? Задача такая чтоб ШИМ появлялся при напряжении 11.0 вольт и пропадал при 10.8 в. Причем не плавно нарастал и исчезал, а есть или нет. Если есть такая возможность у схемы подскажите примерную обвязку.
  24. Guest

    Шим ne555

    Добрый день. Помогите разобраться с шим управлением для мотора. Собирал по схеме На выходе стоит кт815г. Выдает стабильное напряжение и мотор работает на нужных оборотах. Но если у мотора появляется нагрузка то напряжение сильно просидает.
  25. Всем привет! Дано: Контроллер подсветки рабочей зоны кухни, реализованный на Tiny 13A. Светодиодная лента длиной 2,3 метра, led 5050, 120 светодиодов/метр. Принципиальная схема устройства ниже: Код прошивки: #include <tiny13.h> #include <delay.h> int triggered = 0; int ontimer = 0; void main(void) { // Input/Output Ports initialization // Port B initialization // Function: Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=Out DDRB=(0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (0<<DDB2) | (0<<DDB1) | (1<<DDB0); // State: Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=0 PORTB=(0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0); // Timer/Counter 0 initialization // Clock source: System Clock // Clock value: 37,500 kHz // Mode: Fast PWM top=0xFF // OC0A output: Non-Inverted PWM // OC0B output: Disconnected // Timer Period: 6,8267 ms // Output Pulse(s): // OC0A Period: 6,8267 ms Width: 0 us TCCR0A=(1<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (1<<WGM01) | (1<<WGM00); TCCR0B=(0<<WGM02) | (1<<CS02) | (0<<CS01) | (0<<CS00); TCNT0=0x00; OCR0A=0x00; OCR0B=0x00; while (1) { if (PINB.1==1) { triggered = 1; ontimer = 60; }; if (ontimer > 0) { ontimer--; } else { triggered = 0; }; if (triggered) { if (OCR0A<255) { OCR0A++; }; } else { if (OCR0A>0) { OCR0A--; }; }; delay_ms(10); } } Возникшая проблема: Греется полевой транзистор при работе. Изначально поискав информацию на данную проблему, начал прикидывать. Смотрим график зависимости пропускаемого тока стока (ID )от приложенного напряжения затвор-сток (VGS), при температуре окруж. среды 25 градусов: ID = 14 А (2,3 метра светодиодной ленты не могут столько кушать, по крайней мере я такую не видел). Было предположение что частота переключения ШИМ высокая - отсюда транзистор в не определенном состоянии = нагрев. Рассчитал макс. частоту так: Rg = 100 Ом, Vgs = 5V Заряд затвора: Qiss = Ciss * Vgs = 1800pF * 5v = 9nC Скрость нарастания: S = Rgate * Qiss = 100Ohm * 9nC = 0.009mV*sec Время на открытие или закрытие транзистора: t=S / Vgs = 0.002mV*sec * 3.2v = 4.5uSec Период - это открытие + закрытие: T = t + t = 4.5uSec + 4.5uSec = 9uSec Максимальная частота переключения: F < 1 / T = 1 / 9uSec = 111KHz Ток через затвор (G) и цифровой выход Tiny 13A: I = Qiss / t = 2mA Максимальный выходной ток GPIO у Tiny 13A 40.0mA 2mA < 40.0mA Выставил частоту ШИМ на 37,5 кHz. Вуаля - при подключении 1м светодиодной ленты (тестировал на обрезке), нагрева нет. Но как только подключил все 2,3 метра - транзистор стал снова спустя время греться, аж дотронуться не возможно. Захотел померить ток, который потребляет 1 метр ленты, проверить продавца. Потребление 1 метра ленты оказалось вместо заявленных 600 мА, все 1,85 А, причем заметил странную вещь - ток начал возрастать спустя время на сотые доли и дошел до 1,9 А. Дальше ждать не стал. Режим амперметра в мультиметре сломался? Далее подумал что слишком большая мощность рассеивается на транзисторе. Если учесть то, что при открытом транзисторе, его переход можно представить в виде линейного резистора с маленькой величиной сопротивления, можно рассчитать рассеиваемую мощность на транзисторе: Смотрим сопротивление транзистора в открытом состоянии при VGS = 5В : RDS(on) = 0.18 Ом P1 = 1,9*1,9*0,18 = 0,65 Вт. (1 метр св.ленты). Раз мы взяли потребление 1 метра ленты 1, 9 А, тогда 2,3 метра потребляют = 4,4 А. (Теперь не уверен в своем мультиметре). P2=4.4*4.4*0.18 = 3.5 Ватт - довольно таки многовато я думаю. В общем: Правильно ли я делаю расчеты? Что упустил? Как снизить нагрев транзистора, без применения вентиляторов и здоровенных радиаторов? Есть вариант замены светодиодной ленты на что нибудь поменьше жрущее (60 светодиодов/ метр например), но в будущем еще много раз придется сталкиваться с полевиками, хотелось бы разобраться .
×
×
  • Create New...