Показаны сообщения с ярлыком Подключение к AVR. Показать все сообщения
Показаны сообщения с ярлыком Подключение к AVR. Показать все сообщения

вторник, 22 ноября 2016 г.

Интерактивный стоп-сигнал и поворотный сигнал на светодиодной ленте ws2812.

Представляю вниманию "интерактивные" стоп-сигнал и поворотники на светодиодной ленте ws2812.
Светодиодная лента ws2812 представляет собой ленту управляемых RGB светодиодов. Каждая ячейка WS2812B имеется 3 излучающих светодиода и ШИМ-драйвера управляющие их яркостью. ШИМ-драйвера 8-ми битные, то есть для каждого из цветов возможны 256 градаций яркости и, соответственно, для того чтобы установить яркости для каждого из 3-х светодиодов нужно передать пикселю 8х3=24 бит (3 байта) информации.

Теперь обсудим схему устройства:
Основа - микроконтроллер atmega8. Управление идет через вывод и через токоограничивающий резистор R11. Микроконтроллер определяет события поворота или нажатия стоп сигнала по сигналам +12В на соответствующие входы. Эти сигналы подключены к базам транзисторов (работающих в ключевом режиме). Управляющие сигналы удобно подключать к лампам поворота и стоп-сигнала авто. Пока на управляющем сигнале 0 ничего не происходит. При подачи питания на лампу схема "улавливает" событие и происходит индикация на ленте.

Так же в схеме используется стабилизатор напряжения - готовая схема на основе LM2596.

Для подключение устройства необходимо подключить ленту: 5В,GNG,сигнал. Питания схемы: 12В и "массу". Сигнальные провода: левый, правый поворотник, стоп-сигнал.

Как будет происходить индикация - смотрите на видео.

Для скетча в arduino я использовал библиотеку с GitHub-а.

Фото готового устройства:
Прошивка тут. (работа микроконтроллера рассчитана на 8МГц).

Проба пера на моем авто:

понедельник, 21 ноября 2016 г.

Паяльная станция своими руками.

Паяльник для этой станции можно купить с тремя запасными нагревательными элементами и десятью жалами.

Схема устройства:

воскресенье, 20 ноября 2016 г.

Драйвер для электромотора.

Как то раз нужно было мне сделать драйвер на элеткромотор. Для этих целей есть готовые микросхемы, но необходимо было "подняться" по току до 3-ех ампер. Было решено сделать драйвер на транзисторах (недорого  и не очень сложно!)
 Схема драйвера:

Схему я взял от сюда. Работает схема следующим образом. Когда на Input подан ноль, транзистор Q1 закрыт и его переход коллектор база представляет из себя очень высокое сопротивление и падение напряжение на нем открывает Q2, следовательно на Output имеем тоже ноль.

Когда на Input подано напряжение для открытия Q1, например от микроконтроллера, то Q1 открывается и в этом случае падение напряжения уже на R2 открывает транзистор Q3 и на Output имеем напряжение Power. Диоды служат для защиты транзисторов от "обратного" напряжения от двигателя. Очень удобная схема, с ее помощью можно сделать драйвер и для шагового мотора, например. В моем случае я управлял двигателем постоянного тока в двух направлениях (соответственно собирая две выше указанные схемы).

Программа управления на CodeVisionAVR (случай когда Input1 и Input2 подключены к порту B, пинам 0 и 1) проста до неприличия!:

while (1)
{
// Place your code here
PORTB.1 = 0;
PORTB.0 = 1;

delay_ms(2000);

PORTB.0 = 0;
PORTB.1 = 1;

delay_ms(2000);

}


Видео работы схемы:
 

пятница, 18 ноября 2016 г.

Подключение шагового двигателя к микроконтроллеру.

Итак, шаговым двигателем называют электромеханическое устройство, преобразующее электрические сигналы в дискретные угловые перемещения вала. Т.е. перемещение происходит шагом на определенный угол, а скорость и количеством шагов мы уже управляем сами! Для управлением таких двигателей необходим контроллер и драйвер.
Шаговые двигатели находят применение у радиолюбителей в основном в такой сфере,как робототехника. Так же они вам непременно понадобятся, если вы хотите собрать ЧПУ станок или 3D принтер, почему нет!
В середине шагового двигателя находится зубчатое колесо - ротор, по краям - несколько электромагнитов с такими же зубцами. На рисунке видно, что когда зубцы колеса находятся в точности напротив верхнего электромагнита, зубцы правого и левого электромагнитов смещены на четверть расстояния между зубцами, а нижнего - на половину этого расстояния. Для поворота штока такого двигателя необходимо подключать питание к катушкам последовательно, при этом в одном направлении будет происходить вращение штока мотора по часовой стрелки, в другом против.
Шаговые двигатели можно разделить на две группы - биполярные и униполярные. Внешне они отличаются количеством подключаемых проводов - биполярные - 4 вывода, униполярные - 6 (иногда 5).

Униполярные двигатели  имеют две обмотки, от середины каждой обмотки сделан отвод. Это позволяет изменять направление магнитного поля, создаваемого обмоткой, простым переключением половинок обмотки.

Драйвер управления таким двигателем имеет 4 транзисторных ключа. Средние выводы обмоток могут быть объединены внутри двигателя, поэтому такой двигатель может иметь и 5 выводов.
Для приведения такого двигателя в движение необходимо последовательно выводить на порты логическую единицу в такой последовательности 1a,2a,1b,2b (для движения по часовой стрелки!). Диоды служат для защиты транзистора от выбросов обратного напряжения с мотора. 
Вместо транзисторных ключей удобно использовать микросхему ULN2003A.
Биполярный шаговый двигатель двигатель отличается от униполярного шагового двигателя тем, что полярность обмоток изменяется во время работы. Разом активируется половина обмоток, что обеспечивает в сравнении с униполярными шаговыми двигателями большую эффективность. При коммутации полумосты прикладывают к концам обмоток положительное или отрицательное напряжение.
Драйвер для такого удобно делать на микросхеме L293D.
int i;
for(i=1;i<=100;i++) // 100 шагов двигателя
{
PORTB.0 = 1;
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 0;

delay_ms(20); // Задает скорость движения

PORTB.0 = 0;
PORTB.1 = 1;
PORTB.2 = 0;
PORTB.3 = 0;

delay_ms(20);

PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 1;
PORTB.4 = 0;

delay_ms(20);

PORTB.0 = 0;
PORTB.1 = 0;
PORTB.2 = 0;
PORTB.3 = 1;

delay_ms(20);
};

Видео работы: