sdf
Dependencies: mbed C12832 Servo RangeFinder Pulse
Diff: main.cpp
- Revision:
- 0:4db5f0f5faa0
- Child:
- 1:47dc87d326ed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Wed Feb 23 10:19:24 2022 +0000 @@ -0,0 +1,68 @@ +#include "mbed.h" +#include <MoistureSensor.h> +#include "RangeFinder.h" +#include <Motor_relay.h> +#include "Servo.h" + +int dry = 0.61; +int wet = 0.37; +moisture_sensor grove(p17); +RangeFinder rf(p18, 10, 5800.0, 100000); +DigitalOut led(LED1); +MOTOR_RELAY motor_relay1(p22); +MOTOR_RELAY motor_relay2(p21); +Servo valve1(p23); +Servo valve2(p24); + +#define on 1 +#define off 0 +int main (void) +{ + + float moisturevalue = 0.0f; + float moisturepercentage = 0.0f; + led = 1; + float d; + while (true) { + + moisturevalue = grove.read(); + moisturepercentage=(((moisturevalue- 0.37)/(0.61-0.37))*100); + debug("Moisture reading is %2.2f percent dry\n\r",moisturepercentage); + wait(1.0f); + + d = rf.read_m(); + if (d == -1.0) { + printf("Timeout Error.\n\r"); + } else if (d > 5.0) { + // Seeed's sensor has a maximum range of 4m, it returns + // something like 7m if the ultrasound pulse isn't reflected. + printf("No object within detection range.\n"); + } else { + printf("Distance = %f m.\n", d); + } + wait(0.5); + led = !led; + + + if(moisturepercentage>80){ + motor_relay1.SetMotor(1); + valve1.position(0); + } + if(moisturepercentage<20){ + motor_relay1.SetMotor(0); + valve1.position(90); + } + + if (d>0.07 ) { + motor_relay2.SetMotor(1); + valve2.position(90); + } + if(d<0.02) { + motor_relay2.SetMotor(0); + valve2.position(0); + } + } + return 0; +} + +