Самодельный силовой шилд для Ардуино

Настала пора выполнить обещание, которое я дал несколько месяцев назад в статье о визуализации данных при помощи LabView. Саму статью, если кому интересно, можно найти здесь: arduino-kit.com.ua/arduino-i-labview-ili-vizualizacija-dannyh.html . В данной статье я расскажу, как своими руками можно изготовить шилд (плату расширения) для Ардуино. Зачем это делать? Вопрос резонный, тем более, что на arduino-kit.com.ua есть целый раздел, посвященный этой тематике, в котором целых 5 страниц (на момент написания данной статьи) а это практически 100 вариантов разнообразных плат arduino-kit.com.ua/shildy , и это не считая макетных плат (досок) представленных в разделе arduino-kit.com.ua/doski-bread-board . Искренне советую изучить – вполне возможно, что плата, которой Вам не хватает, там уже есть, и вместо того, чтобы бегать по радиорынку, зачастую находящемуся еще и не в вашем городе можно просто заказать и она приедет через несколько дней. Но почему я все-таки решил создать еще одну? Так получилось, что для моих экспериментов не хватает именно такой. Окончательную необходимость создания данной платы я осознал при написании статьи о термодатчиках (arduino-kit.com.ua/tsifrovoy-termometr-ds18b20-i-arduino-uno.html ) в этом проекте пришлось подключать к одному из контактов (+5V) целых 4 проводника. В принципе не много, если учесть, что проект учебный, а проводочки тоненькие, но если бы это был бы проект по серьезней, а провода, хотя бы сечением 0,5 кв.мм было бы намного сложнее. Кроме того – не всегда есть возможность воспользоваться паяльником. Хорошо, когда весь проект начинается и заканчивается в стенах мастерской, или просто на рабочем столе, а если предполагается, что Ардуинка будет управлять, например скважиной до которой идти несколько сотен метров по зимней степи… Да и 40 мА, которыми может оперировать плата – честно говоря маловато. Их, конечно хватит, чтобы помигать диодиком и даже несколькими, или небольшое реле но на этом практически все, а иногда хочется немного большего, ну хотя бы 0,5 А на выход. Кроме того – 5 В не всегда то напряжение, которым нужно оперировать, существует много очень полезной автоматики управляемой 9, 12, 24 В… И еще – было бы хорошо не таскать лишние блоки питания, чтобы Ардуинка могла запитываться непосредственно от шилда. Вот у нас фактически и сформировалось техническое задание для нашего нового силового шилда:

1. Иметь возможность подключения проводников без помощи пайки.
2. Непосредственно управлять нагрузкой до 0,5 (2) А.
3. Возможность подключения питания Ардуино непосредственно от шилда.


Платы Raspberry Pi на портале Arduino-kit.com.ua




Данную плату я нарисовал в программе Sprint-layout_5.0 – очень удобная, интуитивно понятная программа, которую, при желании можно загрузить с этой страницы. При разработке платы я ориентировался только на самые распространенные компоненты, которые будет довольно легко приобрести практически в любом магазине радиотоваров. Для реализации данного проекта мне понадобилось:

Диодный мост BR610 - 1 шт.
Стабилизатор напряжения 7806 – 1 шт.
Конденсатор 35Вх1000мкФ – 1 шт.
Конденсатор 50Вх1мкФ – 1 шт.
Конденсатор 50Вх2,2мкФ – 1 шт.
Резистор 75Ом – 1 шт. (минимум 1 Вт)
Резистор SMD 50Ом – 14 шт.
Транзистор IRF3205 – 14 шт.
Колодка 7,5 мм двойная – 1 шт.
Колодка 5 мм двойная большая – 5 шт.
Колодка 5 мм двойная малая – 7 шт.
Колодка 5 мм тройная большая – 8 шт.
Колодка 5 мм тройная малая – 4 шт.
Штырьки платы – 28 шт.
Фольгированный стеклотекстолит 90х100 мм – 1 шт.
Штекер питания – 1 шт.
Хлорное железо, канифоль, припой.

Также были куплены 2 сверла. Одно диаметром 0,8 мм Р6М5 с покрытием нитридом титана, второе – диаметром 1,2 мм твердосплавное ВК8. Брать сверла HSS не рекомендую. На стеклотекстолите садятся моментально, а заточить без специальных навыков и инструмента практически невозможно. 

 
Рисунок 1. Макет платы с пояснениями.



После окончательной отрисовки платы совершенно не лишним будет распечатать то, что получилось, проделать отверстия иголкой, вставить компоненты и посмотреть, не нужны ли какие-либо изменения, потому, как на готовой плате что-то изменить будет гораздо сложнее. 

 
Рисунок 2. Предварительный макет платы и некоторые детали.



 
Рисунок 3. Компоненты размещенные на плате. Одна из колодок питания и большинство транзисторов не показаны.



