传感器基础:传感器使用与编程使用(三)

目录

常用传感器讲解九--雨滴传感器

具体讲解

雨滴传感器基本上是一块板,上面以线形形式涂覆镍。它基于抵抗原理。雨水传感器模块允许通过模拟输出引脚测量湿度,当湿度阈值超过时,它可以提供数字输出。

该模块基于LM393运算放大器。它包括电子模块和"收集"雨滴的印刷电路板。当雨滴积聚在电路板上时,它们会形成并联电阻路径,该路径可通过运算放大器进行测量。

传感器是一个电阻偶极子,在潮湿时显示较小的电阻,而在干燥时显示较大的电阻。当船上没有雨滴时,它会增加电阻,因此我们根据V = IR获得高电压。

当出现雨滴时,它会降低电阻,因为水是电的导体,并且水的存在使镍线并联连接,因此降低了电阻并降低了其两端的电压降。

电路连接

代码实现

javascript 复制代码
const int buzzer=7;
int i;
void setup() {

pinMode(buzzer,OUTPUT);
pinMode(2,INPUT);  
}

void loop() {


if(digitalRead(2)==1)
{
  digitalWrite(buzzer,HIGH);
  
}

else
{
  digitalWrite(buzzer,LOW);
  
}


}

常用传感器讲解十--光传感器根据亮度安排灯

具体讲解

接线

我有一个光敏电阻连接到模拟引脚0(任何模拟引脚都可以工作)和面包板右侧的5V电压。它通过接地的1K欧姆电阻器运行。我将面包板另一侧的LED(任何颜色)连接到数字引脚13(任何数字引脚都可以工作)和接地的220欧姆电阻(100欧姆也可以工作)。在第一个LED的右侧,通过不同的数字引脚,以相同的方式为不同颜色的LED接线。

这个怎么运作

如果光敏电阻读取的值大于450,则显示"It is quite light!"。在串行监视器上,然后关闭所有LED,如下所示:

if(light > 450) { // If it is bright...

Serial.println("It is quite light!");

digitalWrite(13,LOW); //turn left LED off

digitalWrite(12,LOW); // turn right LED off

}

如果读取的值介于230到450之间,则会打印"It is average light!"。在串行监视器上,并打开左侧的LED,如下所示:

else if(light > 229 && light < 451) { // If it is average light...

Serial.println("It is average light!");

digitalWrite(13, HIGH); // turn left LED on

digitalWrite(12,LOW); // turn right LED off

}

这仅使我们得到低于230的值。如果该值小于230,则打印"It is quite dark!"。在串行监视器上,并打开两个LED,如下所示:

else { // If it's dark...

Serial.println("It is pretty dark!");

digitalWrite(13,HIGH); // Turn left LED on

digitalWrite(12,HIGH); // Turn right LED on

}

我在循环末尾添加了1000的延迟,以防止信息超载到串行监视器中,如下所示:

delay(1000); // don't spam the computer!

电路连接

代码实现

javascript 复制代码
int light = 0; // store the current light value

void setup() {
    // put your setup code here, to run once:
    Serial.begin(9600); //configure serial to talk to computer
    pinMode(13, OUTPUT); // configure digital pin 13 as an output
    pinMode(12, OUTPUT); // configure digital pin 12 as an output
}

void loop() {
    // put your main code here, to run repeatedly:
    light = analogRead(A0); // read and save value from PR
    
    Serial.println(light); // print current light value
 
    if(light > 450) { // If it is bright...
        Serial.println("It is quite light!");
        digitalWrite(13,LOW); //turn left LED off
        digitalWrite(12,LOW); // turn right LED off
    }
    else if(light > 229 && light < 451) { // If it is average light...
        Serial.println("It is average light!");
       digitalWrite(13, HIGH); // turn left LED on
       digitalWrite(12,LOW);  // turn right LED off
    }
    else { // If it's dark...
        Serial.println("It is pretty dark!");
        digitalWrite(13,HIGH); // Turn left LED on
        digitalWrite(12,HIGH); // Turn right LED on
    }
    delay(1000); // don't spam the computer!
}

常用传感器讲解七--light cup(KY-008)

具体讲解

KY-027魔术灯杯模块是一组两块板,每块板都有一个led和一个水银倾斜开关。使用PWM驱动每个模块上的LED,可以实现倾斜时将光从一个模块"神奇地"传递到另一个模块的效果。

