当前位置: 首页 > news >正文

传感器基础:传感器使用与编程使用(三)

目录

  • 常用传感器讲解九--雨滴传感器
    • 具体讲解
    • 电路连接
    • 代码实现
  • 常用传感器讲解十--光传感器根据亮度安排灯
    • 具体讲解
    • 电路连接
    • 代码实现
  • 常用传感器讲解七--light cup(KY-008)
    • 具体讲解
    • 电路连接
    • 代码实现
  • 常用传感器讲解十二--倾斜开关传感器(KY-020)
    • 具体讲解
    • 电路连接
    • 代码实现

常用传感器讲解九–雨滴传感器

具体讲解

在这里插入图片描述

雨滴传感器基本上是一块板,上面以线形形式涂覆镍。它基于抵抗原理。雨水传感器模块允许通过模拟输出引脚测量湿度,当湿度阈值超过时,它可以提供数字输出。
该模块基于LM393运算放大器。它包括电子模块和“收集”雨滴的印刷电路板。当雨滴积聚在电路板上时,它们会形成并联电阻路径,该路径可通过运算放大器进行测量。
传感器是一个电阻偶极子,在潮湿时显示较小的电阻,而在干燥时显示较大的电阻。当船上没有雨滴时,它会增加电阻,因此我们根据V = IR获得高电压。
当出现雨滴时,它会降低电阻,因为水是电的导体,并且水的存在使镍线并联连接,因此降低了电阻并降低了其两端的电压降。

电路连接

在这里插入图片描述

代码实现

const int buzzer=7;
int i;
void setup() {pinMode(buzzer,OUTPUT);
pinMode(2,INPUT);  
}void loop() {if(digitalRead(2)==1)
{digitalWrite(buzzer,HIGH);}else
{digitalWrite(buzzer,LOW);}}

常用传感器讲解十–光传感器根据亮度安排灯

具体讲解

接线
我有一个光敏电阻连接到模拟引脚0(任何模拟引脚都可以工作)和面包板右侧的5V电压。它通过接地的1K欧姆电阻器运行。我将面包板另一侧的LED(任何颜色)连接到数字引脚13(任何数字引脚都可以工作)和接地的220欧姆电阻(100欧姆也可以工作)。在第一个LED的右侧,通过不同的数字引脚,以相同的方式为不同颜色的LED接线。

这个怎么运作
如果光敏电阻读取的值大于450,则显示“It is quite light!”。在串行监视器上,然后关闭所有LED,如下所示:

if(light > 450) { // If it is bright…
Serial.println(“It is quite light!”);
digitalWrite(13,LOW); //turn left LED off
digitalWrite(12,LOW); // turn right LED off
}
如果读取的值介于230到450之间,则会打印“It is average light!”。在串行监视器上,并打开左侧的LED,如下所示:

else if(light > 229 && light < 451) { // If it is average light…
Serial.println(“It is average light!”);
digitalWrite(13, HIGH); // turn left LED on
digitalWrite(12,LOW); // turn right LED off
}
这仅使我们得到低于230的值。如果该值小于230,则打印“It is quite dark!”。在串行监视器上,并打开两个LED,如下所示:

else { // If it’s dark…
Serial.println(“It is pretty dark!”);
digitalWrite(13,HIGH); // Turn left LED on
digitalWrite(12,HIGH); // Turn right LED on
}
我在循环末尾添加了1000的延迟,以防止信息超载到串行监视器中,如下所示:

delay(1000); // don’t spam the computer!

电路连接

在这里插入图片描述

代码实现

int light = 0; // store the current light valuevoid setup() {// put your setup code here, to run once:Serial.begin(9600); //configure serial to talk to computerpinMode(13, OUTPUT); // configure digital pin 13 as an outputpinMode(12, OUTPUT); // configure digital pin 12 as an output
}void loop() {// put your main code here, to run repeatedly:light = analogRead(A0); // read and save value from PRSerial.println(light); // print current light valueif(light > 450) { // If it is bright...Serial.println("It is quite light!");digitalWrite(13,LOW); //turn left LED offdigitalWrite(12,LOW); // turn right LED off}else if(light > 229 && light < 451) { // If it is average light...Serial.println("It is average light!");digitalWrite(13, HIGH); // turn left LED ondigitalWrite(12,LOW);  // turn right LED off}else { // If it's dark...Serial.println("It is pretty dark!");digitalWrite(13,HIGH); // Turn left LED ondigitalWrite(12,HIGH); // Turn right LED on}delay(1000); // don't spam the computer!
}

常用传感器讲解七–light cup(KY-008)

具体讲解

在这里插入图片描述

KY-027魔术灯杯模块是一组两块板,每块板都有一个led和一个水银倾斜开关。使用PWM驱动每个模块上的LED,可以实现倾斜时将光从一个模块“神奇地”传递到另一个模块的效果。
KY-027是一对模块,每个模块由水银开关,LED和10kΩ电阻组成。每个板都有一个引脚来控制开关,LED,电源和地

电路连接

在这里插入图片描述

使用下图连接每个模块。

