• 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

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

  • 相关阅读:
    三、Pandas入门
    二、NumPy入门
    jQuery模拟angular的数据绑定
    ajax里的getJSON的用法
    SQL中关于传递参数为Null的示例
    原生ajax示例
    页面自增加示例
    angular1数据绑定例子
    angular2 工程目录结构介绍
    angular js环境配置
  • 原文地址:https://www.cnblogs.com/ly570/p/11102739.html
Copyright © 2020-2023  润新知