Tag Archives: Порт

Управление мощной нагрузкой постоянного тока. Часть 1

BS-115C

О какой нагрузке идет речь? Да о любой — релюшки, лампочки, соленоиды, двигатели, сразу несколько светодиодов или сверхмощный силовой светодиод-прожектор. Короче, все что потребляет больше 15мА и/или требует напряжения питания больше 5 вольт.

Вот взять, например, реле. Пусть это будет BS-115C. Ток обмотки порядка 80мА, напряжение обмотки 12 вольт. Максимальное напряжение контактов 250В и 10А.

Подключение реле к микроконтроллеру это задача которая возникала практически у каждого. Одна проблема — микроконтроллер не может обеспечить мощность необходимую для нормальной работы катушки. Максимальный ток который может пропустить через себя выход контроллера редко превышает 20мА и это еще считается круто — мощный выход. Обычно не более 10мА. Да напряжение у нас тут не выше 5 вольт, а релюшке требуется целых 12. Бывают, конечно, реле и на пять вольт, но тока жрут больше раза в два. В общем, куда реле не целуй — везде жопа. Что делать?

Первое что приходит на ум — поставить транзистор. Верное решение — транзистор можно подобрать на сотни миллиампер, а то и на амперы. Если не хватает одного транзистора, то их можно включать каскадами, когда слабый открывает более сильный.

Поскольку у нас принято, что 1 это включено, а 0 выключено (это логично, хотя и противоречит моей давней привычке, пришедшей еще с архитектуры AT89C51), то 1 у нас будет подавать питание, а 0 снимать нагрузку. Возьмем биполярный транзистор. Реле требуется 80мА, поэтому ищем транзистор с коллекторным током более 80мА. В импортных даташитах этот параметр называется Ic, в наших Iк. Первое что пришло на ум — КТ315 — шедевральный совковый транзистор который применялся практически везде :) Оранжевенький такой. Стоит не более одного рубля. Также прокатит КТ3107 с любым буквенным индексом или импортный BC546 (а также BC547, BC548, BC549). У транзистора, в первую очередь, надо определить назначение выводов. (далее…)

Read More »

AVR. Учебный Курс. Виртуальные порты

Глядя на то, как раскиданы порой ножки портов по корпусу контроллеров, у меня возникают большое подозрение, что разводчик кристалла дунул что то сильно забористое. Когда вперемешку идут выводы разных портов, да еще почти в рандомном порядке… Когда к этим портам вешаем что-либо разнобойное, то пофигу. А если надо подцепиться на прямую линейку шины данных, вроде того же LCD дисплея? Вот тут и начинается круголяние дорожек по плате. А если плата фаршированная донельзя? Тут приходится вводить перемычки, дополнительные слои и извращаться как только можно. Короче, та еще проблема.

Я решаю ее виртуальными портами. То есть завожу в системе переменную каждому биту которой привязываю какую-либо ножку. Поскольку все выводы независимы я могу компоновать виртуальный порт в любом порядке и из любых линий. Чертовски удобно. Впрочем, за удобство приходится платить — обработка такого порта требует несколько десятков команд. Но когда кристалл не забит под завязку, то можно позволить себе немного пошиковать во имя удобства.

Итак. Подключаем куда-нибудь в область процедур блок кода виртуального порта. (далее…)

Read More »

AVR. Учебный курс. Работа с портами ввода-вывода. Практика

Вот ты читаешь сейчас это и думаешь — память, регистры, стек и прочее это хорошо. Но ведь это не пощупать, не увидеть. Разве что в симуляторе, но я и на дельфи с тем же условием могу накодить. Где мясо!!!
 
В других курсах там, чуть ли не с первых строк, делают что то существенное — диодиком мигают и говорят, что это наш Hello World. А тут? Гыде???
 

Да-да-да, я тебя понимаю. Более того, наверняка ты уже сбегал к конкурентам и помигал у них диодиком ;)))) Ничего, простительно.
 

Я просто не хотел на этом же мигании дидодиков и остановиться, а для прогресса нужно четкое понимание основ и принципов — мощная теоретическая база. Но вот пришла очередь практики.
 

О портах было рассказано, шаблон программы у вас уже есть, так что сразу и начнем.
 
(далее…)

Read More »

Подключение микроконтроллера. Ликбез.

Казалось бы простая тема, а однако в комментах меня завалили вопросами как подключить микроконтроллер. Как подключить к нему светодиод, кнопку, питание. Что делать с AGND или AREF. Зачем нужен AVCC и все в таком духе. Итак, раз есть вопросы, значит тема не понятна и надо дать по возможности исчерпывающий ответ. Все описываю для контроллеров AVR, но для каких нибудь PIC все очень и очень похоже. Т.к. принципы тут едины.
 

Чтобы понимать ряд терминов активно упоминающихся в этой статье, надо сначала прочитать статью про порты ввода-вывода.

 

Питание
Для работы микроконтроллеру нужна энергия — электричество. Для этого на него естественно нужно завести питалово. Напряжение питание у МК Atmel AVR разнится от 1.8 до 5 вольт, в зависимости от серии и модели. Все AVR могут работать от 5 вольт (если есть чисто низковольтные серии, то просьба уточнить в комментах, т.к. я таких не встречал). Так что будем считать что напряжение питания контроллера у нас всегда 5 вольт или около того. Плюс напряжения питания обычно обозначается как Vcc. Нулевой вывод (а также Земля, Корпус, да как только его не называют) обозначают GND. Если взять за пример комповый блок питания. То черный провод это GND (кстати, земляной провод традиционно окрашивают в черный цвет), а красный это +5, будет нашим Vcc. Если ты собираешься запитать микроконтроллер от батареек, то минус батареек примем за GND, а плюс за Vcc (главное чтобы напряжение питания с батарей было в заданных пределах для данного МК, позырь в даташите. Параметр обычно написан на первой странице в общем описании фич:
 

• Operating Voltages
–1.8 — 5.5V (ATtiny2313V)
–2.7 — 5.5V (ATtiny2313)
• Speed Grades
–ATtiny2313V: 0 — 4 MHz @ 1.8 — 5.5V, 0 — 10 MHz @ 2.7 — 5.5V
–ATtiny2313: 0 — 10 MHz @ 2.7 — 5.5V, 0 — 20 MHz @ 4.5 — 5.5V
 

Обрати внимание, что есть особые низковольтные серии (например 2313V низковльтная) у которых нижня граница напряжения питания сильно меньше. Также стоит обратить внимание на следующий пункт, про частоты. Тут показана зависимость максимальной частоты от напряжения питания. Видно, что на низком напряжении предельные частоты ниже. А низковольтные серии раза в два медленней своих высоковольтных коллег. Впрочем, разгону все процессоры покорны ;))))) (далее…)

Read More »

AVR. Учебный курс. Устройство и работа портов ввода-вывода

С внешним миром микроконтроллер общается через порты ввода вывода. Схема порта ввода вывода указана в даташите:

Но новичку там разобраться довольно сложно. Поэтому я ее несколько упростил (далее…)

Read More »