Далее делаем плату при помощи ЛУТ. ЛУТ это Лазерно-Утюжная Технология. Разработана радиолюбителями специально для возможности изготовления печатных плат в домашних условиях. Делается просто, но есть и нюансы. Если в двух словах – распечатываем макет платы при помощи лазерного принтера (я использовал светодиодный Xerox Phaser 3010, что в принципе одно и тоже) на бумагу (бумагу лучше брать с «глянцевых» журналов или рекламных проспектов), при помощи нагрева утюгом (между утюгом и распечаткой платы лучше подложить чистый лист бумаги, во избежания загрязнения подошвы утюга) переносим изображение на фольгированную сторону стеклотекстолита, травим, лудим, сверлим. И все – плата готова. Дальше предлагаю посмотреть картинки с небольшими пояснениями нюансов этого достаточно несложного процесса. 

 
Рисунок 4. Распечатанная плата и заготовка.



Для нашего проекта целиком подойдет фольгированный односторонний стеклотекстолит. Перед нанесением (переводом) тонера вырезается нужный кусок (режется обычной ножовкой по металлу), очищается и обезжиривается, например, ацетоном или 646-м растворителем. В некоторых случаях можно применить наждачную бумагу «нулёвку» (Р1000 – Р2400). 

 
Рисунок 5. Перенос тонера при помощи утюга.



На Рисунке 5 чистый лист бумаги условно не показан. Честно говоря «приклеить» бумагу к текстолиту проще без него, особенно, если утюг пока не успел нагреться. Но потом чистый лист обязателен. Краска с бумаги может перейти на подошву утюга и впоследствии пачкать выглаживаемую одежду. Температуру на утюге лучше выставлять либо «среднюю» («две точки») либо чуть меньше, поверхность для работы (на которой проглаживается текстолит) должна быть жесткой и ровной. Показатель максимальной температуры – небольшое потемнение чистого листа бумали, через который проглаживается плата. Проглаживать нужно тщательно, чтобы «приклеились» все фрагменты рисунка платы, но без особого нажима, чтобы тонер не «потек» и соседние дорожки не «слиплись». 

 
Рисунок 6. Проклеенная и зашкуренная плата.



После успешной проклейки (переноса рисунка) наждачной бумагой слегка «зашкуриваем» бумагу. Делать это нужно практически без нажима, чтобы просто остались царапины. Чем больше царапин тем легче и быстрее удаляется бумага. 

 
Рисунок 7. Удаление бумаги.



Для того, чтобы удалить бумагу набираем в миску подходящего размера теплой воды, и аккуратно пальцами скатываем начинающую раскисать бумагу. Можно для этих целей также использовать старую зубную щетку. Для прочистки отверстий и промежутков между дорожками можно использовать острую иглу или булавку.

После того, как плата очищена от остатков бумаги, необходим внимательный осмотр. Все дефекты на данном этапе можно исправить перманентным маркером, или лаком для ногтей. Маркер лучше выбирать по тоньше, равно, как и кисточку для лака.

После этого помещаем плату в раствор хлорного железа. Раствор готовится просто: берется стеклянная банка, на 250 мл фильтрованной, кипяченой, охлажденной до теплого состояния воды берется 80…110 грамм кристаллического хлорного железа. Размешивается стеклянной, деревянной, либо пластмассовой палочкой. Для травления платы подойдет старая фотографическая ванночка (кювета), но лично я использовал для этого процесса ненужную канистру. Плату можно положить сверху на пленку, которая образовывается на поверхности жидкости – при определенной сноровке это не сложно. Емкость с хлорным железом и платой нужно периодически (без фанатизма) покачивать. Лучше, если температура раствора будет «чуть теплая». Для предупреждения образования пузырей раз в 10…15 минут плата извлекается и осматривается. Я поддеваю спичками и приподнимаю пальцами, удерживая за ребра. 

 
Рисунок 8. Травление платы.



Надо внимательно следить, чтобы под «плавающей» платой не остались пузырьки воздуха. Это может сильно увеличить время травления, или просто ухудшить внешний вид получившийся платы. 

 
Рисунок 9. Протравленная плата с остатками тонера.



С протравленной платы остатки тонера и бумаги можно удалить, соскребая тупой стороной ножа, счищая наждачкой, но самый безопасный способ – смыть ацетоном, либо 646-м растворителем. 

 
Рисунок 10. Остатки тонера смыты растворителем.



Затем плата лудится (наносится слой припоя на дорожки), а только после этого сверлится. Лудить плату легче, если предварительно все дорожки платы обработать тампоном смоченным в паяльной кислоте. 

 
Рисунок 11. Луженая плата.



Я сверлю обычным шуруповертом в горизонтальном положении, на мой взгляд, так меньше шансов сломать сверло. Для наметки центров отверстий можно использовать шило. Лучше всего использовать твёрдосплавное, центровочное сверло, оно хоть и стоит раза в 4 дороже обычного, но ресурс у него на порядок выше, а если учесть, что оно двухстороннее, то при аккуратной периодической эксплуатации его может хватить на несколько лет. Диаметр сверла под мелкие детали – 0,8…0,9 мм, под крупные, например колодки и мост – 1,2 мм. Да, и еще одно… После сверловки очень желательно снять фаски, с той стороны, с которой будут вставляться детали. Собирать потом плату будет гораздо комфортнее. Снятие фаски можно сделать сверлом диаметром примерно 3 мм, удерживая сверло в руках. 

 
Рисунок 12. Засверленная плата.



