Питание ардуино от розетки

Содержание
  1. Питание для Arduino UNO r3 (Ардуино УНО)
  2. Варианты питания для Arduino UNO
  3. roboforum.ru
  4. Питание проекта на Arduino от розетки 220В (прошу помочь)
  5. Питание проекта на Arduino от розетки 220В (прошу помочь)
  6. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  7. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  8. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  9. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  10. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  11. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  12. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  13. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  14. Re: Питание проекта на Arduino от розетки 220В (прошу помочь
  15. Питание Ардуино
  16. Питание плат Arduino
  17. Использование режимов энергосбережения.
  18. IDLE mode (режим ожидания)
  19. Power-Down mode (режим глубокого сна)
  20. Power Save mode (режим энергосбережения)
  21. Standby mode (режим ожидания)
  22. Выключение компонентов микроконтроллера
  23. Снижение тактовой частоты.

Питание для Arduino UNO r3 (Ардуино УНО)

В этой статье расскажу о нескольких простых способах как можно запитать (включить) Arduino UNO практически без денежных затрат. Уверен на 95% что у вас найдется все необходимое для этого дома, или у ваших соседей, в этом случае уверенность возрастает до 99% ))). Рекомендованное напряжение для питания Ардуино, от 7-12 вольт. Так как при напряжении менее 7 вольт возможна не стабильная работа платы, а более 12 возможен перегрев преобразователя напряжения и выход его из строя.
На моей практике питания 5V вполне достаточно для работы простейших схем и небольшого количества датчиков. Подключал одновременно дисплей 5110 и датчик DHT11, и они прекрасно себя чувствовали от 5-ти вольт. Для того чтобы поиграться и изучить принцип работы этого достаточно.

Читайте также:  Розетка электрическая с встроенным usb

Варианты питания для Arduino UNO

Первый — кабелем от usb порта компьютера:
Такое подключение не только запитает Ардуинку, но и пригодится для заливки скетчей и библиотек. Если вы купили плату без кабеля, то такой кабель часто используется в принтерах, сканерах или МФУ — называется USB A-B.

Второй — кабель и зарядка:
Берем этот же кабель и зарядное устройство от мобильного телефона с usb выходом и выходным напряжением 5V. И подключаем через розетку.

Третий — блок питания от чего нибудь:
Возможно у вас есть ненужный (или нужный) блок питания от какой либо техники, который выдает напряжение от 5 до 12 вольт и от 300 до 1000 миллиампер на выходе. У себя нашел БП уже не помню от чего, он дает 9V и 500ma. Плюс еще на БП должен быть штекер нужного размера, если не подходит, тогда ищите нужного размера и перепаивайте. Найти его можно в интернете по запросу (штекер 5.5×2.5 мм)
Но прежде чем подключать, советую проверить выходящее напряжение мультиметром (на всякий случай). У меня один БП вместо написанных 9V выдавал почти 15.

Четвертый — от батареек:
Сначала сделаем автономное питание от батарейки типа Крона.
Для этого варианта понадобится переходник с кроны на разъем Arduino.

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

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

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

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

Напишите в комментариях, от чего и как вы запитали Arduino.

Источник

roboforum.ru

Технический форум по робототехнике.

  • Список форумовТематические разделыArduino и другие Xduino
  • Изменить размер шрифта
  • Версия для печати
  • Магазин
  • Правила
  • Wiki
  • FAQ
  • Регистрация
  • Вход

Питание проекта на Arduino от розетки 220В (прошу помочь)

Питание проекта на Arduino от розетки 220В (прошу помочь)

FantasyOR » 22 фев 2013, 13:30

Помогите решить проблему с питанием проекта на Arduino от розетки 220В.
Суть проекта автоматическая люстра в коридоре с датчиком освещённости и присутствия. В качестве источника света диодная лента.

Хочется что-то такое сотворить своими руками, желательно чтоб работало =)))

Arduino выбрал т.к. она уже есть и я умею с ней работать.

Начал выбирать как-бы запитать свою Arduino mini pro от сети, пока склоняюсь к AC-DC: 220v-5v в названии написано, что для управления диодами. Вот только не знаю насколько страшно, что он импульсный.

Но все ленты питаются от 12В.

Поэтому не знаю ставить 2 преобразователя с 220 или ставить 1 220-12, и с него питать и ленту и через DC-DC конвертор ардуино. Второй вариант предпочтительней. А может есть способ обойтись парой резисторов и конденсатором?

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

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

dccharacter » 22 фев 2013, 17:20

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

elmot » 22 фев 2013, 20:57

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

dccharacter » 22 фев 2013, 21:01

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

FantasyOR » 22 фев 2013, 21:12

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

elmot » 22 фев 2013, 22:11

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

dccharacter » 22 фев 2013, 22:39

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

FantasyOR » 23 фев 2013, 09:25

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

