среда, 24 октября 2012 г.

Подключаем IR-sensor к Arduino

IR-sensor очень интересная штука. Можно понаделывать разных выключателей, переключателей или датчиков для робота...
Инструкция по подключению на примере IR Infrared Sensor Switch Module (найти можно например на dx.com, SKU 121517) вот такого:
Датчики под неопределенным названием KeyesIR, на обратной стороне такое же неопределенное HOYA =)

Подключить не сложно, контакты на нем подписаны.

  • "GND" соответственно к GND Arduino
  • "+" к 5V Arduino
  • "OUT" ко 2 (для примера) пину.
Пример скетча для arduino:
// постоянные:
const int  sensorPin = 2;    // пин, куда подключен OUT датчика
const int ledPin = 13;       // пин со светодиодом
// переменные:
unsigned long currentTime;
unsigned long loopTime;
void setup() {
  pinMode(sensorPin, INPUT);   // инициализируем пин датчика
  pinMode(ledPin, OUTPUT);     // инициализируем пин светодиода
  currentTime = millis();
  loopTime = currentTime;
}

void loop() {
  currentTime = millis();   if(currentTime >= (loopTime+1000)) {   // задержка перед повторным
    if(digitalRead(sensorPin) == LOW){         // срабатыванием 1сек
      digitalWrite(ledPin, !digitalRead(ledPin));     // инвертируем значение пина
      loopTime = currentTime;                              // светодиода
    }
  }  

}
Задержка нужна в случае если нужно сделать выключатель лампы, как в моем примере, чтобы если над ним махнули рукой, он не срабатывал на все пальцы по очереди, а только на взмах =))

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

Пара фото с бредборда, отладка =)


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

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