Еще хотелось бы сказать, что этот проект имеет маленький нюанс. Все элементы, которые должны управляться управляются «минусами», это нужно учитывать. Неудобство не столь уж большое, если судить по распространённости комплектующих и низкой стоимости всего проекта. Также к особенностям проекта относится «нестандартная» пайка силовых транзисторов. Так, как я решил обойтись без радиаторов (коммутируемый ток несколько процентов от максимального это прощает), пришлось несколько «доработать» их выводы путём аккуратного изгиба. Как именно они согнуты видно из Рисунка 14. 

 
Рисунок 13. Изгиб выводов транзисторов.



Особое внимание нужно обратить, чтобы после пайки ножки транзисторов не соприкасались между собой.
А теперь немного практики. Для начала попробуем «поуправлять» лампочкой на 24В. Да не просто «включить/выключить», а с помощью ШИМ (Широтно-Импульсная Модуляция) плавно её зажечь, потом не менее плавно погасить. Для этого нам понадобится элементарный код:

void setup() { }
void loop() {
for (int i=0; i<=255; i++)
{analogWrite(6, i);
delay(10);}
for (int i=255; i>=0; i--)
{analogWrite(6, i);
delay(10);}}

Подключаем один проводок от лампочки к «+» платы, другой к транзистору соединённому с цифровым выходом «6». В результате получается то, что на Видео 1. Плата запитана от источника постоянного тока напряжением 24В и максимальным током 6А. Для запитки использован 3-амперный регулятор напряжения, собранный на LM2596, но можно обойтись и без него, подойдет обычный трансформатор, у которого на вторичной обмотке от 19 до 24 В.
А теперь – чуть более сложное устройство – модель светофора. Хотя, честно сказать данная плата может управлять и полноценным светофором. На дорогах общего пользования, его, конечно не поставишь, но в какой-нибудь автошколе – вполне. Светофор был спаян из светодиодов, которые удалось собрать «по закромам», по этому и неравномерная яркость свечения по разным цветам.

void setup() { 
pinMode(2, OUTPUT);// Красный свет продольный
pinMode(3, OUTPUT);// Желтый свет продольный
pinMode(4, OUTPUT);// Зеленый свет продольный
pinMode(5, OUTPUT);// Красный свет поперечный
pinMode(6, OUTPUT);// Желтый свет поперечный
pinMode(7, OUTPUT);}// Зеленый свет поперечный
void loop() {
digitalWrite(2, HIGH);// Красный свет продольный включен
digitalWrite(7, HIGH);// Зеленый свет поперечный включен
delay(9000);
digitalWrite(2, LOW);// Красный свет продольный выключен мигание
digitalWrite(7, LOW);// Зеленый свет поперечный выключен мигание
delay(400);
digitalWrite(2, HIGH);// Красный свет продольный включен мигание
digitalWrite(7, HIGH);// Зеленый свет поперечный включен мигание
delay(400);
digitalWrite(2, LOW);// Красный свет продольный выключен мигание
digitalWrite(7, LOW);// Зеленый свет поперечный выключен мигание
delay(400);
digitalWrite(2, HIGH);// Красный свет продольный включен мигание
digitalWrite(7, HIGH);// Зеленый свет поперечный включен мигание
delay(400);
digitalWrite(3, HIGH);//Желтый свет продольный включен
digitalWrite(6, HIGH);//Желтый свет поперечный включен
digitalWrite(2, LOW);// Красный свет продольный выключен
digitalWrite(7, LOW);// Зеленый свет поперечный выключен
delay(1500);
digitalWrite(3, LOW);//Желтый свет продольный выключен мигание
digitalWrite(6, LOW);//Желтый свет поперечный выключен мигание
delay(400);
digitalWrite(3, HIGH);//Желтый свет продольный включен мигание
digitalWrite(6, HIGH);//Желтый свет поперечный включен мигание
delay(400);
digitalWrite(3, LOW);//Желтый свет продольный выключен
digitalWrite(6, LOW);//Желтый свет поперечный выключен
digitalWrite(4, HIGH);// Зеленый свет продольный включен
digitalWrite(5, HIGH);// Красный свет поперечный включен
delay(9000);
digitalWrite(4, LOW);// Зеленый свет продольный выключен мигание
digitalWrite(5, LOW);// Красный свет поперечный выключен мигание
delay(400);
digitalWrite(4, HIGH);// Зеленый свет продольный включен мигание
digitalWrite(5, HIGH);// Красный свет поперечный включен мигание
delay(400);
digitalWrite(4, LOW);// Зеленый свет продольный выключен мигание
digitalWrite(5, LOW);// Красный свет поперечный выключен мигание
delay(400);
digitalWrite(4, HIGH);// Зеленый свет продольный включен мигание
digitalWrite(5, HIGH);// Красный свет поперечный включен мигание
delay(400);