zoukankan      html  css  js  c++  java
  • Arduino与水泵实验+土壤湿度传感器

    1 水泵实验
    我们这里是使用的继电器控制的水泵,注意再实验的时候电池的电压不要超过6v,太大容易烧毁水泵,如果是长时间的使用水泵,要注意将水泵放入水中,这样可以达到给水泵降温的效果。
    1、全新5V继电器模块
    2、可以用作单片机开发板模块,可以用作 家电控制
    3、TTL控制信号
    4、控制直流或者交流信号,可以控制220V交流负载。
    5、有一个常开和一个常闭触点
    6、有电源指示灯
    7、有控制指示灯,吸合亮,断开不亮
    8、三极管驱动增加继电器线圈,控制脚高阻抗。
    9、控制脚有下拉电路,防止悬空继电器误动作

    继电器属于数字信号模块,我们通过继电器数字信号使继电器开合来控制水泵。我们使用Arduino 控制器的数字接口13,输出高电平延时1 秒后,输出低电平1 秒,即为开关断开一秒再接通一秒。
    参考源程序:

    int RelayPin=13;
    void setup() {
    // put your setup code here, to run once:
    pinMode(13,OUTPUT);
    }

    void loop() {
    // put your main code here, to run repeatedly:
    digitalWrite(13,HIGH);
    delay(1000);
    digitalWrite(13,LOW);
    delay(1000);
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    2 土壤湿度传感器
    土壤湿度传感器用于土壤的湿度检测。可通过电位器调节土壤湿度的阀值,顺时针调节,控制的湿度会越大,逆时针越小;湿度低于设定值时,DO输出高电平,模块提示灯亮;湿度高于设定值时,DO输出低电平,模块提示灯灭。工作电压3.3V-5V。3V时,在空气中AO读取的值最大为695,浸泡在水里的 最小值245;5V时,在空气中AO读取的值最大为1023,浸泡在水里的最小值245。
    接线:VCC接 Arduino 3.3V或5V,GND接Arduino GND,AO接ArduinoAnalog。
    DO接Arduino Digital 4

    代码:

    #define PIN_AO 2
    #define PIN_DO 4

    void setup() {
    pinMode(PIN_AO, INPUT);
    pinMode(PIN_DO, INPUT);
    Serial.begin(9600);
    }

    void loop() {
    Serial.print("AO=");
    Serial.print(analogRead(PIN_AO));
    Serial.print(", DO=");
    Serial.println(digitalRead(PIN_DO));
    delay(2000);
    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    3 自动浇花(土壤湿度传感器+水泵)

    代码:

    #include <Servo.h>

    int sensorpin = 4;//传感器引脚 有水为0;无水为1
    float pumpin = 13;//水泵引脚 低电平触发 digitalWrite(8,LOW);
    int var;
    int var2;
    int var3;
    int sensorpin2 = A2;
    void setup() {
    Serial.begin(9600);
    pinMode(sensorpin,INPUT);
    pinMode(sensorpin2,INPUT);
    pinMode(pumpin,OUTPUT);
    digitalWrite(pumpin,HIGH);//水泵关闭
    }
    void loop() {

    var = digitalRead(sensorpin);
    var2=digitalRead(pumpin);
    var3=analogRead(sensorpin2);

    Serial.print("var3:");
    Serial.println(var3);

    //如果传感器检测值为1表示没水;0表示有水
    if(var==1&&var3>600)
    {
    Serial.print(var);
    Serial.println("缺水状态!");
    digitalWrite(pumpin,LOW);//水泵打开
    Serial.println("水泵状态-打开");

    delay(1000);//浇水的时间是10秒

    digitalWrite(pumpin,HIGH);//水泵关闭
    Serial.println("水泵-关闭");


    }
    else
    {
    digitalWrite(pumpin,HIGH);//水泵关闭
    Serial.print(var);
    Serial.println("不缺水状态!");
    Serial.println("水泵-关闭");

    }


    delay(1000);//十秒钟扫描一次;
    //delay(36000000);//10小时扫描一次

    }

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54

    ---------------------

  • 相关阅读:
    SCAU 9504 面试
    SCAU 9503 懒人选座位
    SCAU 8628 相亲
    SCAU 10691 ACM 光环
    SCAU 8626 原子量计数
    SCAU 10674 等差对
    HDU ACM 1048 The Hardest Problem Ever (水题)
    SCAU 9502 ARDF
    SCAU 10686 DeathGod不知道的事情
    SCAU 8629 热身游戏(高精度)
  • 原文地址:https://www.cnblogs.com/ly570/p/11102739.html
Copyright © 2011-2022 走看看