KY-027(A) Arduino的
G 地线

  • 5伏
    小号 8
    大号 9
    KY-027(B) Arduino的
    G 地线
  • 5伏
    小号 7
    大号 6

代码实现

在这个Arduino草图中,我们将使用两个KY-027模块来创建魔术灯杯效果。每个模块中的水银开关提供一个数字信号,该信号用于使用PWM来调节LED的亮度。倾斜模块会降低一个模块的亮度,同时增加另一个模块的亮度,从而产生幻觉地从一个模块传递到另一个模块的光​​幻觉。

int ledPinA = 9;
int switchPinA = 8;
int switchStateA = 0;
int ledPinB = 6;
int switchPinB = 7;
int switchStateB = 0;
int brightness   = 0;void setup() 
{pinMode(ledPinA, OUTPUT); pinMode(ledPinB, OUTPUT);  pinMode(switchPinA, INPUT); pinMode(switchPinB, INPUT);
}void loop() 
{switchStateA = digitalRead(switchPinA);if (switchStateA == HIGH && brightness != 255){ brightness ++;} switchStateB = digitalRead(switchPinB);if (switchStateB == HIGH && brightness != 0){ brightness --;} analogWrite(ledPinA, brightness);  //  A slow fade outanalogWrite(ledPinB, 255 - brightness);  // B slow bright updelay(20);
}

常用传感器讲解十二–倾斜开关传感器(KY-020)

具体讲解

在这里插入图片描述

KY-020 倾斜开关传感器模块。当电路向侧面倾斜时,只要以足够的力和倾斜度移动电路,即可激活内部的球开关,从而使电路闭合
KY-020由一个10kΩ电阻器和一个具有双向导电性的金属球开关组成,该开关根据倾斜程度来打开/关闭电路。它不测量倾斜角。

电路连接

将模块的电源线(中间)和地线(-)分别连接到+5和GND。将信号(S)连接到Arduino的引脚2。

KY-020 Arduino的
小号 2个
中间 +5伏
– 地线
在这里插入图片描述

代码实现

当模块检测到倾斜度变化时,以下草图将打开Arduino引脚13上的LED。倾斜KY-020以打开/关闭LED。

int tiltPin = 2;      // pin number for tilt switch signal 
int ledPin =  13;     // pin number of LED 
int tiltState = 0;    // variable for reading the tilt switch statusvoid setup() {  pinMode(ledPin, OUTPUT);  // set the LED pin as output      pinMode(tiltPin, INPUT);  // set the tilt switch pin as input
}void loop(){// get the tilt switch statetiltState = digitalRead(tiltPin);// check if tilt switch is tilted.if (tiltState == HIGH) {     digitalWrite(ledPin, HIGH);  } else {digitalWrite(ledPin, LOW); }
}

相关文章:

  • Linux上iPortal 配置80端口的http
  • 快速解决 npm 安装 node-sass 速度慢/错误的问题(nexus私服问题见上一篇博客)
  • 力扣热题100道-双指针篇
  • Flink1.17实战教程(第五篇:状态管理)
  • 文件操作安全之-目录穿越流量告警运营分析篇
  • Spring Boot整合RocketMQ
  • SSH秘钥登录服务器
  • Mybatis 动态 SQL - if
  • day44 1228
  • STM32 基础知识(探索者开发板)--93讲 PWM
  • 65.乐理基础-打拍子-前附点、后附点
  • Redis实现限流
  • 数字调制学习总结
  • R语言中的函数28:Reduce(), Filter(), Find(), Map(), Negate(), Position()
  • cpp_07_类型转换构造_析构函数_深拷贝_静态成员
  • CEF与代理
  • Codepen 每日精选(2018-3-25)
  • const let
  • Cumulo 的 ClojureScript 模块已经成型
  • Django 博客开发教程 8 - 博客文章详情页
  • Linux Process Manage
  • python学习笔记-类对象的信息
  • springboot_database项目介绍
  • text-decoration与color属性
  • Tornado学习笔记(1)
  • Vue 2.3、2.4 知识点小结
  • 如何胜任知名企业的商业数据分析师?
  • 使用Gradle第一次构建Java程序
  • 微信小程序实战练习(仿五洲到家微信版)
  • 小试R空间处理新库sf
  •  一套莫尔斯电报听写、翻译系统
  • 赢得Docker挑战最佳实践
  • 怎么把视频里的音乐提取出来
  • 怎么将电脑中的声音录制成WAV格式
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​第20课 在Android Native开发中加入新的C++类
  • ​一文看懂数据清洗:缺失值、异常值和重复值的处理
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (4) openssl rsa/pkey(查看私钥、从私钥中提取公钥、查看公钥)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)ssm捐赠救助系统 毕业设计 060945
  • (论文阅读31/100)Stacked hourglass networks for human pose estimation
  • (十八)SpringBoot之发送QQ邮件
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)四层和七层负载均衡的区别
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net websocket 获取http登录的用户_如何解密浏览器的登录密码?获取浏览器内用户信息?...
  • .Net环境下的缓存技术介绍
  • .net开发引用程序集提示没有强名称的解决办法