Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

Импульсный регулятор мощности на Ардуино

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

Управление большим током нагрузки аналоговым методом приводит к перегреву регулирующего элемента и к снижению коэффициента полезного действия (КПД) регулирующего прибора. А в некоторых случаях, например, при управлении яркостью свечения светодиодов, аналоговый метод регулирования оказывается не эффективным.

Для управление яркостью свечения ламп накаливания или светодиодных прожекторов, температурой паяльника и другими пассивными устройствами большой мощности предпочтительно использование регуляторов с широтно импульсной модуляцией (ШИМ). Предлагаем Вам познакомиться со схемой ШИМ регулятора мощности нагрузки с использованием Ардуино модуля.

Рис. 1. Принципиальная электрическая схема ШИМ регулятора мощности нагрузки с использованием Ардуино модуля.

ШИМ управление мощностью нагрузки с использованием микроконтроллеров AVR оправдано как экономически так и функционально. Экономически – так как микроконтроллеры AVR самые дешёвые. Функционально – на программируемых микроконтроллерах можно реализовать не только ручной режим управления, но и автоматический и полуавтоматический.

В  системе с ручным управлением мощностью нагрузки резистор  R1, см. рис. 1 является задатчиком, с его помощью мы задаём электрическую мощность в нагрузке, а микроконтроллер, изменяя ширину импульсов на выходе D9 меняет среднее напряжение и ток в нагрузке. Так как мощности выходов микроконтроллера недостаточно для подключения нагрузки, например лампочки, мы подключаем лампочку через мощный транзистор Q1. Использование транзистора, работающего в ключевом режиме, на выходе нашей схемы позволяет нам запитать нагрузку более высоким напряжением +Vcc. Например, если в качестве нагрузки мы используем автомобильную лампочку на 12 Вольт, мы можем запитать нашу схему через клемму +Vcc напряжением 12 Вольт. Напряжение питания для платы Arduino понижает до +9 Вольт транзистор Q2.

В полу-автоматической системе управления мощностью нагрузки резистором R1, см. рис. 1, выставляют задание, а дополнительные датчики, подключаемые к аналоговым входам микроконтроллера непрерывно измеряют регулируемые параметры системы. Микроконтроллер, при этом, поддерживает неизменным заданный человеком параметр, увеличивая или уменьшая ширину импульсов на выходе D9.

Например, ваша схема предназначена для поддержания заданной температуры жала паяльника. В ручном режиме в можете задать максимальную температуру жала, но как только вы прикоснётесь жалом паяльника к металлу, температура жала упадёт. В системе с ручным управлением нет обратной связи. Микроконтроллер не имеет информации о реальной температуре. В полуавтоматической системе в качестве датчика мы подключим датчик температуры. Теперь, микроконтроллер будет сравнивать реальную температуру жала паяльника с заданной с помощью резистора R1. У микроконтроллера в полуавтоматической системе появилась возможность поддерживать заданную температуру при изменяющихся внешних условиях.

В автоматической системе, вместо резистора R1 можно подключить к микроконтроллеру датчик, а микроконтроллер сможет автоматически поддерживать заданный в программе параметр.

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

На схеме рис. 1 транзистор Q2 включён по схеме эмиттерного повторителя и снижает напряжение питания 12 В до 7,5 В для питания платы Arduino.

#define led 9
#define pot A0
void setup()
{
  pinMode(led, OUTPUT);
  pinMode(pot, INPUT);
  int x;
  x = analogRead(pot) / 4;
  for (int i = 0; i < x; i++) {
    analogWrite(led, i);
    delay(50);
  }
}
void loop()
{
  int x;
  x = analogRead(pot) / 4;
  analogWrite(led, x);
  delay(20);
}

Рис. 2. Программа

Источник тока управляемый Arduino — StopTest.ru

// Arduino NANO V3, Atmega 328P,  robotdyn.com

//Барт Дмитрий, Stoptest.ru, апрель 2018

/******************************************/

#include <MsTimer2.h>        // библиотека для конфигурирования аппаратного прерывания от Таймера 2  

#include <OneWire.h>         // библиотека для управления устройствами по Протоколу 1-Wire (DS18B20)

OneWire DS18B20(11);             // подключаем датчик к выводу 11 платы

#define POWER_MODE 0             // режим питания датчика DS18B20 (0 значит с внешним питанием)

#define TEMP_MEASURE_PERIOD 200  // период измерения температуры с учетом коэффициента 10 (200 - значит 2000 мс)

#define ALARM_TEMPERATURE 50     // температура включения аварийного звукового сигнала

#define COOLER 6                 // обозначим вывод, управляющий вентилятором

#define COOLER_START 35          // температура включения вентилятора

#define COOLER_STOP 30           // температура вЫключения вентилятора

#define CRYSTAL_TEMP_LIMIT 175   // максимально-допустимая температура кристалла транзистора

#define JUNCTION_TO_SINK 4       // тепловое сопротивление кристал-радиатор, градус/Ватт, с учетом теплопроводящей прокладки

 

#define LED_GREEN 3              // обозначим вывод платы, управляющий зеленым светодиодом

#define LED_YELLOW 4             // обозначим вывод платы, управляющий желтым светодиодом

#define RELAY 12                 // обозначим вывод платы, управляющий реле

#define BEEP 5                   // обозначим вывод платы, управляющий излучателем звука

 

#define CHANNEL_A1 2             // обозначим аналоговый вход платы, который измеряет напряжение канала А1

#define CHANNEL_A2 1             // обозначим аналоговый вход платы, который измеряет напряжение канала А2

#define CHANNEL_B1 0             // обозначим аналоговый вход платы, который измеряет напряжение канала В1

 

#define A 10                     // определяем: канал А управляется ШИМ с вывода 10 платы Arduino Nano

#define B 9                      // определяем: канал B управляется ШИМ с вывода 9 платы Arduino Nano

 

#define CURRENT_PULSE 1          // задаем значение тока в импульсе для проверки скорости установления тока

 

uint8_t symbol, temperature;        // переменные типа uint8_t (значения от 0 до 255)

uint16_t timeCount,

timeCount1, timeCount2;             // счетчики времени с шагом 10 мс

boolean sensStatFlag, showTemp,

beepOn, beepFlag, alarmTempFlag,

currentPulseOn, currentFlag,

checkFlag, alarmCrystalFlag;        // логические переменные

float Ua1, Ua2, Ub1, current;   // переменные типа float для чисел с плавающей точкой

byte data[9];                       // массив для размещения девяти байт из памяти датчика DS18B20

 

float currentCheck[2],

crystalPower[2], crystalTemp[2];    // задаем массивы для хранения соответствующих значений по двум каналам

                      

void setup() {  

  Serial.begin(115200);                 // инициализируем работу с монитором порта в Arduino IDE

  TCCR1A = TCCR1A & 0xe0 | 1;           // устанавливаем режим ШИМ 82 кГц

  TCCR1B = TCCR1B & 0xe0 | 0x09;        

  analogWrite(B, 0);                    // ШИМ на выводе 9 (канал B), начальное значение ноль

  analogWrite(A, 0);                    // ШИМ на выводе 10 (канал А), начальное значение ноль

  pinMode(COOLER, OUTPUT);

  pinMode(LED_GREEN, OUTPUT);

  pinMode(LED_YELLOW, OUTPUT);

  pinMode(RELAY, OUTPUT);

  pinMode(BEEP, OUTPUT);

  MsTimer2::set(10, timerInterrupt);    // обозначим прерывания по таймеру с периодом 10 мс и обработчиком timerInterrupt

  MsTimer2::start();                    // разрешение прерывания

  analogReference(INTERNAL);            // задаем опорное напряжение АЦП:

}                                       // INTERNAL-1.1V (внутреннее), DEFAUL-5V(от питания), EXTERNAL-внешнее

 

 

void serialEvent()  {                          // функция вызывается при вводе любых символов в монитор порта Arduino IDE

  symbol = Serial.read();                      // значение кода ASCII, введенного символа, присваиваем переменной symbol

  

  if ((symbol==43)&(currentPulseOn==0)) {      // символ '+' увеличивает ток при каждом вводе на 0.1 А

    current = current + 0.1;                   // увеличиваем ток на 0.1 А

      if (current > 4.9) {                     // не позволяем задать ток более 4.9 А

        current = 4.9;

        Serial.println("Ток не может быть БОЛЬШЕ 4.9 АМПЕР");

      }

      else {

        Serial.print("Установленный ток: ");

        Serial.print(current,1);               // выводим задаваемый ток в монитор порта Arduino IDE

        Serial.println(" А;");

        currentSet(A, current);                // вызываем функцию установки тока в канале А

        currentSet(B, current);                // вызываем функцию установки тока в канале В

      }

  }

  if ((symbol==45)&(currentPulseOn==0)) {      // символ '-' уменьшает ток при каждом вводе на 0.1 А

    current = current - 0.1;                   // уменьшаем ток на 0.1 А

      if (current < 0) {                       // не позволяем задать ток менее 0 А

        current = 0;

        Serial.println("Ток не может быть МЕНЬШЕ НУЛЯ");

      }

      else {

        Serial.print("Установленный ток: ");

        Serial.print(current,1);

        Serial.println(" А;");

        currentSet(A, current);

        currentSet(B, current);

      }

  }

  if ((symbol >= 48)&(symbol < 53)&(currentPulseOn==0)) {      // устанавливает ток грубо цифрами на клавиатуре от 1 до 4

    current = symbol - 48;                                        

    Serial.print("Установленный ток: ");

    Serial.print(current,1);

    Serial.println(" А;");

    currentSet(A, current);

    currentSet(B, current);

  }

  if (symbol==116) {                           // используем символ "t" - команда на вывод температуры радиатора в монитор порта

    showTemp = 1;                              // устанавливаем флаг процедуры вывода температуры

    Serial.println("ВНИМАНИЕ. Включено отображение температуры радиатора");

  }  

  if (symbol==117) {                           // символ "u", однократно измеряем напряжение в канале А по двум цепям и в канале B

    Ua1 = ReadVoltage(CHANNEL_A1);

    Ua2 = ReadVoltage(CHANNEL_A2);

    Ub1 = ReadVoltage(CHANNEL_B1);

    Serial.print("Напряжение в канале А1: ");

    Serial.print(Ua1,2);

    Serial.println(" В");

    Serial.print("Напряжение в канале А2: ");

    Serial.print(Ua2,2);

    Serial.println(" В");

    Serial.print("Напряжение в канале В1: ");

    Serial.print(Ub1,2);

    Serial.println(" В");

  }

  if (symbol==103) {                                     // символ "g", включаем зеленый светодиод

    digitalWrite(LED_GREEN,1);                          

    Serial.println("Включен зеленый светодиод");

  }

  if (symbol==121) {                                     // символ "y", включаем желтый светодиод

    digitalWrite(LED_YELLOW,1);                          

    Serial.println("Включен желтый светодиод");

  }

  if (symbol==114) {                                     // символ "r", включаем реле

    digitalWrite(RELAY,1);                              

    Serial.println("Включено Реле");

  }

  if (symbol==98) {                                      // символ "b", включаем прерывистый звуковой сигнал

    beepOn = 1;                                          // устанавливаем флаг для режима звукового сигнала

    Serial.println("Включен прерывистый звуковой сигнал");

  }

  if (symbol==112) {                                     // символ "p", включаем пульсирующий ток для тестирования

    currentPulseOn = 1;                                  // устанавливаем флаг для режима пульсирующего тока

    current = 0;                                         // сбрасываем переменную ручной установки тока

    Serial.println("Включен режим пульсирующего тока в каналах А и В.");

    Serial.print("Ток в импульсе: ");

    Serial.print(CURRENT_PULSE);

    Serial.println(" А");

    Serial.println("Период импульсов 20 мс");

  }

  if (symbol==115) {                                     // символ "s" останавливает все процедуры, кроме защитных

    showTemp = 0;                                        // прекратить вывод температуры радиатора

    beepOn = 0;                                          // прекратить подачу звуковых сигналов

    currentPulseOn = 0;                                  // прекратить работу в импульсном режиме

    current = 0;                                         // сбрасываем переменную ручной установки тока

    currentSet(A, current);                              // установить нулевой ток в канале А

    currentSet(B, current);                              // установить нулевой ток в канале B

    digitalWrite(LED_GREEN,0);

    digitalWrite(LED_YELLOW,0);

    digitalWrite(RELAY,0);

    Serial.println("ВСЕ режимы отключены.");

  }  

}

 

