К содержимому
  1. Главная
  2. Блог
  3. Как запустить съёмку ArduCAM по внешнему сигналу датчика

Как запустить съёмку ArduCAM по внешнему сигналу датчика

15 декабря 2012 · По материалам Arducam

У шилда ArduCAM 6 линий ввода-вывода общего назначения: их можно настроить как входы или выходы, и они заметно расширяют возможности платы Arduino с её ограниченным числом выводов. Линии ввода-вывода шилда ArduCAM устроены так же, как в микроконтроллере AVR: есть регистр направления (DDR), входной регистр (PIN) и выходной регистр (PORT). Ниже показано, как настроить GPIO шилда ArduCAM на вход и запускать съёмку по сигналу ПИК-датчика (PIR).

ПИК-датчик (PIR, пироэлектрический инфракрасный датчик) — датчик движения для охранной сигнализации, контроля присутствия посетителей, выключателей света и роботов. Он реагирует на движение и почти всегда служит для того, чтобы определить, вошёл ли человек в зону действия датчика или вышел из неё. Такие датчики маленькие, недорогие, экономичные, простые в использовании и не изнашиваются, поэтому их часто ставят в бытовые и офисные устройства. Их называют PIR-датчиками, пассивными инфракрасными, пироэлектрическими или ИК-датчиками движения. После подачи питания подождите 1–2 секунды, пока датчик «запомнит» неподвижную комнату. Если после этого что-то сдвинется, на выводе «alarm» установится высокий уровень. ПИК-датчиком можно запускать съёмку сцены шилдом ArduCAM.

ПИК-датчик (PIR)

Схема соединения ArduCAM и ПИК-датчика. В этом примере к модулю ПИК-датчика подключён вывод IO0.

Схема подключения ПИК-датчика к ArduCAM

Прошивка:

В функции setup() настройте GPIO на вход:

void setup()
{
  myCAM.write_reg( ARDUCHIP_DDR, 0x00);
}

В функции loop() опрашивайте состояние GPIO и начинайте съёмку, когда сработал ПИК-датчик:

void loop()
{
...  
  while(1)
  {
    gpio_trig = myCAM.read_reg(ARDUCHIP_PIN);            //Read external trigger from GPIO0~5
    if (gpio_trig & 0x01)      //if GPIO0 is high
    {
       k = k + 1;
       itoa(k, str, 10); 
       strcat(str,".bmp");    //Generate file name
       GrabImage(str);
    }

  }
...  
}

Полный код для Arduino можно скачать здесь.

Ещё по теме

Запросить цену

Укажите количество — пришлём коммерческое предложение.