/* CVO De Verdieping: Arduino
Sketch: De regenwaterput (uitdieping)
Uitleg moet nog komen
Oefening 13a Deregenwaterput uitdieping
Houtmeyers Patrick
2023 - 2024
*/
// BIBLIOTHEKEN
#include <Servo.h>
// CONSTANTEN
const int PIN_POT = A0;
const int PIN_SERVO = 11;
const int PIN_KNOP = 2;
const int SERVO_OPEN = 90; // hoek
const int SERVO_DICHT = 0; // hoek
Servo mijnServo;
// VARIABELEN
int potWaarde = 0;
int procent = 0;
int knopWaarde = LOW;
int vorigeKnopWaarde = LOW;
bool vulPut = false;
bool manueel = false; // vullen met de knop
int hoek = 0;
void setup()
{
pinMode(PIN_KNOP, INPUT);
mijnServo.attach(PIN_SERVO);
Serial.begin(9600);
}
void loop()
{
//INPUT
potWaarde = analogRead(PIN_POT);
knopWaarde = digitalRead(PIN_KNOP);
//VERWERKING
procent = map(potWaarde, 0, 1023, 0, 100); //omzetting vlotter naar % gevuld.
if (procent < 10)
{
vulPut = true;
}
if (procent > 50)
{
vulPut = false;
}
// de knop
if (knopWaarde == HIGH and vorigeKnopWaarde == LOW)
{
manueel = not manueel;
}
if (procent > 90)
{
manueel = false;
}
if (vulPut or manueel)
{
hoek = SERVO_OPEN;
}
else
{
hoek = SERVO_DICHT;
}
// OUTPUT
mijnServo.write(hoek);
vorigeKnopWaarde = knopWaarde;
// DEBUG
Serial.print(procent);
Serial.print(',');
Serial.println(hoek);
delay(40);
}