void loop() {  

                                            

  if (sensStatFlag==0) {                     // флаг статуса датчика температуры, если 0 то датчик готов к процессу преобр.температуры

    DS18B20.reset();                         // инициализация датчика

    DS18B20.write(0xCC, POWER_MODE);         // 0xCC - команда пропуск ROM так как датчик один

    DS18B20.write(0x44, POWER_MODE);         // 0х44 - команда на выполнение преобразования температуры

    sensStatFlag = !sensStatFlag;            // установим флаг, запущен процесс преобразования температуры, к датчику обращаться нельзя

    timeCount = 0;                           // начинаем отсчет времени, счетчик установлен в обработчике прерывания, считает по 10 мс

  }

  if (timeCount >= TEMP_MEASURE_PERIOD) {    // условие, выполняющееся если прошел период времени, превышающий TEMP_MEASURE_PERIOD  

    DS18B20.reset();                         // инициализация датчика

    DS18B20.write(0xCC, POWER_MODE);         // команда пропуск ROM так как датчик один

    DS18B20.write(0xBE, POWER_MODE);         // 0хBE - команда чтения памяти

    DS18B20.read_bytes(data, 9);             // читаем девять байт из памяти датчика побайтно и сохраняем в массив data

    int16_t raw = (data[1]<<8)|data[0];      // обработка байтов регистра измер-ой темп-ры (операция сдвига, операция ИЛИ)

    temperature = raw / 16;                  // преобразуем полученные данные в целое значение температуры в градусах Цельсия

    sensStatFlag = !sensStatFlag;            // сбросим флаг статуса датчика температуры, теперь он готов к следующему измерению  

      if (temperature >= COOLER_START) {    

        digitalWrite(COOLER,1);                         // включаем охлаждение

      }

      if (temperature < COOLER_STOP) {      

        digitalWrite(COOLER,0);                         // вЫключаем охлаждение

      }

      if (showTemp==1) {                                // выводим значения температур

        Serial.print("Температура радиатора: ");

        Serial.println(temperature,1);                  // выводим измеренную температуру радиатора в монитор порта

        

        Serial.print("Температура/мощность на кристалле A: ");

        Serial.print(crystalTemp[1],1);               // выводим рассчитанную температуру кристалла транзистора в монитор порта

        Serial.print(" / ");  

        Serial.println(crystalPower[1],1);            // выводим рассчитанную рассеиваемую мощность на транзисторе

        

        Serial.print("Температура/мощность на кристалле B: ");

        Serial.print(crystalTemp[0],1);

        Serial.print(" / ");  

        Serial.println(crystalPower[0],1);

        Serial.println();  

      }

  }

  if (temperature >= ALARM_TEMPERATURE) {               // если температура радиатора превышает критическую

    currentSet(A, 0);                                   // отключаем ток в канале А

    currentSet(B, 0);                                   // отключаем ток в канале В

    beepOn = 1;                                         // включаем звуковой сигнал

    alarmTempFlag = 1;                                  // устан. флаг, показывающий что произошел перегрев радиатора

    

  }

  else if ((temperature < ALARM_TEMPERATURE)&(alarmTempFlag == 1)) {  // если темп. радиатора снизилась до безоп. значения

    beepOn = 0;                                                       // отключаем звуковой сигнал  

    alarmTempFlag = 0;    

  }

}

void  timerInterrupt() {                                // обработчик прерывания с периодом 10 мс

   timeCount++;                                         // счетчик    

   timeCount1++;                                        // еще один счетчик  

   timeCount2++;                                        // еще один счетчик

  

   //*** защита от превышения допустимой мощности на транзисторе, расчитывается каждые 20 мс на каждом транзисторе

   checkFlag = !checkFlag;                              // каждые 10 мс переменная меняет свое значение на противоположное (0 или 1)

   crystalPower[checkFlag] =                            // вычислим рассеиваемую мощность на кристалле

   currentCheck[checkFlag] * ReadVoltage(checkFlag*2);

   crystalTemp[checkFlag] =                             // выислим температуру кристалла

   JUNCTION_TO_SINK * crystalPower[checkFlag] + temperature;

  

   if (crystalTemp[checkFlag] > CRYSTAL_TEMP_LIMIT ) {  // если превышена рассчетная температура кристалла транзистора

     currentSet(A, 0);                                  // отключаем ток в канале А

     currentSet(B, 0);                                  // отключаем ток в канале В

     beepOn = 1;                                        // включаем сигнал аварии

     alarmCrystalFlag = 1;                              // устанавливаем флаг превышения температуры кристалла транзистора

     timeCount2 = 0;                                    // обнуляем счетчик для отсчета времени работы аварийного сигнала

     showTemp = 0;                                      // прекратить периодический вывод температуры

     current = 0;                                       // сбрасываем переменную ручной установки тока

     Serial.println("ВНИМАНИЕ. Превышение допустимой мощности на транзисторе");

     Serial.print("Температура/мощность на кристалле: ");

     Serial.print(crystalTemp[checkFlag],1);

     Serial.print(" / ");  

     Serial.println(crystalPower[checkFlag],1);  

   }

   else if ((crystalTemp[checkFlag] < CRYSTAL_TEMP_LIMIT)&(alarmCrystalFlag == 1)&(timeCount2 > 500)) {

     beepOn = 0;

     alarmCrystalFlag = 0;

   }

    

   //*** прерывистый звуковой сигнал

   if (beepOn==1) {

     if (timeCount1 > 10) {

      timeCount1 = 0;

      beepFlag = !beepFlag;

      digitalWrite(BEEP,beepFlag);          // формируем прерывистый звуковой сигнал  

     }

   }

   else {

     digitalWrite(BEEP,0);                  // выключаем прерывистый звуковой сигнал

   }

  

   //*** режим импульсного тока

   if (currentPulseOn==1) {                            // проверка скорости установки тока, проверяем на осциллографе

     currentFlag = !currentFlag;

     currentSet(A, CURRENT_PULSE * currentFlag);  // период следования импульсов тока 20 мс

   }

}

 

float ReadVoltage(int pin){           // функция измерения напряжения с усреднением 20, в функцию передаем необходимый вход АЦП

  uint8_t n;

  float averageU, sumU, k;

    for (n = 0; n < 20; n++)  {

      sumU+=analogRead(pin);

    }  

    switch (pin)  {                   // из-за разброса параметров резистивных делителей используем разные поправочные коэффициенты

      case 0:      

        k = 0.01730;                  // коэффициент для измеренного напряжения в канале В1 (на выводе А0 платы Arduino)

        break;

      case 1:

        k = 0.01723;                  // коэффициент для измеренного напряжения в канале А2 (на выводе А1 платы Arduino)

        break;

      case 2:

        k = 0.01728;                  // коэффициент для измеренного напряжения в канале А1 (на выводе А2 платы Arduino)

        break;

    }

  averageU = k * sumU/20;

  return averageU;                    // функция возвращает измеренное усредненное значение напряжения

}

void currentSet(int channel, float cur) {  // функция установки тока, передаем ей канал и необходимый ток в данном канале

  analogWrite(channel, cur*51.0);

  currentCheck[channel-9] = cur;           // передаем текущий установленный ток в массив значений токов поканально для проверки

}

Радиоконструктор RP216.1 Регулятор мощности 1 кВт 220 В

Печатная плата с компонентами и инструкцией в упаковке.


  Набор предназначен для изготовления регулятора мощности. Устройство может использоваться для регулировки мощности нагревательных, осветительных приборов, асинхронных электродвигателей переменного тока, мощность которых не превышает 1 000 Вт.

