基于arduino的土壤湿度检测以及水泵浇水(包含proteus仿真)

proteus中没有arduino中土壤传感器所需的继电器以及四线制模块,因此我从其他地方找到原理图

上图便是四线制模块的原理图,其中的SOIL SIMULATED RESISTANCE为土壤的模拟电阻,及两脚式土壤湿度检测器的接入端,变阻器用来调节灵敏度

上图为水泵系统,jqc3ff继电器的原理图,RL4为普通的继电器,开关转换的电压阈值可调。

若13处输入高电平,经三极管后与VCC形成电势差,最终吸附开关使电机断开,因此为低通。

总电路图

 另外,arduino开发板需要二进制代码:

#include <Servo.h>

int sensorpin = 4; //传感器引脚 有水为0;无水为1
float pumpin = 13; //水泵引脚 低电平触发 digitalWrite(8,LOW);
int var;
int var2;
int var3;
int sensorpin2 = A0;
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 > 300)
  {
    Serial.print(var);
    Serial.println("缺水状态!");
    digitalWrite(pumpin, LOW); //水泵打开
    Serial.println("水泵状态-打开");
    delay(5000);//浇水的时间是10秒   
    digitalWrite(pumpin, HIGH); //水泵关闭
    Serial.println("水泵-关闭");
  }
  else
  {
    digitalWrite(pumpin, HIGH);
    Serial.print(var);
    Serial.println("不缺水状态!");
    Serial.println("水泵-关闭");
  }
  delay(10000);//十秒钟扫描一次;
  Serial.flush();
  //delay(36000000);//10小时扫描一次 
  while(Serial.available() > 0)
  Serial.read();
}

代码块是从别处搬来的稍微改动了一下,代码块还是需要用arduino IDE来编译,最终导出二进制文件,双击proteus的arduino UNO可以看到添加二进制文件的地方(.hex)

 

感谢观看!!!

  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值