Arduino

您所在的位置:网站首页 浇花神器简单制作方法图片 Arduino

Arduino

#Arduino| 来源: 网络整理| 查看: 265

一、继电器的基础知识 

参考: Easy EDA #学习笔记03# |3C-GO继电器驱动电路Realay

二、电路连接

D13-----------INT(继电器)

D6-----------DO(土壤湿度传感器)

A5----------- AO(土壤湿度传感器)

GND-----------GND

VCC-----------VCC

Arduino Nano 与 继电器 土壤湿度传感器、3V水泵连接的电路图如下:

 

三、参考程序

/********************************************************  * 传感器-8  * 有水   LOW     0  * 无水   HIGH    1  *   * 继电器-13  * 低电平触发  LOW   0  *  *********************************************************/ int sensorpin = 8;//传感器引脚 有水为0;无水为1 int pumpin    = 13;//水泵引脚 低电平触发 digitalWrite(8,LOW); int var; void setup() {   Serial.begin(9600);      pinMode(8,INPUT);   pinMode(13,OUTPUT); } void loop() {   var = digitalRead(8);     //如果传感器检测值为1表示没水;0表示有水   if(var==HIGH)   {     digitalWrite(pumpin,LOW);//水泵打开    delay(3000);//浇水的时间是3秒     digitalWrite(pumpin,HIGH);//水泵关闭     }     else     {     digitalWrite(pumpin,HIGH);//水泵关闭         }     Serial.print("var=");     Serial.println(var);     int var2=digitalRead(pumpin);     Serial.print("var2=");     Serial.println(var2);     delay(10000);     //delay(3600000);//一小时扫描一次 }

实例代码2 

int sensorpin = 6;//传感器引脚 有水为0;无水为1 float pumpin = 13;//水泵引脚 低电平触发 digitalWrite(8,LOW); int var; int var3; int sensorpin2 = A5; void setup() { Serial.begin(9600); pinMode(sensorpin,INPUT); pinMode(sensorpin2,INPUT); pinMode(pumpin,OUTPUT); digitalWrite(pumpin,HIGH);//水泵关闭 } void loop() { var = digitalRead(sensorpin); int 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小时扫描一次 }

休眠模式、看门狗(2020/11/12)

参考资料:Arduino休眠模式和看门狗以及中断详解

/******************************************************************************** * 名称: * 功能: * 日期: * 作者:Naiva * ----------------------- * 传感器-8 * 有水 LOW 0 * 无水 HIGH 1 * ----------------------- * 继电器-13 * 低电平触发 LOW 0 * *******************************************************************************/ #include #include //睡眠模式头文件 #include //启用看门狗头文件 int sensorpin = 6;//传感器引脚D6 有水为0;无水为1 float pumpin = 13;//水泵引脚 低电平触发 digitalWrite(8,LOW); int var; int var3; int sensorpin2 = A5;//传感器引脚A5 void Sensor_();//函数声明 int data = 0; ISR(WDT_vect) { //看门狗唤醒执行函数 data++; } void setup() { Serial.begin(9600); pinMode(sensorpin,INPUT); pinMode(sensorpin2,INPUT); pinMode(pumpin,OUTPUT); digitalWrite(pumpin,HIGH);//水泵关闭 set_sleep_mode(SLEEP_MODE_PWR_DOWN); //设置休眠模式。 sleep_enable(); //开启休眠功能。 //ACSR |=_BV(ACD);//关掉ACD,据说很省电。不知道唤醒以后要不要重新开,怎么开? //ADCSRA=0;//关掉ADC,据说很省电。不知道唤醒以后要不要重新开,怎么开? //按照官方解释,sleep_enable()最好写在中断(attachInterrupt())前,防止中断在开始休眠前就提前释放而造成休眠后无法唤醒。 //开始设置看门狗中断,用来唤醒。 MCUSR &= ~(1


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3