Files
ValveController/ValveController.cpp
2024-02-04 22:58:58 +03:00

51 lines
1.3 KiB
C++

#include <pico/stdlib.h>
void gpio_init_out(uint gpio) {
gpio_set_dir(gpio, GPIO_OUT);
gpio_put(gpio, 0);
gpio_set_function(gpio, GPIO_FUNC_SIO);
}
void gpio_callback(uint gpio, uint32_t events) {}
class Valve {
public:
Valve(uint gpio_motor1, uint gpio_motor2, uint gpio_start, uint gpio_end)
: motor1(gpio_motor1), motor2(gpio_motor2), start_pin(gpio_start),
end_pin(gpio_end) {
gpio_init_out(motor1);
gpio_init_out(motor2);
gpio_set_irq_enabled_with_callback(start_pin, GPIO_IRQ_EDGE_RISE, true,
&gpio_callback);
gpio_set_irq_enabled_with_callback(end_pin, GPIO_IRQ_EDGE_RISE, true,
&gpio_callback);
}
void open() {
gpio_put(motor2, 0);
gpio_put(motor1, 1);
}
void close() {
gpio_put(motor1, 0);
gpio_put(motor2, 1);
}
private:
uint motor1, motor2;
uint start_pin, end_pin;
};
int main() {
Valve *v = new Valve(0, 1, 4, 5);
gpio_init_out(PICO_DEFAULT_LED_PIN);
while (true) {
gpio_put(PICO_DEFAULT_LED_PIN, 1);
sleep_ms(200);
gpio_put(PICO_DEFAULT_LED_PIN, 0);
sleep_ms(200);
}
return 0;
}