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

发布时间:2023年12月28日

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

具体讲解

在这里插入图片描述

雨滴传感器基本上是一块板,上面以线形形式涂覆镍。它基于抵抗原理。雨水传感器模块允许通过模拟输出引脚测量湿度,当湿度阈值超过时,它可以提供数字输出。
该模块基于LM393运算放大器。它包括电子模块和“收集”雨滴的印刷电路板。当雨滴积聚在电路板上时,它们会形成并联电阻路径,该路径可通过运算放大器进行测量。
传感器是一个电阻偶极子,在潮湿时显示较小的电阻,而在干燥时显示较大的电阻。当船上没有雨滴时,它会增加电阻,因此我们根据V = IR获得高电压。
当出现雨滴时,它会降低电阻,因为水是电的导体,并且水的存在使镍线并联连接,因此降低了电阻并降低了其两端的电压降。

电路连接

在这里插入图片描述

代码实现

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!

电路连接

在这里插入图片描述

代码实现

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的亮度。倾斜模块会降低一个模块的亮度,同时增加另一个模块的亮度,从而产生幻觉地从一个模块传递到另一个模块的光??幻觉。

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。

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); 
  }
}
文章来源:https://blog.csdn.net/weixin_47567401/article/details/135239931
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。