325ccce3a0
* missing packages * fixing snippet issues * snippet fix * more doc fixes
1.7 KiB
1.7 KiB
Code
Let's add the code so that when the soil moisture level is low, the servo waters the plant.
From the soil moisture project, we know that the moisture is low when the reading
is roughly less than 500
.
We can use this information to add an if reading < 500
in the code.
let reading = 0
if (reading < 500) { }
The servo is connected to pin P2
so we can use pins servo write
block to change the angle of the servo.
We need it to change the angle to 0
, wait until the water has fallen off, and move it back to 80
.
let reading = 0
if (reading < 500) {
basic.showIcon(IconNames.Umbrella)
pins.servoWritePin(AnalogPin.P2, 0);
basic.pause(3000)
pins.servoWritePin(AnalogPin.P2, 80)
basic.pause(3000)
pins.analogWritePin(AnalogPin.P2, 0)
}
We insert the code above in the forever loop of the soil moisture code.
radio.setTransmitSerialNumber(true)
radio.setGroup(4)
led.setBrightness(64)
let reading = 0
basic.forever(() => {
pins.analogWritePin(AnalogPin.P1, 1023)
reading = pins.analogReadPin(AnalogPin.P0)
radio.sendNumber(reading / 4);
pins.analogWritePin(AnalogPin.P1, 0)
led.plotBarGraph(
reading,
1023
)
if (input.buttonIsPressed(Button.A)) {
basic.showNumber(reading)
}
if (reading < 500) {
basic.showIcon(IconNames.Umbrella)
pins.servoWritePin(AnalogPin.P2, 0);
basic.pause(3000)
pins.servoWritePin(AnalogPin.P2, 80)
basic.pause(3000)
pins.analogWritePin(AnalogPin.P2, 0)
}
basic.pause(5000);
})
radio