激光传感器
用来发出红色激光。
/**
**** Arduino 接线 注意哈,这里直接两根****
* Arduino 传感器
* VCC 5v
* GND A0
**********************
*/
int pin = A0;
void setup() {
Serial.begin(9600); // 串口通信用于输出 log
pinMode(pin, OUTPUT);
}
void loop() {
delay(2000);
digitalWrite(pin, LOW); //关闭激光
delay(2000);
digitalWrite(pin, HIGH); //打开激光
}
超声波传感器
可用于测距。
开始之前先安装依赖
/**
**** Arduino 接线 ****
* Arduino 传感器
* VCC 5v
* GND GND
* Trig A0
* Echo A1
**********************
*/
#include <NewPing.h>
#define TRIGGER_PIN A0
#define ECHO_PIN A1
#define MAX_DISTANCE 500 // 最大测量距离 cm, 我手头的最大测量距离 180cm, 设置多了也没用
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
void setup() {
Serial.begin(9600); // 串口通信用于输出 log
}
void loop() {
delay(100);
unsigned int uS = sonar.ping();
Serial.print(uS / US_ROUNDTRIP_CM);
Serial.print(" cm \n");
}
模拟霍尔传感器
霍尔传感器用于接近开关、定位、速度检测和电流检测应用。
/**
**** Arduino 接线 ****
* Arduino 传感器
* VCC 5v
* GND GND
* A0 A0 磁场越大越高
* A1 7 达到阈值时输出低电平
**********************
*/
int pin = A0;
int pin2 = 7;
void setup() {
Serial.begin(9600); // 串口通信用于输出 log
pinMode(pin2, INPUT);
}
int val = 0;
int val2 = 0; // 达到阈值时输出低电平
void loop() {
val = analogRead(pin);
Serial.println(val);
val2 = digitalRead(pin2);
if(val2 == 1){
Serial.println("达到阈值");
}
delay(300);
}
DS18B20 温度传感器
DS18B20 温度传感器是一款常用的数字温度传感器,具有体积小、成本低、抗干扰能力强、精度高的特点。
可以直接输出温度数据。
开始前安装两个依赖
/**
**** Arduino 接线 ****
* Arduino 传感器
* VCC 5v
* GND GND
* A0 A0
**********************
*/
#include <OneWire.h>
#include <DallasTemperature.h>
#define ONE_WIRE_BUS A0 // 引脚
OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);
void setup() {
Serial.begin(9600); // 串口通信用于输出 log
sensors.begin();
}
void loop() {
sensors.requestTemperatures();
Serial.println(sensors.getTempCByIndex(0)); // 30.23
delay(300);
}
模拟温度传感器
模拟温度传感器模块使用 NTC热敏电阻,因此可以对温度进行敏感测试。该模块可以用于温度测量和温度报警。
/**
**** Arduino 接线 ****
* Arduino 传感器
* VCC 5v
* GND GND
* A0 A0
* D0 A1
**********************
*/
int pin = A0;
int pin2 = A1;
void setup() {
Serial.begin(9600); // 串口通信用于输出 log
pinMode(pin2, INPUT);
}
int val = 0; // 数值越大则越热
int val2 = 0; // 超过阈值是 0, 反之为 1
void loop() {
// 检测的数值输出
val = analogRead(pin);
Serial.print(val);
Serial.print("\t");
// 阈值输出
val2 = digitalRead(pin2);
Serial.print(val2);
Serial.print("\t");
Serial.println();
delay(300);
}