Никакого схлопывания вселенной не произойдёт при параллельном включении, гланое расчитать мощу ac-dc преобразователя.
блок питания ac-dc у нас выдаёт V=12В
лента потребляет P=12Вт/м
какая моща у дуины не знаю, при пассивных датчиках врядли больше 2-5Вт.
Светить собираемся 2-мя метрами ленты значит нужно 24Вт
Прибавляем 5Вт дуины и получаем мощность ac-dc 30 Вт т.е. 12В и 3А должно быть за глаза, пусковых токов и переходных процессов тут нет если только в самом трансформаторе.

Добавлено спустя 6 минут 27 секунд:
Re: Питание проекта на Arduino от розетки 220В (прошу помочь)
собираюсь юзать мини, она голая по питанию, никаких ограничителей, кушает исключительно кошерные 7-9В на специальный вход или 5В на com

Добавлено спустя 3 минуты 20 секунд:
Re: Питание проекта на Arduino от розетки 220В (прошу помочь)
http://www.arduino.ru/Hardware/ArduinoBoardMini

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

dccharacter » 23 фев 2013, 10:21

Re: Питание проекта на Arduino от розетки 220В (прошу помочь

FantasyOR » 23 фев 2013, 12:49


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

Источник

Питание Ардуино

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

Питание плат Arduino

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

Пример потребления электроэнергии платой Arduino Mini Pro:

Питающее напряжение, В Ток, мА Потребляемая мощность, мВт
9 42 378
5 22 110
3.3 8 26.4

На нашем сайте вы можете найти описание схем энергопитания для плат Arduino Uno, Nano, Mega и Leonardo.

В рамках данной темы мы рассмотрим 4 основных метода снижения энергопотребления:

  • использование режимов энергосбережения;
  • использование библиотеки Narcoleptic;
  • выключение компонентов микроконтроллера;
  • снижение тактовой частоты;

Использование режимов энергосбережения.

Все микроконтроллеры AVR на которых основаны большинство плат Arduino поддерживают различные режимы энергосбережения. Рассмотрим такие режимы для микроконтроллера ATmega328P, на котором основаны платы Arduino UNO, Arduino Nano, Arduino Pro Mini и некоторые другие:

IDLE mode (режим ожидания)

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

Power-Down mode (режим глубокого сна)

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

Power Save mode (режим энергосбережения)

Отличается от режима Power-Down тем, что таймер/счетчик 2 продолжает свою работу как в синхронном, так и в асинхронном режиме. Пробуждение из этого режима возможно теми же прерываниями что и из режима Power-Down, а также прерыванием от таймера/счетчика 2.

Standby mode (режим ожидания)

Этот режим идентичен режиму работы Power-Down, за исключением того, что продолжает работать тактовый генератор. За счет этого пробуждение микроконтроллера происходит гораздо быстрее.

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

После этого нам станут доступны две простые функции – set_sleep_mode(); и sleep_mode();.

С помощью функции set_sleep_mode(); происходит выбор необходимого режима энергосбережения. Соответственно есть 4 интересующих нас аргумента этой функции для каждого из рассмотренных режимов работы:

После того как был задан необходимый режим энергосбережения, мы можем воспользоваться функцией sleep_mode(); для перевода микроконтроллера в этот режим.

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

После этого в теле программы необходимо объявить функцию обработчика прерывания от сторожевого таймера:

Для работы со сторожевым таймером понадобятся две функции – wdt_enable(); и wdt_disable();.

Функция wdt_enable(); имеет один аргумент, устанавливающий интервал срабатывания сторожевого таймера. Для этого доступны 10 констант:

Кроме этого, необходимо разрешить прерывание от сторожевого таймера. Это можно сделать с помощью установки бита WDIE регистра WDTCSR: WDTCSR |= (1 Использование библиотеки Narcoleptic

Данную библиотеку создал Питер Кнайт, скачать ее можно по адресу https://code.google.com/p/narcoleptic/.

Эта библиотека позволяет вводить микроконтроллер в режим сна на определенное время с помощью одной функции – Narcoleptic.delay();. Аргументом данной функции является время в миллисекундах – используется точно так же как и стандартная функция delay();.

Рассмотрим ту же программу что и ранее, но с использованием данной библиотеки:

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

Выключение компонентов микроконтроллера

Этот метод подойдет в случаях, когда микроконтроллер длительное время должен выполнять ряд определенных действий с одной и той же периферией.

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

Для того чтобы воспользоваться данным методом необходимо подключить библиотеку power.h:

После этого нам будет доступен ряд функций для включения и отключения отдельных модулей периферии микроконтроллера:

Функция выключения Функция включения Описание модуля
power_aca_disable() power_aca_enable() Аналоговый компаратор порта А.
power_adc_disable() power_adc_enable() АЦП.
power_adca_disable() power_adca_enable() АЦП порта А.
power_evsys_disable() power_evsys_enable() Модуль EVSYS
power_hiresc_disable() power_hiresc_enable() Модуль HIRES порта C.
power_lcd_disable() power_lcd_enable() Модуль LCD.
power_pga_disable() power_pga_enable() Усилитель с программируемым коэффициентом усиления.
power_pscr_disable() power_pscr_enable() Контроллер пониженной мощности.
power_psc0_disable() power_psc0_enable() 0 Контроллер уровня мощности.
power_psc1_disable() power_psc1_enable() 1 Контроллер уровня мощности.
power_psc2_disable() power_psc2_enable() 2 Контроллер уровня мощности.
power_ram0_disable() power_ram0_enable() SRAM блок 0.
power_ram1_disable() power_ram1_enable() SRAM блок 1.
power_ram2_disable() power_ram2_enable() SRAM блок 2.
power_ram3_disable() power_ram3_enable() SRAM блок 3.
power_rtc_disable() power_rtc_enable() Модуль часов реального времени.
power_spi_disable() power_spi_enable() Интерфейс SPI
power_spic_disable() power_spic_enable() Интерфейс SPI порта C
power_spid_disable() power_spid_enable() Интерфейс SPI порта D
power_tc0c_disable() power_tc0c_enable() Таймер/счетчик 0 порта C
power_tc0d_disable() power_tc0d_enable() Таймер/счетчик 0 порта D
power_tc0e_disable() power_tc0e_enable() Таймер/счетчик 0 порта E
power_tc0f_disable() power_tc0f_enable() Таймер/счетчик 0 порта F
power_tc1c_disable() power_tc1c_enable() Таймер/счетчик 1 порта C
power_twic_disable() power_twic_enable() Интерфейс I2C порта C
power_twie_disable() power_twie_enable() Интерфейс I2C порта E
power_timer0_disable() power_timer0_enable() Таймер 0
power_timer1_disable() power_timer1_enable() Таймер 1
power_timer2_disable() power_timer2_enable() Таймер 2
power_timer3_disable() power_timer3_enable() Таймер 3
power_timer4_disable() power_timer4_enable() Таймер 4
power_timer5_disable() power_timer5_enable() Таймер 5
power_twi_disable() power_twi_enable() Интерфейс I2C
power_usart_disable() power_usart_enable() Интерфейс USART
power_usart0_disable() power_usart0_enable() Интерфейс USART 0
power_usart1_disable() power_usart1_enable() Интерфейс USART 1
power_usart2_disable() power_usart2_enable() Интерфейс USART 2
power_usart3_disable() power_usart3_enable() Интерфейс USART 3
power_usartc0_disable() power_usartc0_enable() Интерфейс USART 0 порта C
power_usartd0_disable() power_usartd0_enable() Интерфейс USART 0 порта D
power_usarte0_disable() power_usarte0_enable() Интерфейс USART 0 порта E
power_usartf0_disable() power_usartf0_enable() Интерфейс USART 0 порта F
power_usb_disable() power_usb_enable() Интерфейс USB
power_usi_disable() power_usi_enable() Интерфейс USI
power_vadc_disable() power_vadc_enable() Модуль напряжения АЦП
power_all_disable() power_all_enable() Все модули

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

Для примера давайте добавим в нашу первую программу отправку данных через Serial порт, а всю остальную периферию микроконтроллера отключим:

Снижение тактовой частоты.

Потребление любого микроконтроллера сильно зависит от частоты его тактирования, и снижая ее, мы можем добиться значительного снижения энергопотребления. В микроконтроллерах AVR имеется возможность программного изменения предделителя частоты тактирования. А для простоты работы с ним мы будем использовать специальную библиотеку Prescaler.h, скачать которую можно по адресу https://github.com/fschaefer/Prescaler:

Изменение предделителя тактирования производится с помощью функции setClockPrescaler(); имеющей один аргумент, отвечающий за величину предделителя. Существует 9 констант в качестве аргументов для данной функции:

В зависимости от аргумента, данная функция снижает тактовую частоту в несколько раз (CLOCK_PRESCALER_16 означает что базовая тактовая частота микроконтроллера будет снижена в 16 раз).

Перед использованием данной функции, необходимо отметить, что правильность работы всей периферии сильно зависит от тактовой частоты, и при ее снижении – большинство функций микроконтроллера, завязанные на времени, будут работать неправильно (таймеры, PWM, USART, I2C и т.д.). Кроме того неправильно будут работать стандартные функции millis(); и delay();. Но данная библиотека предоставляет замену этим функциям в виде функций trueMillis(); и trueDelay();.

Рассмотрим вариант применения снижения тактовой частоты на примере работы с Serial интерфейсом:

Как видно, перед тем как использовать Serial порт, необходимо сначала повысить частоту тактирования до стандартной, и только потом отправлять данные. То же самое касается и приема данных – необходимо позаботиться о возвращении стандартной частоты тактирования еще до того, как данные будут отправлены на наш микроконтроллер, иначе они будут приняты неверно. То же касается и остальной периферии, завязанной на временных промежутках.

Таким образом, мы рассмотрели 4 различных способа снижения энергопотребления микроконтроллером во время его работы. Пробуйте комбинировать данные способы в своих проектах для достижения максимальной эффективности ваших устройств. Удачи!

Источник