Arduino /*传感器使用指南
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、按键模块(HW-483)
- 二、蜂鸣器模块:无源蜂鸣器(HW-512)、有源蜂鸣器模块(MH-FMD)
- 三、光敏电阻模块:1.裸光敏电阻元件 2.光敏电阻模块(HW-486)
- 四、光电遮断器(HW-487)
- 五、激光发射模块(HW-493)
- 六、三色全彩 LED 模块(HW-478)
- 七、5v继电器(HW-482)
- 八、
- 总结
前言
一、按键模块(HW-483)
1.电路连接
这是一个上拉电阻的图样,平时按键没有按下时,Pin0常态处于高电平,程序配合是低电平触发,使得平时灯不会被点亮;
只有key按下时,接低,Pin0也变成低电平,这时低电平触发的程序,使灯被点亮;
2.代码实现
#define key 2//定义key 接口
#define led 13//定义led 接口
boolean state;//布尔变量 state,用来存放0和1两个状态void setup()
{pinMode(key,INPUT);//定义key 为输入接口pinMode(led,OUTPUT);//定义led 为输出接口
}
void loop()
{state=digitalRead(key);//digitalRead()函数不断检测key的值,并传给变量stateif(state == 1)//如果state是1,说明按键没有按下,是默认高电平状态{digitalWrite(led,0); //那么就让灯熄灭}else//否则{digitalWrite(led,1);//让灯点亮}
}
3.测试结果
测试结果:key按下按住不松手,灯亮;松开key,灯马上熄灭;
二、蜂鸣器模块:无源蜂鸣器(HW-512)、有源蜂鸣器模块(MH-FMD)
1.无源蜂鸣器HW-512:
1.电路接线
HW-512是一个无源蜂鸣器,正极相当于正极,负极相当于负极;
蜂鸣器正极接到arduino 8脚,负极通过一个220欧姆电阻接到arduino 的GND;
2.代码实现
int buzzer=8;//设置控制蜂鸣器的数字IO_8脚
int i = 0;//和系统借一个变量i,用作for循环的变量
void setup()
{
pinMode(buzzer,OUTPUT);//设置数字IO_8脚模式,OUTPUT为输出
}
void loop()
{ for(i=0;i<80;i++)//输出一个频率的声音{ digitalWrite(buzzer,HIGH);//发声音delay(1);//延时1ms digitalWrite(buzzer,LOW);//不发声音delay(1);//延时ms } for(i=0;i<100;i++)//输出另一个频率的声音 { digitalWrite(buzzer,HIGH);//发声音delay(2);//延时2ms digitalWrite(buzzer,LOW);//不发声音delay(2);//延时2ms }
}
//更改for循环的次数i和的delay延时的时间,就能得到其他频率的声音
3.测试结果
测试结果:蜂鸣器发出两种不同频率的声音,交替循环;
4.按键控制蜂鸣器
1.接线:
HW-483按键模块,负极接板子GND,正极(中间引脚)接板子+5v,s信号接板子2脚;
HW-512无源蜂鸣器模块,正极接板子8脚,负极通过220欧姆电阻接板子GND;
2.代码实现:
#define key 2//定义key 接口
#define buzzer 8//定义buzzer 接口
boolean state;//布尔变量 state,用来存放0和1两个状态
int i = 0;//和系统借一个变量i,用作for循环的变量void setup()//初始化部分
{pinMode(key,INPUT);//定义key 为输入接口pinMode(buzzer,OUTPUT);//定义led 为输出接口
}
void loop()
{state=digitalRead(key);//digitalRead()函数不断检测key的值,并传给变量stateif(state == 0)//如果state是0,if判断语句为真,说明按键已经按下,进入if语句{for(i=0;i<80;i++)//输出一个频率的声音{ digitalWrite(buzzer,HIGH);//发声音delay(1);//延时1ms digitalWrite(buzzer,LOW);//不发声音delay(1);//延时ms } }
}
3.测试结果:
测试结果:按下按键不松手,蜂鸣器发出一种声音的长鸣,松开key,声音停止;
2.有源蜂鸣器模块(MH-FMD)
有源蜂鸣器模块(MH-FMD-高电平触发):
1.电路连接:
HW-483按键模块,负极接板子GND,正极(中间引脚)接板子+5v,s信号接板子2脚;
MH-FMD-高电平触发有源蜂鸣器模块,正极接板子VCC,负极接板子GND,I/O口接板子数字8脚;
2.代码实现:
#define key 2//定义key 接口
#define buzzer 8//定义buzzer 接口
boolean state;//布尔变量 state,用来存放0和1两个状态
int i = 0;//和系统借一个变量i,用作for循环的变量void setup()//初始化部分
{pinMode(key,INPUT);//定义key 为输入接口pinMode(buzzer,OUTPUT);//定义led 为输出接口
}
void loop()
{state=digitalRead(key);//digitalRead()函数不断检测key的值,并传给变量stateif(state == 0)//如果state是0,if判断语句为真,说明按键已经按下,进入if语句{for(i=0;i<80;i++)//输出一个频率的声音{ digitalWrite(buzzer,HIGH);//发声音delay(1);//延时1ms digitalWrite(buzzer,LOW);//不发声音delay(1);//延时ms } for(i=0;i<100;i++)//输出另一个频率的声音 { digitalWrite(buzzer,HIGH);//发声音delay(2);//延时2ms digitalWrite(buzzer,LOW);//不发声音delay(2);//延时2ms } }
}
3.结果测试:
测试结果:按下按键不松手,执行void loop()里面两个for循环,蜂鸣器发出两种不同声音,交替出声,松开key,声音停止;
有源蜂鸣器模块(MH-FMD-低电平触发):
测试结果:故障混乱,程序写法有问题,待解决
三、光敏电阻模块:1.裸光敏电阻元件 2.光敏电阻模块(HW-486)
1.裸光敏电阻元件 :
1.电路连接:
2.代码实现:
int buzzer=6;//设置控制蜂鸣器的数字IO脚
int i = 0;
void setup()
{
pinMode(buzzer,OUTPUT);//设置数字IO脚模式,OUTPUT为输出
}
void loop()
{ for(i=0;i<80;i++)//输出一个频率的声音{ digitalWrite(buzzer,HIGH);//发声音delay(1);//延时1ms digitalWrite(buzzer,LOW);//不发声音delay(1);//延时ms } for(i=0;i<100;i++)//输出另一个频率的声音 { digitalWrite(buzzer,HIGH);//发声音delay(2);//延时2ms digitalWrite(buzzer,LOW);//不发声音delay(2);//延时2ms }
}
**原理说明:**光敏电阻受光越强,阻值越小,蜂鸣器越响;
3.测试验证:
测试验证:
现象是光敏电阻受光越强,蜂鸣器越响;还有个现象是光的频率如闪烁led,也可控制蜂鸣器交替发声;
2.光敏电阻模块(HW-486):
1.电路连接:
2.代码实现:
int sensorPin = 2;
int value = 0;
void setup() {Serial.begin(9600);
}
void loop() {value = analogRead(sensorPin);
Serial.println(value, DEC);
delay(50);
}
3.测试验证:
测试结果:光敏模块受光强,串口监视器读数数值就小,受光弱读数数值就增大;
四、光电遮断器(HW-487)
电路接线:
信号线接板子的数字3PWM引脚,VCC接板子VCC,GND接板子GND;
代码实现:
int Led=13;//定义LED 接口
int buttonpin=3; //定义光遮断传感器接口
int val;//定义数字变量val
void setup()
{pinMode(Led,OUTPUT);//定义LED 为输出接口
pinMode(buttonpin,INPUT);//定义光遮断传感器为输出接口
}
void loop()
{val=digitalRead(buttonpin);//将数字接口3的值读取赋给val
if(val==HIGH)//当光遮断传感器检测有信号时,LED 闪烁
{digitalWrite(Led,HIGH);
}
else
{digitalWrite(Led,LOW);
}
}
测试验证:
测试验证:光遮断器没有被遮挡时,led13灯不亮,当被遮挡时点亮;
五、激光发射模块(HW-493)
1.电路连接:
激光模块的信号线接板子的数字13口,VCC接板子的+5v,GND接板子的GND;
2.代码实现:
void setup()
{ pinMode(13, OUTPUT); // 定义13脚为数字输出接口
}
void loop() {digitalWrite(13, HIGH); // 打开激光头delay(1000); // 延时一秒digitalWrite(13, LOW); // 关闭激光头delay(1000); // 延时一秒
}
3.测试验证:
激光头的VCC按要求接板子+5v,现象是1秒闪灭;
拿去激光头VCC接到板子的+5v线,同上也是一样的现象;
单独用裸的3v激光头,正极接板子数字Pin13口,负极接板子GND,也会同样的现象;
六、三色全彩 LED 模块(HW-478)
1.电路连接:
模块的B接到板子数字9脚,R接到10脚,G接到11脚,-接到板子GND;
2.代码实现:
//Arduino test code:
int redpin = 11; //select the pin for the red LED
int bluepin =10; // select the pin for the blue LED
int greenpin =9;// select the pin for the green LED
int val;
void setup() {pinMode(redpin, OUTPUT);pinMode(bluepin, OUTPUT);pinMode(greenpin, OUTPUT);Serial.begin(9600);
}
void loop()
{for(val=255; val>0; val--){analogWrite(11, val);analogWrite(10, 255-val);analogWrite(9, 128-val);delay(2); }
for(val=0; val<255; val++){analogWrite(11, val);analogWrite(10, 255-val);analogWrite(9, 128-val);delay(2); }Serial.println(val, DEC);}
3.测试验证:
测试验证:灯芯是三色的,出现的效果是七彩的;
电路连接不变,更换成下面的代码,也是一样的效果
//Arduino test code:
int redpin = 11; // select the pin for the red LED
int bluepin =10; // select the pin for the blueLED
int val;
void setup() {pinMode(redpin, OUTPUT);pinMode(bluepin, OUTPUT);Serial.begin(9600);
}
void loop()
{for(val=255; val>0; val--){analogWrite(11, val);analogWrite(10, 255-val);delay(2); }
for(val=0; val<255; val++){analogWrite(11, val);analogWrite(10, 255-val);delay(2); }Serial.println(val, DEC);
}
七、5v继电器(HW-482)
1.电路接线:
继电器的+接板子+5v,-接板子GND,S接板子的数字Pin10口;
2.代码实现:
int relay = 10; //继电器导通触发信号-高电平有效;
void setup()
{pinMode(relay,OUTPUT); //定义端口属性为输出;
}
void loop()
{digitalWrite(relay,HIGH); //继电器导通;delay(2000);digitalWrite(relay,LOW); //继电器开关断开;delay(2000);
}
3.测试验证:
测试验证:
继电器闭合时,常闭端和公共端会导通,同时继电器的指示灯会亮;
继电器断开时,常闭端和公共端会断开,同时继电器的指示灯会熄灭;
八、
总结
提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。
Arduino /*传感器使用指南相关推荐
- Arduino 机器人权威指南pdf
下载地址:网盘下载 内容简介 · · · · · · 你想制作有趣的机器人吗?你想让机器人沿着指定的路线行走吗?你想让机器人帮助你清扫庭院吗?你想让机器人载着你逛街吗?那么请选择<Arduin ...
- 《Arduino开发实战指南:机器人卷》一2.1 数字I/O口的操作函数
本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第2章 ,第2.1节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- 《Arduino开发实战指南:机器人卷》一3.3 直流电机驱动电路原理
本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第3章 ,第3.3节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- 《Arduino开发实战指南:LabVIEW卷》——3.5 LabVIEW的程序结构
本节书摘来自华章计算机<Arduino开发实战指南:LabVIEW卷>一书中的第3章,第3.5节,作者:余崇梓著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...
- 《Arduino开发实战指南:LabVIEW卷》——3.2 LabVIEW的数据流编程方法
本节书摘来自华章计算机<Arduino开发实战指南:LabVIEW卷>一书中的第3章,第3.2节,作者:余崇梓著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...
- 《Arduino开发实战指南:机器人卷》一3.6 编程原理与示例程序
本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第3章 ,第3.6节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- 《Arduino开发实战指南:机器人卷》一2.4 时间函数
本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第2章 ,第2.4节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- 《Arduino开发实战指南:机器人卷》一2.2 模拟I/O口的操作函数
本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第2章 ,第2.2节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
- Mega2560(Arduino)Bootloader烧录指南
AVR系列单片机ATmega2560(Arduino)Bootloader烧录指南 Arduino系列单片机的开发与应用可以说是相当方便,Arduino IDE也是相当简洁明了,目前甚至有些STM32 ...
- 《Arduino开发实战指南:机器人卷》一3.2 直流电机工作原理
本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第3章 ,第3.2节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...
最新文章
- bulma.css_如何建立一个? 具有Bulma CSS的特斯拉响应页面
- Linux系统\Centos没有网卡eth0配置文件怎么办?
- 清除浮动的最佳方案:clearfix
- 从一次线上故障思考Java问题定位思路,java初级面试笔试题
- mysql工厂模式_设计模式-三种工厂模式实例
- clojure 使用Lazy-seq创建斐波那契数列
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第1节 网络通信概述_4_IP地址...
- 计算机文化基础模拟练习系统的设想
- 【笔记】OpenCV3 人脸识别
- MQL5 中如何调用指标
- 网络对战五子棋(附带源码,可以直接下载使用)
- 电脑设置u盘启动方法
- 嘴里又苦又干,还有异味
- 【知识点】关于axis的理解(python)
- Docker进阶实战
- base64编码图片替换url图片
- python 将List中元素两两组合
- android 插屏广告代码,插屏实现说明
- php面向对象--php面向对象ppt
- 怎么将几张pdf合并成一张_如何将多个pdf文件合并成一个pdf文件?