KY-025簧片开关模块是一种小型电气开关,通常由接近磁场通过施加的磁场进行操作。
该模块具有数字和模拟输出。微调器用于校准传感器的灵敏度。
将开发板的模拟输出(A0)连接至Arduino的引脚A0,数字输出(D0)连接至引脚3。分别将电源线(+)和接地(G)分别连接至5V和GND。
KY-025 Arduino的
A0 A0
G 地线
在这个Arduino草图中,我们将从KY-025的数字和模拟接口中读取值,将需要一块磁铁来与模块交互。
当检测到磁场时,数字接口将发送HIGH信号,从而打开Arduino上的LED(引脚13)。
另一方面,当没有磁场存在时,模拟接口将返回HIGH数值;而在靠近磁体的情况下,模拟接口将返回零。
int led = 13; // define the LED pin
int digitalPin = 3; // KY-025 digital interface
int analogPin = A0; // KY-025 analog interface
int digitalVal; // digital readings
int analogVal; //analog readings
void setup()
{
pinMode(led, OUTPUT);
pinMode(digitalPin, INPUT);
//pinMode(analogPin, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// Read the digital interface
digitalVal = digitalRead(digitalPin);
if(digitalVal == HIGH) // if magnetic field is detected
{
digitalWrite(led, HIGH); // turn ON Arduino's LED
}
else
{
digitalWrite(led, LOW); // turn OFF Arduino's LED
}
// Read the analog interface
analogVal = analogRead(analogPin);
Serial.println(analogVal); // print analog value to serial
delay(100);
}
爆震传感器模块的基本用法和测试。草图显示了如何读取爆震传感器以确定其是否已被敲击或敲击。
如果检测到敲击声(有人敲击或敲击传感器),则Arduino板载LED会亮起两秒钟。
#define KNOCK_PIN 2
void setup() {
pinMode(LED_BUILTIN, OUTPUT); // on-board LED, usually pin 13
pinMode(KNOCK_PIN, INPUT); // knock sensor pin set to input
}
void loop() {
if (digitalRead(KNOCK_PIN)) { // knock detected?
// knock detected with pull-down resistor
digitalWrite(LED_BUILTIN, HIGH); // switch LED on
delay(2000); // leave LED on for period
}
else {
// knock not detected with pull-down resistor
digitalWrite(LED_BUILTIN, LOW); // switch LED off
}
}
HC-SR04超声波距离传感器的核心是两个超声波传感器。一个用作发射器,将电信号转换为40 KHz超声波脉冲。接收器监听发送的脉冲。如果接收到它们,它将产生一个输出脉冲,其宽度可用于确定脉冲传播的距离。像馅饼一样简单!
该传感器体积小巧,易于在任何机器人项目中使用,并提供2厘米至400厘米(约1英寸至13英尺)之间的出色非接触距离检测,精度为3mm。由于它的工作电压为5伏,因此可以直接连接到Arduino或任何其他5V逻辑微控制器。
这里直接做一个简单的超声波测距
// This uses Serial Monitor to display Range Finder distance readings
// Include NewPing Library
#include "NewPing.h"
// Hook up HC-SR04 with Trig to Arduino Pin 9, Echo to Arduino pin 10
#define TRIGGER_PIN 9
#define ECHO_PIN 10
// Maximum distance we want to ping for (in centimeters).
#define MAX_DISTANCE 400
// NewPing setup of pins and maximum distance.
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
float duration, distance;
void setup()
{
Serial.begin(9600);
}
void loop()
{
// Send ping, get distance in cm
distance = sonar.ping_cm();
// Send results to Serial Monitor
Serial.print("Distance = ");
if (distance >= 400 || distance <= 2)
{
Serial.println("Out of range");
}
else
{
Serial.print(distance);
Serial.println(" cm");
}
delay(500);
}