提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
一、按键模块(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提供了大量能使我们快速便捷地处理数据的函数和方法。