Модуль фоторезистора KY-018. Подключение к Arduino

Модуль фоторезистора KY-018 знаком по уроку: "Подключение модуля освещенности к Arduino" на моем втором сайте про Arduino. Сегодня в уроке рассмотрим данный модуль и научимся подключать KY-018 к Arduino. А также рассмотрим пример сигнализации с использованием модулей KY-008, KY-004, KY-006 и KY-018.

Описание модуля ky-018.

Описание модуля ky-018.

Модуль фоторезистора Arduino KY-018, используемый для измерения интенсивности света. Он может определить наличие или отсутствие света, а также интенсивность освещения - это связано с тем, что модуль является аналоговым и считывает показание с фоторезистора. Также существуют и цифровые модули освещённости, про них вы можете прочитать в уроке "Подключение модуля освещенности к Arduino".

Технические характеристики модуля освещённости для Arduino.

Технические характеристики модуля освещённости для Arduino.

Этот модуль состоит из фоторезистора и линейного резистора 10кОм . Сопротивление фоторезистора будет уменьшаться при наличии света и увеличиваться при его отсутствии. Выходной сигнал является аналоговым и определяет интенсивность света.

  • Рабочее напряжение - от 3,3 В до 5 В
  • Тип – аналоговый

Схема подключения модуля фоторезистора KY-018 к Arduino.

Подключите линию питания (посередине) и землю (-) к +5 и GND соответственно. Сигнальный контакт (S) подключите к контакту A0 на Arduino. Для определения освещённости будем использовать светодиод, который подключаем к 7 контакту Arduino.

Схема подключения модуля KY-018 к Arduino UNO.

Схема подключения модуля KY-018 к Arduino UNO.

Скетч для модуля освещённости KY-018.

byte sensorPin = A0;
byte ledPin = 3;
// Присваиваем имя для цифрового значения аналогового входа A0
// int округляет значения 
int value = 0;
void setup() {
  // Пин 3 со светодиодом будет выходом (англ. «output»)
  pinMode(ledPin, OUTPUT);
  // Пин A0 с фоторезистором будет входом (англ. «input»)
  pinMode(sensorPin, INPUT);
}
void loop() {
  // Считываем значение с фоторезистора на аналоговом входе A0
  value = analogRead(sensorPin);
  // value значение в диапозоне от 0 до 1023
  // Полученные значения на аналоговом входе A0 делим на 4 
  //чтобы уложиться в диопозон от 0 до 255
  data = value / 4;
  // Включаем светодиод с полученной ранее мощностью - от 0 до 255
  analogWrite(ledPin, data);
}

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

Сигнализация на Arduino.

Про данный пример я уже рассказывал в уроке про лазерный модуль KY-008.

В данном примере будем использовать модули из набора: 37 in 1 Sensors Kit for Arduino. Набор датчиков и индикаторов для Arduino

Для этого понадобится:

Следующим на очереди рассмотрим использование KY-008 в качестве сигнализации.

Как это все будет работать, фоторезистор будет принимать лазерный луч от нашего модуля KY-008. Пока лазер попадает на KY-018 Фоторезистор, на его выводах будет выдаваться определенное напряжение. Как только что-то или кто-то преградит путь лазера к KY-018, на выводах фоторезистора не будет выдаваться напряжение, после чего зуммер проинформирует, что лазерный луч был пересечен. Сброс сигнализации будет осуществляться с помощью KY-004 Модуля тактовой кнопки.

Схема подключения сигнализации.

Схема подключения сигнализации.

Рассмотрим код, который нужно будет загрузить в Arduino.

#define LASER 6 // задаем имя для Pin лазера
#define SENSOR A0 // фоторезистор 
#define BUTTON 12 // кнопка 
#define BUZZER 10 // звуковой излучатель

int laserThreshold = 100;// значение при котором сробатывае сигнал

void setup() {
  pinMode(LASER, OUTPUT);
  pinMode(BUTTON, INPUT_PULLUP);
  Serial.begin(9600);
}
boolean alarmState = false;

void loop() {
  if (! alarmState) {
    delay(500); 
    digitalWrite(LASER, HIGH);
    delay(500);
    unsigned long startTime = millis();
    while (millis() - startTime < 1000) {
      int sensorValue = analogRead(SENSOR);
      Serial.println(sensorValue);
      if (sensorValue > laserThreshold) {
        alarmState = true;
        break;
      }
      delay(10);
    }
    digitalWrite(LASER, LOW);
  }
  else {
    tone(BUZZER, 440);
    if (! digitalRead(BUTTON)) {
      alarmState = false; noTone(BUZZER);
    }
    delay(10);
  }
}

Как видим модуль KY-018 несмотря на свою простоту использования, применим в различных проектах на Arduino. Область применения модуля ограничивается только вашей фантазией.

Понравился Урок Модуль фоторезистора KY-018. Подключение к Arduino? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

Скетч модуля освещённости KY-018 Скетч модуля освещённости KY-018.ino1 Kb 755 Скачать
использование KY-018 в качестве сигнализации использование KY-018 в качестве сигнализации.ino1 Kb 688 Скачать

Комментарии

Ваше Имя*


Разработка проектов