Принципиальная схема

  Устройство состоит из симистора и времязадающей цепочки. Принцип регулировки мощности заключается, в изменении продолжительности времени включённого симистора (смотри диаграмму), чем больше время открытого симистора, тем больше мощность потребляемая нагрузкой. А так как симистор выключается в момент когда ток протекающий через симистор равен нулю, то задавать продолжительность открытия симистора будем в пределах половины периода.
  В начале положительного полупериода симистор закрыт. По мере увеличения сетевого напряжения, конденсатор С1 заряжается через делитель R1, R2. Заряд конденсатора продолжается до тех пор, пока напряжение на нём не достигнет порога «пробоя» динистора (около 32 В). Динистор замкнёт цепь D1-C1-D3 и откроет симистор U1. Симистор остаётся открытым до конца полупериода. Время зарядки конденсатора задаётся параметрами цепочки R1-R2-C1.
  Резистором R2 задаём время зарядки конденсатора, соответственно момент открытия динистора и симистора. Т.е. этим резистором производится регулировка мощности. При действии отрицательной полуволны принцип работы аналогичен.
  Светодиод LED индицирует рабочий режим регулятора мощности.

Схема расположения элементов
 
Временная диаграмма напряжения на симисторе

 Характеристики:
  • Рабочее напряжение: 160...300 В;
  • Диапазон регулировки мощности: 10…90 %;
  • Максимальный ток нагрузки: До 5 А.

 Комплект поставки:
  • Плата печатная;
  • Набор радиодеталей;
  • Инструкция по эксплуатации.

 Примечания:
  • Правильно собранная схема наладки не требует.
  • При использовании нагрузки мощностью более 300 Вт, симистор необходимо установить на радиатор (в комплект набора не входит).
  • На переменный резистор необходимо установить ручку из изолированного материала (входит в комплект набора).
  • ВНИМАНИЕ! Устройство гальванически не развязано от сети! Запрещается прикасаться к элементам включённой схемы!

Первая партия модулей для любителей электроники

26.07.2017

Из производства поступила первая партия модулей для любителей электроники. Это наш первый шаг в большом направлении – DIY электроники!

Все изделия выпущены под грифом – Open Source Hardware и атрибутом Share Alike. Вы прошли с нами весь путь от проекта до производства и поэтому мы разрешаем вам копировать, распространять, воспроизводить и перерабатывать наши разработки при условии указания разработчика - «Центр разработок электронных войск».  С файлами проектов вы можете ознакомиться в разделах «Техническая документация» для каждого модуля.

Теперь подробнее:

  • Бузина – Клон платформы Arduino Nano. Оцените дизайн
  • Ваниль - Клон платформы Arduino Uno. Расширенная 140% версия Uno
  • Верба - Программатор для Arduino и платформа Uno в одном изделии. Только у нас
  • PCB Ruler IIa - Карточная лаборатория. MyOpenLab. USB осциллограф, анализатор логического уровня, тестер, записная книжка ... И всё это размером кредитной карточки
  •  RDC2-0015A - Преобразователь уровней напряжения. 4 в 1. Незаменимая вещь для начинающих и профессионалов
  • TM4PA - Усилитель НЧ класса D, 40Вт. TPA3106D. Без комментариев
  • TM10PA - Светодиодный 5-ти полосный анализатор спектра на быстром преобразовании Фурье. Очень эффектный индикатор аудио и не только сигналов
  • TM7KA - Светодиодный стрелочный индикатор уровня. Более точное название – псевдострелочный  VU-meter
  • TM7PA - Светодиодный линейный двухканальный индикатор уровня. Компактные стереосистемы без него не делают
  • RDC1-0018a - Регулятор мощности на симисторе BTA41-600 и микросхеме К1182ПМ1Р. Для работ по созданию интимного освещения в спальне
  • RDC1-0009A – Цифровое светодиодное сердце. Оригинальный подарок электронщика. Оно бьется. Ардуинщики легко добавят свои эффекты

Ещё для ваших собственных проектов или ремонта мы прошили загрузчиками микроконтроллеры ATmega:

Это только начало. В сентябре 2017 ждем продолжение. Во второй партии будет клон платформы Arduino mini, программируемые регулятор мощности и пару усилителей класса D.

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

Все предложения и замечания по этому направлению отправляйте на [email protected]

MCSofA. Вместо введения — diyAudio.by

Всегда с восхищением и немного с завистью смотрел на людей, которые занимаются разработкой электроники на микроконтроллерах. Сам неоднократно предпринимал попытки изучить программирование микроконтроллеров, однако дальше, чем помигать светодиодом, подергать сервомашинкой и повращать шаговым двигателем, процесс почему-то не шёл. Ну неинтересно мне просто сидеть и разбирать чей-то исходник. Гораздо важнее и интереснее поставить глобальную задачу и начать с ней разбираться. Очень долго в голове крутилась идея собрать робота-гексапода, но идея так и осталась идеей, потому как практического применения, кроме как “поиграться”, для гексапода я придумать не смог. Да и очень хотелось связать микроконтроллеры с аудио тематикой.

И вот надо было доработать один из усилителей. По сути добавить релейный регулятор громкости, селектор входов и плату с реле для подачи / отключения питания. С пультом ДУ, естественно. В сети достаточно много устройств и конструкций на МК, хороших и не очень, заточенных под аудио тематику. Всевозможные селекторы входов, никитинские регуляторы громкости с ДУ и без с разными вариантами индикации. Многие из этих проектов — коммерческие, “Buy&Use”, некоторые морально устаревшие, на старой элементной базе. Изрядно полазив по сети, моё внимание привлекли вот эти проекты:

Можно было бы поступить просто — купить готовое устройство, однако решил попробовать сделать самому, с нуля, а заодно и разобраться, наконец, с микроконтроллерами. Таким образом и появился проект под названием MCSofA — Microprocessor Control System of Amplifier — Микропроцессорная система управления усилителем (название потянуто у Михаила, не сочтите, пожалуйста, за плагиат)

Цели следующие:

  • сделать Open Source проект, с открытым исходным кодом, схемами и чертежами плат

  • научится работать с системой контроля версий, например с GitHub

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

Функционально все устройства, подключаемые к плате управления (Main unit) , можно разделить на 4 части: исполнительные, индикация, управление, сервисные. Некоторые устройства можно подключать и использовать совместно (например, модуль софт старта + селектор входов + релейный аттенюатор), некоторые — нет (например, нет смысла выводить на переднюю панель управление с кнопок и энкодеров одновременно). Часть устройств выполнено в виде печатных плат, часть (кнопки, регуляторы) просто подключаются проводами к плате управления.

Кратко рассмотрим каждый девайс — назначение, применение, устройство. Многое и так понятно опытным технарям, достаточно просто взглянуть на картинку, но я разжую, уж простите за скрупулезность. Начнём с периферии, а о контроллере расскажу в конце статьи.

Исполнительные устройства:

  • I/O Selector — плата коммутации входов / выходов. Позволяет подключить несколько источников сигнала к усилителю, а также раздать один из подключенных входов на несколько выходов. Вся коммутация происходит на реле, реле управляются связкой микросхем 74нс595 + uln2003a;

  • Relay Attenuator — плата никитинского регулятора громкости на реле. Должен уже быть у каждого на слуху, кто занимается аудио ) Реле управляются также связкой 74нс595 + uln2003a;

Индикация:

  • RGB LED — один или несколько RGB светодиодов. Один светодиод может использоваться для ндикации работы усилителя (в выключенном состоянии — горит красный светодиод, включаем усилитель — зеленый / синий). Несколькими светодиодами (линейкой) можно отображать текущий уровень громкости;

  • LED Display — модуль индикации на семисегментных светодиодных индикаторах. Отображение уровня громкости, отображение канала селектора сигналов при переключении и т.д. Тут на что фантазии хватит ). Управляем индикаторами с помощью 74нс595;

Элементы управления:

  • Mechanical Buttons — обычные механические кнопки, для вкл/выкл усилителя, регулировки громкости, переключения каналов;

  • Encoder — два инкрементальных механических энкодера, с кнопками. Это даст возможность реализовывать интересные алгоритмы управления громкостью, селектором и другими функциями усилителя;

  • Wafer Switch — галетный переключатель на 4-6 позиций. Будет такая возможность подключить галетник, для переключения каналов;

  • Variable resistor — подключение переменного резистора, для регулировки уровня громкости. Как раз можно использовать вариант “переменный резистор + галетник” для громкости и переключения каналов;

  • IR / Remote control — обычный ИК фотоприемник, для приёма сигналов с пультов ДУ. Исполнительным модулем его назвать сложно, но надо было куда-то определить его в структурной схеме ) На момент написания этих строк под рукой оказалось несколько датчиков серии TSOPxxxxx. Решено было поэкспериментировать с ними. Ну и пульт ДУ, естественно;

Сервисные:

  • Power On — плата с одним реле на борту и парой клеммников, для подачи сетевого напряжения на потребители. Плюс такого подхода в том, что для вкл/выкл усилителя можно использовать красивую слаботочную кнопку либо пульт ДУ;

  • Soft Start — плата с двумя реле. Функции такие же, как и у первого модуля, плюс ограничение тока заряда емкостей бп в момент включения. Скорее всего будет одна плата, на которой можно будет собрать либо просто подачу питания, либо софт старт;

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

Что касается платы МК (Main Unit), долго размышлял, на каком контроллере всё собирать. В итоге решил всё-таки на AVR. И более того, на платформе Arduino. Многие сейчас выскажут свое недоумение, кто-то, кто дочитал до этого места, и вовсе перестанет читать дальше и закроет статью. Однако, использовать Arduino меня подтолкнули следующие причины:

  • У меня лежит несколько Arduino платок — Arduino Pro Micro на ATmega32U4 и Arduino Uno R3 ATmega328p, с которыми я начал ковыряться до того, как сел писать ТЗ. С ними и буду продолжать ковыряться

  • Новичку будет гораздо проще разобраться в коде Arduino, изменить или написать под себя свою функцию / алгоритм

  • Никогда не поздно выкинуть ардукод и написать на нормальном человеческом Си, так что опытные комрады могут просто использовать плату МК как заготовку, переписав всё с нуля.

Далее подробно рассмотрим схемы вышеперечисленных устройств и разберём, что, как и чем будет управляться.

Arduino с нуля, часть 2

В части 1 я разбил схему на несколько подсистем, а здесь, во второй части, я собираюсь начать копаться в первой из них: стабилизаторе напряжения.

Создайте Arduino UNO R3 с нуля Содержание

Фон регулятора напряжения LDO

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

