В этой статье мы рассмотрим создание на основе платы Arduino и микросхемы LM338 источника регулируемого напряжения питания, который будет обеспечивать на своем выходе постоянное напряжение от 0 до 24 В с максимальным током до 3 ампер.
Большинство подключаемых к платам Arduino датчиков обычно запитываются от таких напряжений как 3.3В, 5В или 12В. Датчики обычно потребляют ток около нескольких миллиампер. Но вместе с тем в схемах на Arduino могут использоваться сервомоторы и электродвигатели постоянного тока, работающие от напряжения 12В или выше и требующие больших значений токов. Поэтому мы и выбрали для нашей схемы верхнюю границу напряжения 24 В (на практике удается добиться не более 22.2В) и тока в 3 А.
Напряжение на выходе схемы регулируется с помощью потенциометра, а значение напряжения высвечивается на экране жидкокристаллического (ЖК) дисплея. Все эти процессы управляются платой Arduino Nano. Также на нашем сайте рассмотрен более простой регулятор напряжения на основе платы Arduino.
Необходимые компоненты
- Плата Arduino Nano (купить на AliExpress).
- Трансформатор 24V 3A.
- Dot board (точечная доска (плата)).
- Стабилизатор тока LM338K.
- Диодный мост 10A.
- ЖК дисплей 16х2 (купить на AliExpress).
- Резисторы 1 кОм и 220 Ом (купить на AliExpress).
- Конденсаторы 0,1 мкФ и 0,001 мкФ (купить на AliExpress).
- Регулятор напряжения 7812 (купить на AliExpress).
- Потенциометр 5 кОм (купить на AliExpress).
- Berg stick (Female) (коннектор типа «мама»).
- Контактная колодка.
Реклама: ООО «АЛИБАБА.КОМ (РУ)» ИНН: 7703380158
Принципы работы проекта
Проектируемый нами источник напряжения будет преобразовывать переменное напряжение в постоянное и регулировать его в соответствии с необходимым уровнем. Наш источник напряжения содержит понижающий трансформатор на 24V 3A — полученное с его выхода переменное напряжение затем выпрямляется с помощью диодного моста. Уровень выпрямленного (постоянного) напряжения регулируется с помощью стабилизатора тока LM338K и управляется с помощью потенциометра. Плата Arduino и ЖК дисплей запитываются от напряжения, получаемого с выхода регулятора напряжения 7812.
Подключение платы Arduino и ЖК дисплея
Подключение ЖК дисплея к плате Arduino рассмотрено в следующей статье на нашем сайте. Здесь же мы кратко рассмотрим основы этого процесса. В этом проекте мы использовали плату Arduino Nano поскольку она достаточно компактная и ее легко поместить на плату.
Итак, на этом этапе нам потребуются комплектующие, показанные на следующем рисунке.
Точечная плата в дальнейшем будет использоваться для размещения на ней всех элементов нашего проекта. Рекомендуется для крепления платы Arduino Nano использовать коннектор типа «мама» чтобы ее после этого можно было повторно использовать. Также работу схему вначале можно проверить на макетной плате (рекомендуется для начинающих) и только потом переносить ее на точечную плату. Схема соединений ЖК дисплея с платой Arduino и с источником питания показана на следующем рисунке – не переживайте что на нем изображена плата Arduino Uno, для используемой нами платы Arduino Nano соединения будут аналогичными.
После того как все эти соединения будут сделаны вы можете загрузить в плату Arduino ниже приведенный текст программы чтобы протестировать работу получившейся схемы.
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int a =5;
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(a);
}
Этот код проверяет работу ЖК дисплея, подключенного к плате Arduino. Если он все таки не заработал, то рекомендуется сделать следующие вещи:
- Проверить объявления контактов в программе.
- Напрямую заземлить 3-й (VEE) и 5-й (RW) контакты вашего ЖК дисплея.
- Проверьте правильность подключения контактов вашего ЖК дисплея, у некоторых ЖК дисплеев расположение контактов может отличаться.
Если программа успешно работает, то результат ее работы должен выглядеть так как на представленном рисунке. Для проверки работы приведенного кода мы запитали плату Arduino с помощью USB кабеля, но в дальнейшем ее питание будет производиться от регулятора напряжения. Для этого рекомендуется сделать распайку как на приведенном рисунке.
Мы использовали в данном проекте точечную плату чтобы максимально удешевить стоимость нашей конструкции, в дальнейшем, при желании вы можете реализовать этот проект на печатной плате.
Работа схемы
Поскольку в нашей схеме мы будем иметь дело с достаточно большими токами и напряжениями, то желательно прежде чем подавать на нее питание «прозвонить» все соединения в схеме (то есть проверить их связность) с помощью мультиметра.
Понижать напряжение с 220 В до 24 В мы будем с помощью понижающего трансформатора, рассчитанного на ток не менее 3A. Далее это напряжение поступает на мостовой выпрямитель (диодный мост). На выходе диодного моста мы получим постоянное напряжение в диапазоне 27-30 В (с учетом падения напряжения на диодах моста). Если вы достигли уже этой части схемы, то желательно сделать необходимые пайки на точечной плате и использовать соединительную коробку чтобы подключать к этой части другие элементы схемы.
Далее мы будем управлять выходным напряжением с помощью стабилизатора тока LM338K (обычно изготавливается в металлическом корпусе). Схема стабилизатора тока с использованием микросхемы LM338K приведена на следующем рисунке.
Значения сопротивлений R1 и R2 можно рассчитать исходя из формулы, приведенной на рисунке, для формирования нужного нам значения выходного напряжения. В нашем случае мы выберем R1=110 Ом и R2=5 кОм (потенциометр).
Теперь все, что нам осталось сделать, это запитать плату Arduino. Поскольку плата Arduino потребляет значительно меньший ток чем тот, который на выходе нашего стабилизатора тока, то для подачи питания на плату Arduino мы будем использовать микросхему 7812. На вход микросхемы 7812 будет поступать напряжение 24 В, а на ее выходе мы будем иметь напряжение 12 В, которое мы будем подавать на контакт Vin платы Arduino Nano. Не используйте вместо 7812 микросхему 7805 поскольку максимальное напряжение для нее составляет 24 В и поэтому мы ее можем сжечь.
Полная схема нашего устройства представлена далее — в разделе «усовершенствование схемы».
Как показано на схеме переменное напряжение от 1.5 до 24 В преобразуется в напряжение 0-4.5 В с помощью делителя напряжения поскольку плата Arduino на своих контактах может воспринимать только напряжения в диапазоне 0-5 В. Это напряжение подается на контакт A0, где и измеряется. Полный код программы и видео приведены в конце статьи.
На следующих рисунках приведен примерный вид получившегося устройства.
Моменты, на которые стоит обратить внимание
1. Будьте внимательны при пайке соединений чтобы не сжечь компоненты вашей схемы.
2. Обыкновенный припой не сможет выдержать ток 3A, что может привести к тому что он расплавится и в дальнейшем к короткому замыканию. Используйте толстые медные провода или больше свинца чтобы соединять дорожки как показано на рисунке.
3. Любое короткое замыкание или слабая пайка может привести к порче намотки трансформатора, поэтому внимательно проверьте все соединения мультиметром прежде чем подавать на схему питание. Для дополнительной защиты можете использовать плавкий предохранитель на входе схемы.
4. Стабилизаторы больших токов обычно поставляются в металлических корпусах, поэтому когда будете размещать его на точечной плате не помещайте его слишком близко к другим компонентам схемы поскольку на их корпусах может появляться выпрямленное напряжение – в дальнейшем это может привести к пульсациям напряжения.
Не припаивайте провода к металлическому футляру, вместо этого используйте небольшой винт как показано на приведенном рисунке.
5. Не удаляйте из схемы конденсаторы, предназначенные для фильтрации питающих напряжений, иначе это может привести к повреждению вашей платы Arduino.
6. Не перегружайте трансформатор током более 3A, остановите работу схемы если услышите шипящий звук из трансформатора. В целях безопасности желательно не оперировать с токами более 2.5A.
7. Проверьте напряжение на выходе 7812 перед тем как подсоединять ее к Arduino. Проверьте ее на перегрев во время первого запуска схемы. Если ее нагрев все таки происходит это значит что плата Arduino потребляет больший ток чем следует, для решения этой проблемы уменьшите интенсивность подсветки ЖК дисплея.
Усовершенствование схемы
Рассмотренный нами источник регулируемого напряжения питания имеет ряд проблем с точностью вследствие присутствия шума в выходном сигнале. Данный шум появляется из-за того, что мы используем аналого-цифровое преобразование при работе схемы. Эта проблема легко решается с помощью фильтра нижних частот, например RC фильтра. Поскольку на нашей точечной плате одновременно присутствуют и постоянный, и переменный токи, то и значение шума на выходе схемы будет больше обычного. Поэтому для фильтрации этого шума мы выбрали R=5.2 кОм и C=100 мкФ.
Также в схему добавлен датчик тока ACS712 чтобы измерять ток на выходе схемы. На следующем рисунке показано как его правильно подсоединить к плате Arduino.
Исходный код программы
Если у вас возникнут какие либо вопросы по тексту данной программы, то вы можете задать их в комментариях к данной статье.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
#include <LiquidCrystal.h> // библиотека для работы с ЖК дисплеем LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // контакты Arduino, к которым подключен ЖК дисплей void setup() { Serial.begin(9600); lcd.begin(16, 2); // устанавливаем количество столбцов и строк ЖК дисплея lcd.setCursor(0, 0); lcd.print("RPS"); lcd.setCursor(0, 1); lcd.print("-Circuit Digest"); // выводим сообщение на ЖК дисплей delay(2000); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Voltage = "); } int voltage; void loop() { int A1 = analogRead(A0); voltage = map(A1,0,1024,0,22); Serial.println(voltage); lcd.setCursor(10,0); lcd.print(voltage); delay(1000); } |