一板网电子技术论坛

风筝
发表于: 2020-4-8 17:59:18 | 显示全部楼层

在本篇文章中,我们使用Arduino开发板设计了一款带警报的激光安全系统,该系统使用了激光模块KY-008。本项目的想法围绕着创建安全系统。只要有任何物体遮挡激光射线,蜂鸣器警报就会响起。


该项目可以在应用在任何地方,不仅是建筑物或房屋,而且还可以使用这种不可见的激光束来保护许多珍贵的物品,例如珠宝、钻石、博物馆中的珍贵古董,等等。许多人使用激光束安全系统来保护自己的房屋、办公室、商店、仓库等。

Laser-Module-KY-008-1000x563.jpg


所需的组件

●    Arduino UNO开发板

●    激光二极管模块KY-008

●    蜂鸣器

●    LDR光敏电阻

●    按钮开关

●    面包板

●    连接线


电路图:

以下是使用Arduino的激光安全系统的电路连接图:

Circuit-Diagram.jpg


激光二极管模块KY-008:

laser-module.png

用于Arduino的激光发射器模块KY-008发出点状的红色激光束。 KY-008激光发射器模块包括一个650nm红色激光二极管头和一个电阻。小心操作,请勿直视激光头。


激光发射器模块KY-008的规格如下:

●    工作电压 - 5V

●    输出功率 - 5mW

●    波长 - 650nm

●    工作电流 - 小于40mA

●    工作温度 - -10°C〜40°C

●    尺寸 - 18.5毫米x 15毫米


项目工作原理:

该项目基本上是基于中断的原理进行的。如果以任何方式打断了激光发射灯,将启动警报,只有通过按钮将其复位。激光是一种集中光源,可发出单色的直光束。

laser-LDR.jpg

LDR对光敏感,当激光打到LDR时会产生电压。当激光束中断且无法到达LDR时,其电压输出会发生变化,最终警报会响起。


源代码/程序:

  1. int laserPin = 3;
  2. int sensorPin = A0;
  3. int buttonPin = 12;
  4. int buzzerPin = 11;

  5. int laserThreshold = 10;

  6. void setup() {
  7. pinMode(laserPin, OUTPUT);
  8. pinMode(buttonPin, INPUT_PULLUP);
  9. Serial.begin(9600);
  10. }

  11. boolean alarmState = false;

  12. void loop() {
  13. if (! alarmState) {
  14. delay(1000);
  15. digitalWrite(laserPin, HIGH);
  16. delay(10);
  17. unsigned long startTime = millis();
  18. while (millis() - startTime < 1000) {
  19. int sensorValue = analogRead(sensorPin);
  20. Serial.println(sensorValue);
  21. if (sensorValue > laserThreshold) {
  22. alarmState = true;
  23. break;
  24. }
  25. delay(10);
  26. }
  27. digitalWrite(laserPin, LOW);
  28. } else {
  29. tone(buzzerPin, 440);
  30. if (! digitalRead(buttonPin)) {
  31. alarmState = false;
  32. noTone(buzzerPin);
  33. }
  34. delay(10);
  35. }
  36. }
复制代码

跳转到指定楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题 584 | 回复: 1186



手机版|

GMT+8, 2021-12-2 18:31 , Processed in 0.026082 second(s), 6 queries , Gzip On, MemCache On. Powered by Discuz! X3.4

YiBoard一板网 © 2015-2021 地址:河北省石家庄市长安区高营大街 ( 冀ICP备18020117号 )

快速回复 返回顶部 返回列表