«LDO» означает «низкое падение напряжения», что означает, что входное напряжение может быть очень и очень близким к выходному напряжению. Очевидно, вы ничего не получаете бесплатно, а стоимость регулирования напряжения является частью самого напряжения, поэтому ваше входное значение всегда должно быть выше, чем выходное значение.Спецификация, которую вы ищете, будет, как вы уже догадались, выпадением напряжения. Существуют и другие важные характеристики, такие как максимальный ток, коэффициент подавления источника питания, подавление пульсаций, ток покоя и т. Д., Но большой папа спецификаций LDO - это падение напряжения. Остальные разберемся, если они возникнут во время проектирования.

В конце концов, вся подсистема LDO предназначена для работы с напряжением, подаваемым либо через разъем постоянного тока (большая пластиковая деталь на краю платы), либо через вывод V IN , как мы увидим.Другое дело, напряжение, которое вы получаете от USB-кабеля.

Подсистема регулятора напряжения

до

Так выглядит подсистема регулятора напряжения на официальной схеме…

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

Справа находится диод D1, который действует как диод защиты от обратного напряжения. Бородавки бывают двух видов, потому что Бог ненавидит нас и хочет, чтобы мы взорвали нашу электронику: положительное напряжение на внешней стороне вилки и заземление в середине или заземление на внешней стороне вилки и положительное напряжение в середине.Мне нужно будет подтвердить это, посмотрев техническое описание цилиндрического разъема, но я подозреваю, что он предназначен для подключения вилки с напряжением посередине. Если вы подключите неправильный тип, диод защиты от обратного напряжения предотвратит прохождение электричества в неправильном направлении, спасая ваш Uno от взрыва (до определенной степени). Обозначение «M7» на схеме означает, что это довольно стандартный выпрямительный диод 1N4007, только в корпусе для поверхностного монтажа.

После прохождения проверки диодов напряжение поступает на фактический линейный регулятор U1.Он указан как NCP117ST50T3G. Я раньше использовал NCP1117DT50 и не знаю, в чем разница между ними, но подозреваю, что они очень похожи, и, вероятно, разница только в физической форме. Для этого нужно посмотреть таблицу данных.

Вы увидите по обе стороны от U1 несколько конденсаторов: PC1, PC2 и C2. Это означает «поляризованный конденсатор» 1 и 2 и обычный керамический конденсатор C2. PC1 и PC2 - 47 мкФ, а C2 - 0,1 мкФ (100 нФ). Это очень типичная конфигурация для схемы стабилизации фиксированного напряжения.В переменных цепях также есть резисторы, которые позволяют настраивать выходное напряжение, но поскольку все, о чем это заботится, обеспечивает сверхчистые 5 В, все, что вы видите, - это конденсаторы. Они создают колодец электрического потенциала, который помогает поддерживать постоянное входное и выходное напряжение. По сути, это обходные заглушки. Большие, гудящие, обходные колпачки. Теперь, почему их ценности такие, какие они есть, это то, что, вероятно, станет ясно при просмотре таблицы данных NCP117.

Над двумя правыми крышками вы увидите линию +5 ​​В, которая становится основной шиной питания для всей платы Arduino.Везде, где вы видите «+ 5V» на схеме, все они соединены между собой как шина питания.

Последняя мелочь в подразделе схемы LDO - пара резисторов 1K, соединенных параллельно со светодиодом. Это светодиод, который загорается, когда что-то начинает подавать 5 В на плату, либо через выход регулятора напряжения, либо через USB-соединение. Если на шину 5V каким-то образом подается напряжение, этот светодиод загорается. Два резистора 1 кОм, включенные параллельно, образуют эквивалентное сопротивление 500 Ом (ищите основные «резисторы, включенные параллельно», если вы не знакомы с этим расчетом), ограничивая ток светодиода.Если вам интересно, «почему они просто не использовали один резистор», ну, у них была пара резисторов по 1 кОм, оставшаяся в одной из цепей резисторов, поэтому вместо того, чтобы тратить деньги на другую часть, они просто использовали то, что у них было . Это инженерное дело!


Подсистема регулятора напряжения

после

Вот как выглядит подсистема LDO после того, как я нарисовал ту же схему в KiCad.

Все детали были получены через parts.io и представляют собой лучший компромисс между низкой ценой и низким риском, которого я мог достичь.

Спецификация (csv): Arduino UNO R3 Clone From Scratch - Подсистема регулирования напряжения


Примечания к выбору деталей подсистемы регулятора напряжения

Домкрат ствольный

Самой первой деталью, которую я искал, был цилиндрический домкрат, обозначенный на официальной схеме как «DC21MMX». Дело в том, что единорог, насколько я могу судить, не существует на моем уровне покупки. Поэтому я выберу альтернативный цилиндрический домкрат с внешним диаметром 5 мм и внутренним диаметром 2,1 мм, который я использовал ранее от Würth Elektronik.Он будет совместим с большинством стенных бородавок, напряжением внутри, заземлением снаружи.

ИС линейного регулятора

Следующим камнем преткновения стал линейный регулятор. Номер детали, указанный в Arduino, NCP117ST50T3G, доступен, но отображается на сайте parts.io как компонент высокого риска с рейтингом риска 3,2. Мне нужно найти эквивалент, основанный на спецификации, но с гораздо меньшим риском. Использование поисковой системы parts.io и поиск микросхем линейных регуляторов с максимальным падением напряжения 1.2 В, имеется фиксированный положительный LDO 5 В с рейтингом риска 2 от ST Micro, LD1117S50TR. Если посмотреть на спецификации компонентов, то можно сказать, что это в значительной степени прямая замена, возможно, даже немного улучшенная обработка выпадающего напряжения и тока. В конце концов, он должен без вопросов принимать до 15 В, дать мне фиксированный выход 5,0 В, получить максимально возможное падение напряжения даже при высоком токе и быть в состоянии обеспечить до 500 мА (хотя это хорошо. выше всего, что мы хотели бы, чтобы uC попытался нарисовать). Подавление пульсаций и отказ от источника питания не так уж и важны, так как мощность уже должна поступать от обычно регулируемого источника - стенной бородавки.Я знаю, что это не гарантировано, но думаю, у нас все будет хорошо.

Диод защиты от обратного напряжения

Диод - это действительно стандартный выпрямительный диод с низким напряжением V FORWARD при низком токе, и поскольку максимальный ток, который мы потребляем, составляет 500 мА или меньше (надеюсь, намного меньше), V F ​​ никогда не поднимется слишком высоко. На самом деле мы говорим о необходимости терпеть обратное напряжение 15 В с каким-то скачком напряжения, кратным этому, если что-то подключается к сети, чего не должно быть.Эти дешевые диоды-выпрямители имеют уровни обратного напряжения примерно 500 или 800 В переменного или постоянного тока, так что все должно быть хорошо.

Входные / выходные конденсаторы регулятора

Подобрать правильные входные и выходные конденсаторы LDO было немного сложно. Нет никакого объяснения того, почему колпачки на Arduino имеют размер 47 мкФ, а в таблице данных для LD117S50TR не упоминается ничего, кроме «10 мкФ должно быть круто». Входной конденсатор просто предоставляет карман для запасных электронов ... кучу вольт, которую можно использовать при кратковременном падении напряжения питания.Выходной конденсатор образует петлю с внутренней схемой (мучительно подробно описанной в этом примечании к приложению Texas Instruments), а эквивалентное последовательное сопротивление (ESR) конденсатора является решающей спецификацией - в большей степени, чем значение емкости (хотя я бы не стал идти ниже 10 мкФ, который они перечисляют). В таблицах данных для компонентов, эквивалентных TI и ONSemiconductor, они оба заявляют, что ESR выходной конденсатора должно быть в пределах от 0,3 Ом до 22 Ом. Я подозреваю, что размер 47 мкФ не является чем-то особенным (возможно, была скидка на конденсаторы 47 мкФ в тот день, когда они приняли решение продолжить разработку), и все, что вам действительно нужно сделать, это установить правильное ESR.Я нашел хороший конденсатор емкостью 47 мкФ от Vishay на parts.io, MAL215371479E3, с ESR 0,5 Ом.

Подсистемы ядра

- понимание источника питания Arduino Uno

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

По теме:

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

Подсистему питания Arduino Uno можно разделить на две основные части. Первая часть - это система, которая генерирует напряжение 5 В, необходимое для работы микроконтроллера. А вторая часть - это система, которая управляет питанием, когда мы подключаем более одного входа питания к Arduino. (Да, Arduino можно запитать несколькими способами). Последняя система также отвечает за создание 3.Бортовое напряжение 3В.

Итак, две основные части

  1. Подсистема регулятора напряжения - Это часть, которая генерирует 5В.
  2. Подсистема управления несколькими входами - это часть, которая управляет несколькими входами.

Давайте взглянем на официальную схему, чтобы найти нашу подсистему питания Arduino Uno.

Схема блока питания Arduino (Нажмите, чтобы увеличить)

Начнем с первой части.

Подсистема регулятора напряжения Arduino Uno

Это часть подсистемы питания Arduino Uno, в которой вырабатывается стабильное и постоянное питание 5 В.Эти 5 В требуются микроконтроллеру, щитам Arduino и другим необходимым компонентам на плате.

Общие сведения об аппаратном обеспечении подсистемы регулятора напряжения

Питание 5 В производится стабилизатором напряжения с малым падением напряжения (LDO). Стабилизаторы напряжения принимают входной сигнал, понижают его и выдают стабильный выход постоянного тока. В процессе понижения разница между выходом и входом излучается в виде тепла в обычных регуляторах напряжения. Таким образом, мы должны учитывать эти потери при проектировании наших схем.

Но на Arduino Uno у нас есть стабилизатор напряжения с низким падением напряжения. Он рассеивает меньше энергии в виде тепла. Таким образом, мы можем получить результат, очень близкий к входному. По сути, вы можете получить выход 5 В, даже если на входе всего 6 В. Давайте посмотрим на схему этой подсистемы вместе с физически установленными положениями компонентов.

Подсистема регулятора напряжения с перекрестными ссылками на фактический компонент, размещенный на плате

Общие сведения о подключениях подсистемы регулятора напряжения Arduino Uno

