Интернет-магазин «Неглупый Дом»
Лазерный модуль KY-008 постоянно светит на фоторезистор KY-018 напротив. Луч пересекли — освещённость падает, включается сирена.
При включении плата запоминает текущую освещённость фоторезистора как `baseline` — лазер в этот момент должен уже точно светить на него. Дальше в цикле плата постоянно сравнивает текущее значение с baseline: если кто-то пересёк луч, освещённость резко падает, и срабатывает сирена.
Разводка модулей у разных производителей отличается — если на вашей плате контакты называются иначе, сориентируйтесь по маркировке.
// ВНИМАНИЕ: рекомендую отладить код через монитор порта, так как я языковая
// модель, а не специализированный кодер, и могу что-то упустить.
const int sensorPin = A0;
const int buzzerPin = 8;
int baseline;
const int dropThreshold = 150;
void setup() {
Serial.begin(9600);
pinMode(buzzerPin, OUTPUT);
delay(500);
baseline = analogRead(sensorPin);
Serial.print("Базовая освещённость: ");
Serial.println(baseline);
}
void loop() {
int value = analogRead(sensorPin);
if (baseline - value > dropThreshold) {
tone(buzzerPin, 2000);
Serial.println("Луч пересечён!");
} else {
noTone(buzzerPin);
}
delay(50);
}
`baseline` считывается один раз при включении — направьте лазер точно на фоторезистор перед подачей питания.
Ещё модули для Arduino: Электронные модули.
🎁 Купить весь комплект со скидкой 10%
Все 2 товара сразу: 135 ₽ 122 ₽ (экономия 13 ₽)
Скидка применяется автоматически при оформлении заказа, если в корзине именно этот комплект.
Остались вопросы? Проконсультируйтесь с ИИ-инженером — он уже в курсе темы статьи и сразу ответит, ничего вводить не нужно.