KY-027是一对模块,每个模块由水银开关,LED和10kΩ电阻组成。每个板都有一个引脚来控制开关,LED,电源和地

电路连接

使用下图连接每个模块。

KY-027(A) Arduino的

G 地线

  • 5伏
    小号 8
    大号 9
    KY-027(B) Arduino的
    G 地线
  • 5伏
    小号 7
    大号 6

代码实现

在这个Arduino草图中,我们将使用两个KY-027模块来创建魔术灯杯效果。每个模块中的水银开关提供一个数字信号,该信号用于使用PWM来调节LED的亮度。倾斜模块会降低一个模块的亮度,同时增加另一个模块的亮度,从而产生幻觉地从一个模块传递到另一个模块的光​​幻觉。

javascript 复制代码
int ledPinA = 9;
int switchPinA = 8;
int switchStateA = 0;
int ledPinB = 6;
int switchPinB = 7;
int switchStateB = 0;
int brightness   = 0;

void setup() 
{
  pinMode(ledPinA, OUTPUT); 
  pinMode(ledPinB, OUTPUT);  
  pinMode(switchPinA, INPUT); 
  pinMode(switchPinB, INPUT);
}

void loop() 
{
  switchStateA = digitalRead(switchPinA);
  if (switchStateA == HIGH && brightness != 255)
  { 
   brightness ++;
  } 
  switchStateB = digitalRead(switchPinB);
  if (switchStateB == HIGH && brightness != 0)
  { 
   brightness --;
  } 
  analogWrite(ledPinA, brightness);  //  A slow fade out
  analogWrite(ledPinB, 255 - brightness);  // B slow bright up
  delay(20);
}

常用传感器讲解十二--倾斜开关传感器(KY-020)

具体讲解

KY-020 倾斜开关传感器模块。当电路向侧面倾斜时,只要以足够的力和倾斜度移动电路,即可激活内部的球开关,从而使电路闭合

KY-020由一个10kΩ电阻器和一个具有双向导电性的金属球开关组成,该开关根据倾斜程度来打开/关闭电路。它不测量倾斜角。

电路连接

将模块的电源线(中间)和地线(-)分别连接到+5和GND。将信号(S)连接到Arduino的引脚2。

KY-020 Arduino的

小号 2个

中间 +5伏

-- 地线

代码实现

当模块检测到倾斜度变化时,以下草图将打开Arduino引脚13上的LED。倾斜KY-020以打开/关闭LED。

javascript 复制代码
int tiltPin = 2;      // pin number for tilt switch signal 
int ledPin =  13;     // pin number of LED 
int tiltState = 0;    // variable for reading the tilt switch status

void setup() {  
  pinMode(ledPin, OUTPUT);  // set the LED pin as output      
  pinMode(tiltPin, INPUT);  // set the tilt switch pin as input
}

void loop(){
  // get the tilt switch state
  tiltState = digitalRead(tiltPin);

  // check if tilt switch is tilted.
  if (tiltState == HIGH) {     
    digitalWrite(ledPin, HIGH);  
  } 
  else {
    digitalWrite(ledPin, LOW); 
  }
}
相关推荐
电子科技圈10 小时前
芯科科技蓝牙、Wi-Fi、Wi-SUN产品广获业界认可,技术创新引领行业潮流
科技·mcu·物联网·iot
委员3 天前
基于NodeMCU的物联网窗帘控制系统设计
单片机·mcu·物联网·智能家居·iot
Moretl7 天前
Moretl安全日志采集工具
智能制造·iot·scada·qms·mes
Tlog嵌入式7 天前
MicroPython+ESP32:一.开发环境的搭建
单片机·mcu·物联网·iot
Moretl7 天前
Moretl开箱即用日志采集
运维·自动化·iot·qms·mes
乐鑫科技 Espressif8 天前
与乐鑫相约 CES 2025|创新技术引领物联网与嵌入式未来
物联网·ai·智能家居·信息与通信·iot·乐鑫科技
Moretl9 天前
稳定高效日志采集工具
c#·iot·mes
嵌入式大圣12 天前
单片机锂电池电量电压检测
stm32·单片机·嵌入式硬件·mcu·物联网·51单片机·iot
证卡识读张工12 天前
中软高科身份证云解码读卡器支付宝IoT小程序适配说明(二)
微信小程序·小程序·iot
电子科技圈13 天前
边缘AI和智能音频专家XMOS全球首家增值经销商(VAR)落地中国
人工智能·科技·嵌入式硬件·mcu·物联网·音视频·iot