Прямоугольный блок слева, обозначенный X1, представляет собой цилиндрический соединитель.Разъем цилиндра требует постоянного напряжения постоянного тока в диапазоне 6-12В. Соединитель цилиндра также должен иметь определенную полярность, как показано ниже. Центр должен быть положительным, а внешнее покрытие должно быть отрицательным, или, в нашем случае, GND. На вашем адаптере переменного / постоянного тока должен быть напечатан этот символ.

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

Мы можем получить доступ к питанию, которое мы вводим на X1 на вывод Vin на шине расширения питания. Вы можете использовать его для питания любых других внешних компонентов в вашем проекте.

Диод подключен к стабилизатору напряжения LDO. Стабилизатор напряжения преобразует входное напряжение в 5В. Впоследствии этот сигнал включает плату Arduino Uno. Сгенерированные здесь 5 В можно получить на контакте 5 В на шине расширения мощности.

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

Работа подсистемы регулятора напряжения Arduino Uno R3

Вход, подаваемый на цилиндрический соединитель, проходит вперед, только если полярность правильная, он доступен на Vin. По мере продвижения входной сигнал проходит через стабилизатор напряжения LDO и с помощью конденсаторов получается чистое и стабильное напряжение 5 В.Путь, по которому проходит напряжение, приложенное к цилиндрическому разъему

Давайте теперь перейдем ко второй части подсистемы питания Arduino Uno

Подсистема управления несколькими входами Arduino Uno

Если цилиндрический разъем подает питание на наш проект Arduino, и мы решаем обновить программу или получить некоторые значения от датчиков на нашем экране, мы можем просто подключить USB-кабель и сделать это, не снимая адаптер AC-DC.

За этой простотой использования функциональность заключается в очень интуитивно понятной схеме, которая за доли секунды принимает решение игнорировать питание от порта USB, сохранять свою линию передачи данных нетронутой и продолжать получать питание от цилиндрического разъема.

Очевидно, что Arduino Uno не может принимать оба входа. Потому что без какого-либо управления это привело бы к скачку напряжения. А это повредит плату. Таким образом, существует механизм отбора. Это подсистема управления несколькими входами. Подсистема управления несколькими входами связана с фактическим компонентом (операционный усилитель, силовой MOSFET Arduino и стабилизатор 3,3 В), размещенным на плате

Понимание аппаратного обеспечения подсистемы управления несколькими входами

Механизм выбора, описанный выше, основан на оборудовании.Мы используем компаратор, чтобы выбрать наиболее подходящий источник питания для платы. Компаратор на Arduino Uno (ИС) представляет собой цифровое электронное устройство, которое сравнивает два входа, а затем подает выходной сигнал либо на 5 В, либо на землю (в нашем случае).

Компаратор

Компаратор - это операционный усилитель, который сравнивает инвертирующий и неинвертирующий входы и пытается сбалансировать их. Это очень быстрая схема принятия решений. Учитывая символы операционного усилителя, показанные ниже. Если неинвертирующее напряжение больше, чем инвертирующее напряжение, выход переходит на + V.Если инвертирующее напряжение больше неинвертирующего напряжения, выход переходит на -V.

Какова функция полевого МОП-транзистора Arduino p?

Выход компаратора подключен к МОП-транзистору Arduino p. МОП-транзистор действует как переключатель. И в зависимости от выхода компаратора он принимает решение получить 5 В от компаратора или от линии питания USB.

Выход Arduino p MOSFET затем подключается к линии 5 В на выходе стабилизатора напряжения LDO (не показан на диаграмме выше) и к бортовой 3.Регулятор 3В.

Ниже мы увидим работу полевого МОП-транзистора и его роль в системе питания Arduino Uno.

Работа подсистемы управления несколькими входами

Компаратор имеет два входа. Вин от бочкового разъема и 3,3В от бортового регулятора напряжения. Vin перед подключением к компаратору проходит через цепь делителя напряжения. Схема делителя напряжения делит напряжение Vin ровно на половину его первоначального значения.

Итак, если Vin = 6V, то Vin на входе компаратора будет 3V. Если вы хотите получать питание от цилиндрического разъема, Vin должно быть больше 3,3 В, чтобы компаратор принял решение в его пользу. Следовательно, Vin должно быть не менее 6,6 В.

Если Vin> 3,3 В, компаратор переключается на 5 В и P-MOSFET Arduino выключается (разомкнутый переключатель), чтобы позволить току поступать через цилиндрический соединитель. Vin (неинвертирующий)> 3,3 В (инвертирующий). Следовательно, выход идет на + Vcc.

Если Vin <3.3 В, компаратор подключается к GND, и P-MOSFET включается (переключатель замкнут), чтобы обеспечить подачу питания через порт USB. Вин (неинвертирующий) <3,3 В (инвертирующий). Следовательно, на выходе будет -Vcc.

MOSFET Arduino действует как переключатель здесь и является источником правильного источника питания. Он либо подает питание через USB-соединение. Или он подает питание через цилиндрический соединитель, сохраняя целостность последовательной коммуникационной части USB. Выход из полевого МОП-транзистора поступает на бортовую плату 3.Регулятор 3В. Затем этот регулятор вырабатывает 3,3 В, которые мы можем использовать. Таким образом, дуэт компаратора и полевого МОП-транзистора обрабатывает несколько входов питания, и у нас на одну проблему меньше.

Заключение

В этой статье мы видели проводку шины расширения мощности. Это также должно помочь вам ответить на вопрос, как можно, чтобы соединитель цилиндра включал питание Arduino и одновременно подключал USB-кабель для передачи данных на микроконтроллер Arduino.На этом мы завершаем подсистему питания Arduino Uno.

Снижение энергопотребления Arduino - learn.sparkfun.com

Добавлено в избранное Любимый 16

Удаление дополнительного оборудования

Каждой интегральной схеме (ИС) для работы требуется питание. Уменьшая количество необходимых микросхем, вы можете немного сэкономить электроэнергию. У Arduino Uno и RedBoard есть мост USB, который преобразует сигналы USB в сигналы, которые может использовать универсальный асинхронный приемный передатчик Arduino (UART).Один только FT231x, используемый на RedBoard, потребляет около 10 мА. Просто заменив SparkFun RedBoard на 5V Pro Mini, вы не только сэкономите немало физического пространства, но и уменьшите ток питания с 15 мА до всего 4 мА.

Отказ от линейного регулятора

Линейные регуляторы великолепны. Они дешевы и могут регулировать более высокое напряжение до более низкого с помощью всего 3 контактов (Vin, Vout заземления). Однако недостатком линейного регулятора является то, что он может сильно нагреваться, если у вас большая разница между входным и выходным напряжением или если вы потребляете большой ток.Вы можете рассчитать мощность, которая тратится впустую в виде тепла, с помощью простого уравнения:

P потрачено впустую = (V на выходе - V на выходе ) * I

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

Не вдаваясь в подробности, импульсные источники питания намного более эффективны, поскольку входной ток не обязательно должен быть таким же, как выходной.При небольшой нагрузке вы можете найти импульсные регуляторы с КПД более 90%. С импульсным стабилизатором вы можете не только уменьшить входное напряжение (используя понижающий преобразователь), но и увеличить напряжение (используя повышающий преобразователь). Другие микросхемы, такие как TPS61200, используемые в PowerCell, идеально подходят для приложений с батарейным питанием, поскольку могут эффективно снижать или повышать напряжение батареи!


← Предыдущая страница
Введение

Ардуино Уно R3

Обзор

Arduino Uno R3 - это аппаратная вычислительная платформа с открытым исходным кодом.Использует ATmega328 микроконтроллер. Плата также включает ATmega16u2, который действует как встроенный преобразователь USB в последовательный.

Arduino Uno R3 может использоваться для разработки приложений, работающих в автономной или подключенной среде. Устройство программируется с использованием интегрированной среды разработки Arduino (IDE).

