激光传感器
用来发出红色激光。
/****** 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.23delay(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);
}