цифровая электроника
вычислительная техника
встраиваемые системы

 
» » » Светодиодный драйвер на основе Arduino и полевых транзисторов своими руками

Светодиодный драйвер на основе Arduino и полевых транзисторов своими руками

Автор: Mike(admin) от 1-04-2019, 11:15

Драйвер светодиодной ленты на Arduino и MOSFET своими руками


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


Светодиодный драйвер на основе Arduino и полевых транзисторов своими руками

В этом материале вы узнаете, как создать собственный драйвер на основе Arduino и MOSFET (полевых транзисторов) для любого более мощного устройства, такого как светодиодная лента, двигатель постоянного тока высокой мощности и т. д. Здесь мы используем MOSFET для управления работой светодиодной ленты.


Схема, показанная на следующем рисунке, основана на плате Arduino Uno, транзисторах MOSFET и нескольких других компонентах. Схема разделена на две основные части: блок питания и блок управления.


Светодиодный драйвер на основе Arduino и полевых транзисторов своими руками

Цепь питания рассчитана на использование понижающего трансформатора и фиксированного стабилизатора напряжения на 12 В. Входное напряжение от сети переменного тока подается на первичную обмотку трансформатора, 15 В переменного тока имеется во вторичной цепи. Эти 15 В переменного тока выпрямляются с помощью мостового выпрямителя, созданного на основе четырех выпрямительных диодов, например, 1N4007. Этот выпрямленный постоянный ток фильтруется с использованием высокоэффективного электролитического конденсатора С1 (1000 мкФ) и подается на вход микросхемы стабилизатора напряжения 12В (MC7812ACTG). Сигнал 12В и 2А доступно на выходе 7812, и он подается на вывод питания светодиодной ленты.


Схема управления основана на плате Arduino Uno. Здесь мы используем три вывода ШИМ платы Arduino (контакты 5, 6 и 9, но вы можете использовать любой вывод ШИМ). Мы используем вывод ШИМ вместо обычного цифрового вывода, потому что МОП-транзистор является устройством контроля напряжения, то есть напряжение на затворе (G) определяет уровень проводимости. Контакт ШИМ может выдавать различное напряжение в диапазоне от 0 В до 5 В с шагом 255. Это необходимо для управления интенсивностью свечения светодиодов.


Схема драйвера рассчитана на три полевых МОП-транзистора для трех разных светодиодов (красный, зеленый и синий). Контакты Arduino 5, 6 и 9 подключены к трем затворам MOSFET-транзисторов, как показано на принципиальной схеме. Три отдельных резистора по 5,6 кОм заземляют вывод затвора всех этих MOSFET. Сток (S) всех этих полевых МОП-транзисторов заземлен там, где истоковый вывод каждого полевого МОП-транзистора соединен с другим светодиодом, как показано на принципиальной схеме. Для более эффективного рассеивания тепла при работе драйвера желательно использовать радиаторы.


Светодиодный драйвер на основе Arduino и полевых транзисторов своими руками

Код программы написан на C-подобном языке Arduino и скомпилирован с использованием Arduino IDE. Код очень прост, основная цель этого кода – подача переменного напряжения на затворы. Вы можете напрямую загрузить код и изменить его в соответствии с вашими требованиями.



int brightness = 255; // Максимальная яркость светодиода
// индивидуальные значения яркости для красного, зеленого и синего светодиодов
int gBright = 0; 
int rBright = 0;
int bBright = 0; 
int fadeSpeed = 10;
#define RED_LED 6
#define BLUE_LED 9
#define GREEN_LED 5
 
void setup() {
  // инициализируем вывод ШИМ для светодиодного выхода
  pinMode(GREEN_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  pinMode(BLUE_LED, OUTPUT);
}
 
// бесконечный цикл
void loop() {
  digitalWrite(GREEN_LED, HIGH);   //включить зеленый светодиод на максимум
  digitalWrite(RED_LED, HIGH);    // включить красный светодиод на максимум
  digitalWrite(BLUE_LED, HIGH);   // включить синий светодиод на максимум
  delay(5000);                       // подождать 5 секунд
digitalWrite(GREEN_LED, LOW);  // выключаем зеленый светодиод
  digitalWrite(RED_LED, LOW); // выключаем красный светодиод
  digitalWrite(BLUE_LED, LOW);// выключаем синий светодиод
  
// цикл, чтобы зажечь светодиод со скоростью затухания
for (int i=0;i<256; i++){
      
      analogWrite(RED_LED, rBright);
      rBright +=1;
      delay(fadeSpeed);
    }
    
    for (int i=0;i<256; i++){
      
      analogWrite(BLUE_LED, bBright);
      bBright += 1;
delay(fadeSpeed);
    }  
 
    for (int i=0;i<256; i++){
      
      analogWrite(GREEN_LED, gBright);
      gBright +=1;
      delay(fadeSpeed);
    } 
}



© digitrode.ru


Теги: Arduino, светодиоды, светодиодная лента



   Благодарим Вас за интерес к информационному проекту digitrode.ru.
   Если Вы хотите, чтобы интересные и полезные материалы выходили чаще, и было меньше рекламы,
   Вы можее поддержать наш проект, пожертвовав любую сумму на его развитие.


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

Комментарии:

Оставить комментарий