Макет платы


  • Микроконтроллер ATmega328
  • Входное напряжение от 7 до 12 В
  • 14 цифровых входов, 6 из которых обеспечивают выход с ШИМ (широтно-импульсной модуляцией)
  • 6 аналоговых контактов
  • 40 мА Постоянный ток на контакт ввода / вывода
  • 50 мА постоянного тока для 3.Контакт 3V
  • 32 КБ флэш-памяти (0,5 КБ используется загрузчиком
  • 2 КБ SRAM
  • 1 КБ EEPROM
  • Тактовая частота 16 МГц

Вы можете запитать плату Arduino через разъем USB или через разъем питания постоянного тока. Разъем питания с центральным питанием 2,1 мм.

Для питания платы можно использовать от 6 до 20 В постоянного тока.Рекомендуется не опускаться ниже 7 В, чтобы допустить падение напряжения. через регулятор мощности. Если вы установите слишком низкое значение, выход регулятора может упасть ниже 5 В, и это может вызвать проблемы с работой плат.

Также рекомендуется не превышать 12 В. Регулятор мощности может перегреться и вызвать повреждение платы.

Штифты используются следующим образом:

  • 5 В: это регулируемый выход встроенного регулятора напряжения.Это питание будет поступать от входного разъема USB или постоянного тока. Это подается на бортовой стабилизатор напряжения 5В. К этому выводу подключен выход регулятора. Вы используете этот вывод для подачи 5 В на компоненты питания. подключен к плате Arduino. Максимальный потребляемый ток составляет около 400 мА через USB-порт и выше при использовании разъема питания постоянного тока.
  • 3,3 В: это регулируемый выход встроенного регулятора напряжения.К этому выводу подключен выход регулятора 3,3 В. Вы используете это вывод для подачи 3,3 В на компоненты питания, подключенные к плате Arduino. Максимальный потребляемый ток 50 мА
  • Вы можете запитать плату, подключив регулируемый источник 5 В к контакту 5 В или 3,3 В к контакту 3,3 В. Власть будет войдите прямо в микроконтроллер ATMega328. Встроенные регуляторы мощности отключены.Если здесь что-то пойдет не так, вы можете очень легко повредить микросхему ATMega328. Arduino советует не включать плату таким образом.

  • GND: Заземление платы, подключенное к контактам заземления на входном разъеме постоянного тока и разъеме USB. Используйте это заземление для компонентов, подключенных к Плата Arduino.
  • VIN: этот вывод подключен к входу бортовых регуляторов напряжения.Независимо от того, какой входной постоянный ток подается на плату Входной разъем постоянного тока также появится на контакте VIN. Вы также можете подключить питание к плате, используя этот контакт вместо входного разъема USB или постоянного тока. Так как он подключен к входу регуляторов напряжения, на плату будет подаваться регулируемое напряжение 5 В и 3,3 В постоянного тока.
  • css

На плате Arduino 16 цифровых контактов.Их можно использовать как входы или выходы. Они работают при 5 В и имеют максимальное потребление тока 40 мА. У них есть внутренний подтягивающий резистор, который по умолчанию отключен. Подтягивающие резисторы составляют от 2 до 50 кОм и могут быть включены с помощью программного обеспечения.

Мы можем управлять выводами цифрового ввода / вывода с помощью функций pinmode (), digitalWrite () и digitalRead.

Некоторые цифровые выводы ввода / вывода имеют дополнительные функции:

  • Последовательный: контакт 0 (RX) и 1 (TX).Эти контакты используются для передачи и приема последовательных данных TTL (5 В). Эти булавки также подключен к Atmega16u2 USB к последовательному TTL чипу на плате Arduino.
  • PWM: выводы 3, 5, 6, 9, 10 и 11. Выводы могут обеспечивать 8-битный выходной сигнал PWM (широтно-импульсная модуляция). Мы используем функцию analogWrite () со значением от 0 до 255 для управления рабочим циклом выхода.
  • SPI: контакты 10 (SS), 11 (MOSI), 13 (SCK) используются для обеспечения связи SPI (последовательный периферийный интерфейс) с использованием библиотеки SPI
  • Внешние прерывания: контакты 2 и 3 могут быть настроены для запуска прерывания при понижении уровня сигнала или при повышении или понижении уровня сигнала. край.Мы используем функцию attachInterrupt (), чтобы разрешить прерывания.
  • Светодиод
  • : к выводу 13 подключен светодиод. Когда на выходе 13 высокий уровень, светодиод загорится. Светодиод будет выключен, когда выходной сигнал низкий.

Arduino Uno имеет 6 аналоговых входов с обозначениями от A0 до A5. Каждый из этих аналоговых выводов имеет разрешение 10 бит, что означает от 0 до 1024 различных значений. значения.По умолчанию они измеряют от земли до 5 вольт. Можно расширить диапазон, используя вывод AREF и функцию analogReference (). Некоторые из этих булавок имеют дополнительный функционал.

  • TWI: контакт A4 или SDA и контакт A5 или SCL. Эти контакты используются для поддержки связи TWI с использованием Проволочная библиотека.
  • AREF: Используется для обеспечения опорного напряжения для аналоговых входов.Используется с analogReference ().
  • СБРОС: переводя эту строку в НИЗКОЕ состояние, выполняется сброс микроконтроллера ATMega328. Может быть подключен к экранам для обеспечения кнопки сброса, когда кнопка сброса на Arduino Uno заблокирована экраном.

Использование аналоговых выводов в качестве цифровых

Мы можем настроить контакты аналогового ввода / вывода для работы так же, как цифровые выводы.Назначение контактов аналогового и цифрового сигналов следующее:

  • A0 => Цифровой контакт 14
  • A1 => цифровой контакт 15
  • A2 => цифровой контакт 16
  • A3 => цифровой контакт 17
  • A4 => цифровой контакт 18
  • A5 => цифровой контакт 19

Теперь мы можем использовать команду pinmode для определения вывода как INPUT или OUTPUT.Таким образом, для вывода AO мы будем использовать значение 14 в качестве значения вывода. Написать в pin, мы будем использовать digitalWrite с соответствующим значением цифрового вывода, как показано в списке выше.

Arduino имеет несколько режимов связи.

  • USB: Arduino Uno использует встроенный ATmega16U2 для подключения последовательных выводов TX и RX на ATmega 328. 16u2 заменяет микросхему USB FTTI, используемую на другие доски.Эти последовательные данные отправляются микросхемой USB, чтобы отображаться как виртуальный COM-порт на компьютере, подключенном к порту USB. Последовательный порт IDE Arduino Монитор также использует порт USB для отправки последовательных данных на плату Arduino и с нее. Светодиоды TX и RX будут мигать, когда данные отправляются и принимаются через порт USB.
  • Последовательный TTL: Плата Arduino Uno имеет последовательную связь с уровнем TTL (5 В) на цифровых выводах 0 (RX) и 1 (TX). Это также может быть связано с микросхемой RS232 или RS484. для обеспечения последовательной связи с другим устройством.Примечание: встроенные светодиоды TX и RX НЕ будут мигать при использовании последовательной связи на цифровых контактах 0 и 1. Эти светодиоды предназначены только для USB-порта.
  • Связь
  • I2C и SPI: Arduino Uno поддерживает оба этих формата последовательной связи. Используйте библиотеку Wire для шины I2C. Используйте библиотеку SPI для шины SPI.

На плате Arduino есть сбрасываемый предохранитель, который защищает порт USB от короткого замыкания и перегрузки по току.Если ток более 500 мА снимается с USB-порт, который он сработает, сработает и прервет соединение с питанием USB. Как только перегрузка по току будет устранена, предохранитель перезапустится.

Как запитать Arduino? Контакты Vin, 5 В и 3,3 В.

Контакты Vin, 5V, 3.3V и GND - это контакты питания Arduino.

Вы можете использовать вывод Vin для питания вашего Arduino от нерегулируемого источника питания от 7 до 12 вольт.Например, батарея на 9 В или сетевой адаптер с напряжением от 7 до 12 вольт.

В качестве альтернативы вы можете подключить Arduino к выводу 5V с помощью внешнего регулируемого источника питания 5V. Это может быть сетевой адаптер, выдающий постоянные 5В, или преобразователь постоянного тока в постоянный. который подключен к батарее или набору батарей.

Вы можете использовать вывод 5 В и вывод 3,3 В для подачи питания на модули, подключенные к Arduino. Но вы не можете использовать вывод 3,3 В для питания Arduino Uno / Nano.

Есть четыре разных способа питания Arduino:

Плата Arduino имеет два выхода питания:

Эта статья относится как к Arduino Uno, так и к Nano.У Nano нет цилиндрического домкрата. Но во всем остальном он идентичен Uno.

Модули, используемые в этой статье.

Раскрытие информации: имейте в виду, что некоторые ссылки в этом посте являются партнерскими. ссылки, и если вы пройдете по ним, чтобы сделать покупку, я получу комиссию. Имейте в виду, что я связываю эти компании и их продукты из-за их качество, а не из-за комиссии, которую я получаю с ваших покупок.Решение остается за вами, и решать, покупать ли вы что-либо, полностью зависит от вас.

Питание Arduino от разъема Barrel Jack.

Вы можете подключить источник питания от 7 до 12 вольт к разъему на корпусе Arduino.

Например, аккумулятор на 9В.Наконечник цилиндрического домкрата должен быть подключен к положительному выводу источника питания, и гильза блока питания должна быть подключена к отрицательному выводу блока питания.

Включение Arduino через Vin Pin.

Подключите положительный выход вашего источника питания от 7 до 12 вольт к контакту Vin вашего Arduino, и отрицательный к контакту GND.

Вывод Vin идет на вход бортового регулятора 5V. Источник питания, который вы подключаете к выводу Vin, должен быть от 7 до 12 В для надежной работы регулятора. Он преобразует нерегулируемое входное напряжение в стабильные 5 В для использования Arduino.

Штырь Arduino Vin и цилиндрический разъем одинаковы. Штифт Vin напрямую соединен с концом цилиндрического домкрата. Рукав подключается к GND. Это означает, что если вы запустите свой Arduino через соединитель ствола, тогда вы можете использовать вывод Vin как прямой нерегулируемый выход батареи.

Питание Arduino через вывод 5 В.

Если у вас есть внешний регулируемый источник питания, который выдает 5 вольт, затем вы можете подключить его напрямую к выводу 5V на плате Arduino. Вход на выводе 5V не должен превышать 5.5В вольт!

Если вы хотите использовать менее четырех батареек AA, Затем вы можете использовать повышающий преобразователь для повышения напряжения до стабильных 5 В. Три батареи АА, соединенные последовательно, дадут вам 1,5 * 3 = 4,5 В при полном заряде, и чуть больше 3В, когда почти пустой. Если электромагнитный шум для вас не проблема, тогда вы можете купить эти дешевые преобразователи постоянного тока в постоянный на eBay или AliExpress.

Я сделал видеоурок по работе вашего Arduino на одной батарее AA:

Если напряжение вашего источника питания выше 5 В, тогда вы можете использовать линейный регулятор напряжения или понижающий преобразователь.

Понижающие преобразователи более эффективны, чем линейные регуляторы. Они преобразуют входную мощность на другой уровень напряжения. Линейные преобразователи «сжигают» избыточное напряжение и поэтому плохо работают с аккумуляторами. Они тратят энергию, превращая ее в тепло. Преимущество линейного регулятора в том, что он менее подвержен электромагнитным помехам.Если эти электрические помехи не имеют значения в вашей цепи, тогда вы можете купить дешевые понижающие преобразователи постоянного тока в постоянный на eBay.

Регулятор 5V на плате Arduino также является линейным регулятором.

Когда вы подключаете свой Arduino к выводу 5V, тогда контакт Vin не используется. Вы не можете запитать свои датчики и модули от контакта Vin.

Питание Arduino через USB-кабель.

Если вы подключите USB-кабель к Arduino, затем он подает регулируемые 5 вольт прямо на плату, и регулятор 5V не используется.

Как и при питании Arduino напрямую от вывода 5V, PIN-код Vin останется неиспользованным. Вы не можете запитать свои датчики и модули от контакта Vin.

Вывод 5 В в качестве выхода питания.

Вы можете использовать вывод 5V для питания датчиков и модулей, подключенных к Arduino.Вы должны проверить, поддерживает ли подключаемый модуль питание 5 В. Некоторые устройства рассчитаны только на 3,3 В!

Контакт 5V ограничен током 500 мА, если вы запитываете Arduino с помощью USB-кабеля. Встроенный стабилизатор напряжения рассчитан на 800 мА, но из-за проблем с рассеиванием мощности, вы не должны превышать 400–500 мА.

Если вам нужно больше мощности для ваших модулей, тогда вам следует использовать внешний источник питания.

Вывод 3,3 В в качестве выхода питания.

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

Он может обеспечивать ток от 100 до 150 мА. Регулятор 3.3V подключен к выходу регулятора 5V. Потребление тока от регулятора 3,3 В будет рассеивать тепло как в регуляторе 3,3 В, так и в регуляторе 5 В. Это означает, что если вы подключите устройство с напряжением 3,3 В к разъему 3.Вывод 3V, то он тоже ограничивает максимальный ток, который вы можете использовать для модулей 5V, подключенных к выводу 5V.

Рекомендации по источникам питания микроконтроллера для Arduino

Питание Arduino имеет немного волшебства. Когда я впервые начал с ними работать, это было неочевидно, но в Arduinos есть встроенные регуляторы. Использование этого преимущества позволяет увеличить длину проводки источника питания за счет использования источника питания с более высоким напряжением, чем номинальное 5 В или 3.3 В, необходимое микроконтроллеру (MCU) для логических уровней. Некоторые Arduino принимают входное напряжение от 6 до 16 В постоянного тока, что намного выше максимального номинала микроконтроллера, но плата Arduino точно регулирует напряжение питания, а также дополнительную мощность для периферийных устройств Arduino. Я видел, как опытные инженеры были сбиты с толку относительно аргументов в пользу питания 3,3 В Arduino от источника питания 9 В постоянного тока, пока им не объяснили это.

Требования к питанию микроконтроллера

Часто упускается из виду выбор подходящего источника питания для микроконтроллеров.Хотя сосредоточенные усилия и предусмотрительность могут заключаться в деталях самой конструкции, многие проблемы с производительностью и надежностью могут быть связаны с выбором и возможностью подключения источника питания. Семейство плат для разработки Arduino предоставляет решения для этих проблем, но легко ошибиться, не понимая, какие варианты доступны при разработке. Это не так просто, как сказать, что для Arduino 5 В используется источник питания 5 В постоянного тока, а для Arduino 3,3 В - 3.Источник питания 3 В постоянного тока.

Требования к питанию Arduino

Многие Arduinos используют микроконтроллер ATmega328P. ATmega328 от Microchip имеет широкий диапазон допустимых значений напряжения постоянного тока. (Vcc - это регулируемое напряжение питания постоянного тока, необходимое для работы ИС, и его часто называют напряжением питания для ИС.) Чаще всего Arduinos предназначены для работы либо с логикой уровня 3,3 В для низкого энергопотребления, либо с логикой 5 В для быть совместимым с устаревшими логическими устройствами TTL. Приведенные ниже примеры относятся к 3.Устройства с напряжением 3 В постоянного тока, для которых важнее источник питания. Однако те же принципы применимы к устройствам на 5 В постоянного тока.

Рисунок 1: Технические характеристики платы Arduino. (Источник: www.arduino.cc)

Пример: Arduino Pro Mini

Во-первых, предположим, что в схемотехнике используется что-то вроде Arduino Pro Mini. Максимальный ток, потребляемый Arduino, составляет 200 мА. Маловероятно, что сам Arduino будет потреблять 200 мА, но предположим, что между Arduino и другими подключенными к нему устройствами они потребляют в общей сложности 200 мА.В таблице данных ATmega328p показано, что минимальное напряжение высокого логического уровня на выводе составляет 90% от Vcc. Таким образом, если Vcc составляет 3,3 В постоянного тока, минимальное напряжение на выводе, которое будет считаться высоким логическим уровнем, составляет 0,9 * 3,3 В постоянного тока = 2,97 В постоянного тока. Любое значение, видимое на цифровом выводе ниже 2,97 В, находится в неопределенном диапазоне и приведет к непредсказуемым результатам от Arduino.

Между источником питания и Arduino всегда есть некоторое расстояние. Чем больше расстояние, тем больше потеря напряжения в проводке источника питания.Но сколько потеряно? Поскольку 26 AWG - это обычный выбор для проводки цепей малой мощности и он находится на меньшем конце диапазона калибра проводов, в нем меньше меди. Меньше меди означает меньшую стоимость. Многожильный кабель 26 AWG - хороший выбор из-за гибкости прокладки проводов. 26 AWG достаточно велик, чтобы выдерживать 2,2 А для проводки шасси, что более чем в десять раз превышает потребляемый ток 200 мА, который мы указали для максимального тока, потребляемого Arduino для нашей конструкции. Блок питания 3,3 В постоянного тока и 26 AWG кажутся отличным выбором, но давайте рассмотрим его поближе.

Обрыв линии источника питания Провод

Quality 26 AWG имеет сопротивление 40,81 Ом на 1000 футов или 40,81 миллиом на фут. При токе 200 мА по проводам источника питания у нас будет падение напряжения на каждый провод, как показано ниже. Имейте в виду, что нам нужно проложить провод от источника питания к Arduino, а затем обратно к отрицательной стороне источника питания. Мы видим, что на высоте десяти футов мы потеряли 5 процентов нашего источника 3,3 В постоянного тока. На высоте 20 футов мы потеряли почти 10 процентов.Это действие снижает напряжение, подаваемое на Arduino, до 4,5 В; нижний предел гарантированного максимального высокого напряжения цифровой логики.

Таблица 1: Потери в линии. Расстояние указывает физическое расстояние между платой и источником питания. (Источник: Автор)

Двадцать футов кажется разумным расстоянием для большинства приложений. Однако до этого момента мы учитывали только сопротивление самого провода.

Контактное сопротивление

Контактное сопротивление часто не рассматривается или даже не понимается.Сопротивление провода 26 AWG составляет 40,81 Ом на 1000 футов в зависимости от диаметра поперечного сечения провода. Однако в каждой точке проводки, где мы разместили соединение в проводке, мы создали точку, в которой поперечное сечение пути тока уменьшается и, следовательно, имеет более высокую точку сопротивления.

Соединение круглого разъема приведет к контакту штифта со стволом только в точке касания. Соединители лезвий дают такую ​​же уменьшенную площадь по всей поверхности. Даже винтовой зажим не может соответствовать сопротивлению поперечного сечения самого провода.Учтите, что любая оконечная нагрузка со временем подвержена окислению и повышенному сопротивлению из-за многократного подключения и отключения проводов в течение срока службы системы. Каждая из этих точек может легко иметь контактное сопротивление 40 миллиом. Верно; каждая точка подключения может добавить эквивалентное сопротивление 1 фута провода 26 AWG. С двумя подключениями к Arduino и двумя подключениями к источнику питания любая система будет иметь как минимум 4 завершения. Теперь у нас есть потери в источнике напряжения 5 процентов на 8 футах и ​​10 процентов на 18 футах между Arduino и его источником питания.

Таблица 2: Потери в линии и контактное сопротивление

Выбор одного источника питания - различные расстояния?

Следовательно, при типичной схеме подключения источника питания мы теряем пять процентов напряжения источника 3,3 В между источником питания и Arduino на высоте восьми футов и 10 процентов на расстоянии 18 футов. Проще говоря, если бы мы использовали регулируемый источник питания постоянного тока, мы могли бы увеличить напряжение, чтобы компенсировать потери в линии и сопротивление контактов. Однако блоки питания дороги и занимают много места.Обычно во встроенных системах разработчики стараются иметь общий источник питания для нескольких встроенных контроллеров. Если один контроллер находится в одном футе от источника питания, а последний - в 20 футах от источника питания, разработчик должен тщательно уравновесить каждый встроенный контроллер в пределах надлежащего диапазона.

Варианты источников питания Arduino Конструкции Arduino

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

USB Power - USB-кабель обычно используется для программирования Arduino через интегрированную среду разработки Arduino (IDE). Кабель USB не только обеспечивает диагностику через последовательный монитор IDE, но также обеспечивает питание 5 В постоянного тока для Arduino через контакт USB Vcc. Питание 5 В USB используется для непосредственного питания 5 В Arduino, или оно понижается, если оно равно 3.3Volt Arduino.

Питание 5 В или 3,3 В - Разработчик может подать соответствующее напряжение на выводы питания 5 В или 3,3 В Arduino. Эти контакты подключены непосредственно к контактам питания MCU на плате Arduino. Однако подача питания на эти контакты приведет к тому, что микроконтроллер Arduino станет восприимчивым к потерям в линии и потере контактного сопротивления от источника питания, упомянутого ранее.

Vin или Raw - Arduino может иметь этот вывод с пометкой «Vin» или «RAW» в зависимости от используемого варианта Arduino.Распространенной ошибкой является подключение к этому выводу источника питания 5 В или 3,3 В. Проблема в том, что у вас не только потери в линии и потери сопротивления контактов, упомянутые ранее, но и то, что этот вывод является входом во встроенную схему регулирования. Как и любой другой регулятор напряжения, вам необходимо подать на устройство немного больше напряжения, чем вы ожидаете получить от него. Если мы подадим 3,3 В постоянного тока на Vin, мы потеряем около 0,5 вольт через регулятор. Это означает, что микропроцессор и подключенные периферийные устройства будут работать только на 2.В лучшем случае 8 В постоянного тока. В сочетании с нашими отмеченными потерями в линии и потерей контактного сопротивления мы можем работать значительно ниже требуемого уровня напряжения.

Таблица 3: Потери в линии, сопротивление контактов и потери в регуляторе

В IN штырь, правильно используемый

Несмотря на описанную выше проблему, использование выводов V IN или RAW является решением проблемы потери напряжения источника. На плате Arduino контакты V IN или RAW являются входом для регулятора напряжения на плате Arduino.Все, что нам нужно сделать, это подать напряжение в указанном диапазоне, чтобы получить желаемый регулируемый выход на Arduino. Напряжение питания от 6 до 12 В постоянного тока, приложенное к Vin, или RAW, будет обеспечивать питание микроконтроллера Arduino, преодолевать любые потери напряжения на линии или контактном сопротивлении и обеспечивать выходную мощность на контакты 5 В и 3,3 В Arduino для питания периферийных компонентов. Диапазон входного напряжения Arduino основан на требованиях к напряжению на всей плате, включая энергию, необходимую микроконтроллеру для питания периферийных устройств.

Заключение

Стандартные блоки питания в диапазоне от 7 до 12 В не так распространены, как блоки питания 3,3 или 5 В постоянного тока, но они доступны. Заманчиво использовать более распространенные источники питания 5 В постоянного тока и 3,3 В постоянного тока для плат Arduino, но, судя по приведенным выше фактам, необходимо использовать менее распространенные альтернативы для наилучшего регулирования и производительности микроконтроллера.

Как мне подключить Arduino к питанию? - Хижина Пи

В ModMyPi мы предлагаем ряд различных плат для микро-разработки, для которых требуются немного разные источники питания! Некоторые очень строги в своих требуемых входных данных; например, последняя версия Raspberry Pi рекомендует как минимум 5 В при 2 А для стабильности, но некоторые из них более гибкие, Arduino может принимать диапазон входных напряжений (6-20 В) и регулирует его до желаемого уровня внутри платы.Мало того, сами платы имеют разные входные порты питания, и некоторые из них могут получать питание в нескольких точках на плате! У нас есть простая разбивка того, что требуется для каждого устройства! Вы можете проверить приведенные ниже уроки о том, как наилучшим образом обеспечить питание каждого устройства:

Как мне подключить Raspberry Pi к питанию?

Как мне запитать Arduino?

Как мне привести в действие мой Beaglebone Black?

Как мне запитать Arduino?

Более сложный зверь, чем Raspberry Pi! В отличие от Pi, в котором указаны точные требования к питанию, Arduino гораздо более гибок и может получать питание через несколько портов.Во многих отношениях это невероятно полезно, но может привести к некоторой путанице.

В ModMyPi мы предлагаем несколько различных вариантов для питания вашего Arduino. Рекомендуемый блок - наш блок питания Arduino на 9 В, 2 А. Это зарядное устройство обеспечивает хорошее стабильное напряжение питания и гарантирует, что регуляторы напряжения Arduino не будут слишком сильно загружены. Это устройство должно продлить срок службы вашего Arduino и позволить вам выполнять большинство простых операций по взлому.

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

Mode 1 - Штекер цилиндра постоянного тока 5,5 мм / 2,1 мм (рекомендуется 9 В - 12 В при 2 А)

Более краткое объяснение различных требований см. Ниже, но самый простой ответ заключается в следующем. Arduino имеет входной порт типа «цилиндр» постоянного тока для питания.Домкрат для бочек имеет следующие требования:

  • Адаптер должен быть постоянным (постоянным током), а не переменным (переменным током)
  • Заглушка цилиндра должна быть положительной по центру (средний штифт вилки должен быть положительным)
  • Заглушка ствола должна иметь внутренний диаметр (ID) 2,1 мм
  • Заглушка ствола должна иметь внешний диаметр (OD) не более 5,5 мм.
  • Рекомендуемое рабочее напряжение от 9 В до 12 В
  • Рекомендуемый рабочий ток равен 0.С 5А по 2А.
  • Соединитель ствола длиной 9,5 мм или более достаточен.

Это ствол обычного размера, и вы увидите, что на многих наших изделиях есть 5,5 мм / 2,1 мм.

Рабочее напряжение

Arduino может работать от питания через этот порт от 6 до 20 В. Однако ключевое слово здесь - «может».

Если на плату подается напряжение менее 7 В, производительность устройства может стать нестабильной, и на выводе ввода-вывода 5 В может оказаться подача напряжения менее 5 В, что может привести к неправильной работе дополнительных схем.

И наоборот, использование источника питания с повышенным напряжением до 20 В приведет к тому, что регуляторы на плате будут работать на полную мощность, рассеивая дополнительное напряжение в виде тепла. Это неэффективно и может вызвать перегрев Arduino. Аналогия: вы можете везде управлять своей машиной на первой передаче, доведя ее до крайних пределов. Он доставит вас туда, куда вы собираетесь, но сократит срок службы вашей коробки передач и двигателя, доставит вас туда очень медленно и, вероятно, повредит ваши уши!

Следовательно, рекомендуемое напряжение составляет от 9 до 12 В.Это хорошая золотая середина, которая позволяет регуляторам платы легко рассеивать любое ненужное напряжение и дополнительно подавать правильное напряжение на различные контакты ввода / вывода на Arduino.

Следует отметить. Контакт Vin на входах / выходах Power Pins будет копировать входное напряжение, подаваемое через разъем питания, и действовать как выход этого напряжения. Таким образом, у вас фактически есть настраиваемый вывод выходного напряжения на Arduino, который будет копировать входное напряжение вашего источника питания.Например, если у вас есть реле на 9 В, вы можете запустить его прямо со своего вывода Vin Arduino, если у вас подключен блок питания на 9 В.

Рабочий ток

В отличие от напряжения, которое является «принудительным», ток - это потребление, которое цепь может подавать на источник питания, например блок питания будет обеспечивать разную силу тока в зависимости от нагрузки, приложенной к нему подключенным устройством. Следовательно, чем больше ток на выходе адаптера, тем лучше.Минимальное требование - 250 мА, что должно примерно работать на Arduino с некоторой степенью стабильности. Однако, если вы хотите запитать какие-либо внешние устройства (сервоприводы, светодиоды, USB-устройства и т. Д.), То диапазон от 0,5 А до 2 А обеспечит больший диапазон использования. Зарядное устройство с более высоким номинальным током обеспечит вам достаточно энергии для правильной работы каждого компонента цепи.

Некоторые полезные ограничения по току:

  • Порт USB имеет отключение полифузора на 500 мА. Любые подключенные устройства, которые потребляют больше этого, скорее всего, вызовут нестабильность.
  • Абсолютный максимальный ток, потребляемый одним цифровым или аналоговым выводом ввода / вывода, составляет 40 мА (рекомендуется <35 мА макс.), При этом общий максимальный ток, потребляемый всеми выводами ввода / вывода этого типа, вместе взятым составляет 200 мА.
  • Если вы решите запитать схему через выводы Power I / O, максимальный выходной ток на выводе 3,3 В составляет 150 мА (рекомендуется при 50 мА).
  • Вывод
  • 5V имеет максимальное потребление 0,8 А. Следует отметить, что цепи 3,3 В и 5 В объединены, поэтому 0,8 А также является суммарным максимальным током, потребляемым обоими этими контактами.Также следует отметить, что 0,8 А - это теоретический максимум, определяемый встроенными регуляторами напряжения. Чем тяжелее работают эти регуляторы напряжения, тем меньше ток вы сможете потреблять, поэтому более реалистичное максимальное значение составляет 0,5 А.
  • Переменный вывод (Vin) обходит большую часть схем Adruino, поэтому нет реального максимума, кроме установленного диодом, который отделяет Vin от других схем на плате. Диод рассчитан на 1 А, а дорожки на плате рассчитаны на 2 А, поэтому теоретический максимум для Vin составляет 1 А.Мы видели сообщения о работе устройств с более высоким значением, замене диода или даже полном его обходе, но это не рекомендуется.

Некоторые реле могут потреблять большие токи при высоких нагрузках, поэтому следует соблюдать осторожность при питании периферийных устройств. Реально любое отдельное периферийное устройство, требующее более 0,5 А, всегда должно получать питание от дополнительного внешнего источника питания.

Режим 2 - через порт USB (5 В при 500 мА)

Arduino также может получать питание через порт USB на передней панели устройства (в мире Pi это называется резервным питанием!).Подавать питание через USB следует только при стабильном напряжении питания 5 В. Также следует отметить, что существует ограничение по току на портах USB в 500 мА, поэтому любое потребление тока, превышающее это, может вызвать нестабильность.

Подача напряжения на порты USB по существу сбрасывает это напряжение непосредственно на шину 5 В на Arduino (напрямую запитывает вывод 5 В). При таком способе питания следует соблюдать осторожность, так как подача напряжения на порты USB идет в обход регуляторов 5 В, что может повредить вашу плату, если будет подано неправильное напряжение!

Кроме того, Arduino имеет сбрасываемый предохранитель на портах USB с максимальной токовой защитой 500 мА.Это несколько ограничивает приложения, которые можно использовать при питании через USB. Если что-либо потребляет значительный ток (или несколько устройств потребляют вместе более 500 мА), встроенные полифункциональные предохранители, скорее всего, сработают, прерывая соединение до тех пор, пока нагрузка не будет снята. Это может привести к многократным перезапускам устройства или другому странному поведению!

Если Arduino обнаруживает, что есть бочкообразный источник и USB-источник, подающие напряжение одновременно, Arduino автоматически переключается на бочкообразный источник, пока он подает достаточное напряжение (более 6.6В). Следовательно, пока подключен бочкообразный источник питания (и имеется достаточное напряжение), пользователю не нужно беспокоиться о приложенном напряжении USB. Здесь есть очень хорошее объяснение.

Режим 3 - Через ввод / вывод

Arduino имеет несколько выводов питания, как показано ниже. Они функционируют как входы или выходы в зависимости от того, как запитывается Arduino!

Выводы питания следующие:

  • Вин.Vin можно использовать в качестве входа напряжения (вместо использования бочкообразного адаптера или USB). Напряжение должно быть в пределах 9–12 В, и оно регулируется внутри платы до 5 В. Vin также можно использовать как выход напряжения, копируя напряжение, подаваемое через адаптер цилиндра или USB.
  • 5В. Этот вывод выводит регулируемое напряжение 5 В от регулятора на плате. На этот вывод может подаваться питание от бочкообразного адаптера, USB-разъема или от контакта Vin на плате. Вы можете подавать напряжение через вывод 5V, однако это обходит регулятор и может повредить вашу плату.Максимальный потребляемый ток составляет 0,8 А.
  • 3V3. Выходное напряжение 3,3 В, генерируемое бортовым регулятором. На этот вывод может подаваться питание от бочкообразного адаптера, USB-разъема или от контакта Vin на плате. Максимальный потребляемый ток составляет 150 мА.
  • GND. Штыри заземления.

Вы можете использовать ряд источников для питания Arduino через ввод / вывод, например: выводы от батареи, внешней цепи, сращивания источника питания и т.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *