Arduino /*传感器使用指南

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

一、按键模块(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的值,并传给变量state
  if(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的值,并传给变量state
  if(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的值,并传给变量state
  if(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提供了大量能使我们快速便捷地处理数据的函数和方法。

  • 5
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值