IT News: Digital Camera, OS, Laptop, Smartphone, Smart TV, Sound...

The Author's Project by Valeri N.Kravchuk
Сайт проверен Dr.Web
Меню сайта
  • Главная страница
  • Информация о сайте
  • Дневник
  • Каталог файлов
  • Обратная связь
  • Каталог сайтов
  • FAQ
  • Доска объявлений
  • Форум
  • Фотоальбом
  • Категории раздела
    Автомобильные гаджеты, ремонт... [143]
    Безопасность IT [404]
    Блоки питания, Power Banks, зарядки... [508]
    Видеорегистраторы [186]
    Гаджеты для спорта и здоровья... [190]
    Гаджеты, аксессуары... [627]
    Измерительная техника, инструменты [437]
    Накопители данных [232]
    Нетбуки, Ноутбуки, Ультрабуки [689]
    Мультиварки, блендеры и не только... [162]
    Планшеты [764]
    Радар-детекторы [26]
    Роботы-пылесосы [37]
    Своими руками [360]
    Сети, сетевые технологии, оборудование... [273]
    Смартфоны [4959]
    Фотокамеры, объективы, искусство фотографии.. [541]
    Умный дом [50]
    Электронные книги [101]
    CB, LPD, PMR- связь... [170]
    DECT, IP-телефоны [18]
    Drones, boats, cars... [108]
    electric cars [35]
    GPS-навигаторы, трекеры... [51]
    Linux и не только [3981]
    mini computers и не только... [409]
    News IT, Это интересно, ликбез... [1120]
    Smart TV, UltraHD, приставки, проекторы... [415]
    Smart Watch [268]
    Sound: наушники, плееры, усилители... [618]
    Windows 10... [301]
    Windows 11 [37]
    Погода

  • Метеорадар БРЕСТ
  • Погода в Бресте от www.yr.no

    Яндекс.Погода БРЕСТ

  • Интересные ссылки

    COMPIZOMANIA

    Наш опрос
    Оцените мой сайт
    Всего ответов: 1347
    Статистика
    Анализ веб сайтов

    Яндекс.Метрика

    Рейтинг@Mail.ru Яндекс цитирования

    Russian America Top. Рейтинг ресурсов Русской Америки.

    eXTReMe Tracker

    Правильный CSS!


    Онлайн всего: 183
    Гостей: 183
    Пользователей: 0
    Locations of visitors to this page
    Форма входа
    Главная » 2014 » Ноябрь » 19 » Питание Raspberry Pi с использованием Arduino
    11:25
    Питание Raspberry Pi с использованием Arduino

    Питание Raspberry Pi с использованием Arduino

    Многие наверняка знают, что подать питание на Arduino от Raspberry Pi не трудно, для этого просто нужен USB шнур. Обратная задача выглядит сложнее, так как у большинства контроллеров Arduino нет USB выхода (Due — исключение). Тем не менее, это возможно сделать с помощью пинов GPIO, и я хочу рассказать о конкретном примере для Arduino Nano V3.0 и Raspberry Pi B rev.2. Помимо самой подачи питания, также расскажу как можно контроллировать это питание используя кнопку и MOSFET транзистор.

    Теоретическая возможность

    Большинство Arduino-совместимых контроллеров изпользуют 5V пины. Исключение составляет разве что Arduino Due и 3.3V выход из Arduino, но сейчас не об этом. Также известно, что один из способов подать питание на Raspberry Pi — это использование 5V и GND пинов на 26-ти контактном разъеме P1:

    Казалось бы, что решение очевидно — надо подсоединить Raspberry Pi к любому из пинов Arduino, и все заработает. Моя попытка сделать это привела к тому, что Raspberry Pi засветил светодиодом PWR, но светодиод ACT так и не зажегся. Причина — очень маленькая сила тока от пинов Arduino (порядка 40-50 мА). Но у Arduino есть отдельный пин 5V, который (согласно ссылке) может выдавать около 400-500 мА. Теперь необходимо проверить, хватит ли такого тока для питания Raspberry.

    Для нормального питания Raspberry Pi с двумя подключенными USB устройствами необходимо порядка 700 мА. Каждое USB устройство может потреблять до 140 мА (источник). Малина может потреблять еще больше тока, если она разогнана (моя — нет). Таким образом, если использовать неразогнанную RPi без USB устройств, то силы тока от Arduino 5V пина должно вполне хватить.

    Для того чтобы контроллировать подачу питания, необходимо еще несколько ингредиентов: кнопка питания и что-то, способное управлять большими токами. Я для этих целей использовал MOSFET транзистор. Перейдем непосредственно к использованным частям.
     

    Необходимое аппаратное и программное обеспечение

    Я использовал следующие «железные» части:

    • Raspberry Pi B rev. 2;
    • Arduino Nano V3.0;
    • кнопка для контроля питания (я использовал кнопку с фиксацией и сигнальным проводом);
    • MOSFET транзистор (у меня оказался IRF530N);
    • Breadboard и несколько проводов.


    Для прошивки Arduino понадобится IDE, я использовал версию 1.5.8 BETA, но стабильная 1.0.6 тоже подойдет. Также понадобится моя маленькая библиотека для PowerButton (ссылка в конце статьи в разделе про утилиты).
     

    Схемы

    Схема подключения выглядит так:



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



    Пояснения к схемам:
     

    1. D2 подсоединен к пину SIG у кнопки.
    2. D4 подсоединен к пину VCC у кнопки.
    3. D5 подсоединен к затвору MOSFET.



    Cоединение c D2 пином не случайно: библиотека для кнопки использует прерывания, а у Arduino Nano только пины D2/D3 предназначены для этих целей (проверить какие пины на вашей Arduino поддерживают прерывания можно тут).
     

    Исходный код программы для Arduino
    #include <PowerButton.h>
     
    #define POWER_PIN_SIG  2
    #define POWER_PIN_VCC  4
    #define POWER_FET_GATE 5
    #define POWER_PIN_INT  0
     
    PowerButtonSwitch pbs;
     
    void onPowerOn(){
      Serial.println("Power On");
      digitalWrite(POWER_FET_GATE, 1);  // Открываем затвор (gate)
    }
     
    void onPowerOff(){
      Serial.println("Power Off");
      digitalWrite(POWER_FET_GATE, 0);  // Закрываем затвор (gate)
    }
     
    void setup() {
      Serial.begin(9600);  
     
      // Вывод сигнала от Arduino к затвору MOSFET (gate)
      pinMode(POWER_FET_GATE, OUTPUT);
      digitalWrite(POWER_FET_GATE, 0);
     
      // Начальная настройка кнопки питания
      pbs.setupPowerButton(POWER_PIN_SIG, POWER_PIN_VCC, POWER_PIN_INT);
     
      // Считываем текущее значение
      // Если есть сигнал от кнопки,
      // включаем Raspberry Pi
      int st = pbs.getSwitchStatus();
      if (st == POWER_ON) {
        onPowerOn();
      }
     
      // Добавляем обработчики событий
      pbs.onPowerOn(onPowerOn);
      pbs.onPowerOff(onPowerOff);
    }
     
    void loop() {
      // Пустой цикл
      delay(1000);
      Serial.println("No actions");
    }



    Большинство действий на себя берет библиотека, так что код очень прост.
     

    Тестирование решения

    Короткое видео с тестированием:

    Как видно, визуально все работает. Но все-таки надо проверить напряжение между пинами TP1/TP2 (методика тут). У меня получилось значение ~4.6V, рекомендуемое значение больше 4.75V.
     

    Заключение

    Несмотря на то, что все работает, все-таки есть подозрение что при подключении периферии тока от 5V пина Arduino будет недостаточно. MOSFET и кнопка работают отлично в паре, такая связка может пригодится для дальнейших проектов.

    Утилиты и библиотеки, использованные для написания:

    • Fritzing: использовалась для рисования схем, доступна тут.
    • собственно библиотека для PowerButton: можно взять с GitHub тут.



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

    http://habrahabr.ru/post/242739/

    Категория: mini computers и не только... | Просмотров: 725 | Добавил: laptop | Рейтинг: 3.8/4
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк слабее льва и тигра, но в цирке волк не выступает!
    Волк - единственный из зверей, который может пойти в бой на более сильного противника.
    Если же он проиграл бой, то до последнего вздоха смотрит в глаза противника. После этого умирает...

    Праздники сегодня

    Поиск
    Календарь
    Архив записей
    Друзья сайта
  • Официальный блог
  • JEEP - the best! Mercedes - the best! Автомобильный портал города Бреста: технические характеристики с фото, авторынок, автоспорт...
    Наша кнопка
    IT новости с моего лаптопа...

    Внимание!
    Администратор сайта laptop.ucoz.ru не несет ответственности за содержание рекламных объявлений. Все используемые на сайте зарегистрированные товарные знаки принадлежат своим законным владельцам! Используемая со сторонних источников информация публикуется с обязательными ссылками на эти источники.
    Copyright Valeri N.Kravchuk © 2007-2024