37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备逐一动手试试多做实验,不管成功与否,都会记录下来——小小的进步或是搞不掂的问题,希望能够抛砖引玉。
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验十二:3144E霍尔开关传感器模块 磁性磁铁磁场计数电机测速 可调灵敏度
2、实验八:利用磁场变化(移动磁铁)点亮LED灯
(1)实验参考开源代码(Arduino):
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验八:通过串口查看磁场数值并点亮LED灯
实验接线:霍尔模块AO接Uno的A0,LED接D13
*/
int ledpin = 13;
int readpin = A0;
int incoming = 0; //设置磁场的模拟变量
void setup () {
pinMode (ledpin, OUTPUT);
pinMode (readpin, INPUT) ;
Serial.begin(9600);
}
void loop () {
incoming = analogRead(readpin) ; //将模拟数据(A0)赋值给变量
if (incoming > 505) {
Serial.print(incoming); //串口输出磁场数值
Serial.println(" 没有检测到");
digitalWrite(ledpin, LOW); //熄灭LED
}
if (incoming < 505) {
Serial.print(incoming); //串口输出磁场数值
Serial.println("检测到磁场,点亮LED");
digitalWrite(ledpin, HIGH); //点亮LED
}
Serial.println(incoming);
delay(500);
}
(2)实验八场景图
(3)实验九开源图形编程(Mind+、编玩边学)以及实验串口输出截图
3、实验十:霍尔磁感应声光报警器(磁控开关,接220V)
(1)实验参考开源代码(Arduino):
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验十:霍尔磁感应声光报警器(磁控开关,接220V)
实验接线:LED接D13、继电器模块接D11、蜂鸣器模块接D12、
霍尔开关模块接D2
*/
void setup() {
pinMode(2, INPUT); //将D2设置为输入状态(霍尔开关)
pinMode(11, OUTPUT); //D11设置为输出状态(继电器)
pinMode(12, OUTPUT); //D12设置为输出状态(蜂鸣器)
pinMode(13, OUTPUT); //D13设置为输出状态(LED灯)
}
void loop() {
if (digitalRead(2)) { //如果磁铁靠近(磁感应信号)
digitalWrite(11, HIGH); // 则继电器吸合,接通220V灯泡
digitalWrite(12, LOW); // 蜂鸣器响
digitalWrite(13, HIGH); //LED指示灯亮
delay(3000);// 延时3000毫秒
}
else {
digitalWrite(11, LOW); // 则继电器释放
digitalWrite(12, HIGH); //蜂鸣器不响
digitalWrite(13, LOW); // LED指示灯熄灭
}
}
(2)实验十一开源仿真编程(Linkboy V4.2)
4、实验十三:简易高斯测量仪测量磁感应强度(%)
(1)实验参考开源代码(Arduino):
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验三:简易高斯测量仪测量相对磁感应强度(%)
实验接线:霍尔模块AO接Uno的A0,LED接D13
*/
int analogPin = A0; // 模拟针脚A0接线性霍尔模块A0
int val = 0; // 读取值
int valTran = 0; // 转换后
void setup(){
Serial.begin(9600);
}
void loop(){
val = analogRead(analogPin); // 读取输入引脚
valTran = map(val, 525, 865, 0, 100);//均为参考实验值
// map函数主要功能为把一个数从一个范围变换到另一个范围 map(value, fromLow, fromHigh, toLow, toHigh)
Serial.print("相对磁场强度=");
Serial.print(valTran); // 打印线性霍尔调试值(相对磁场强度%)
Serial.println("%");
delay(1000);
}
(2)实验串口输出数值
(3)实验十四开源图形编程(Mind+、编玩边学)及串口输出的实验测量值