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

 
» » » Светодиодный драйвер на основе 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, светодиоды, светодиодная лента




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

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

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