Bak met water dat leeg gezogen wordt

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 2
Geregistreerd: 17 Jul 2013, 21:43

Bak met water dat leeg gezogen wordt

Berichtdoor tomroosen » 28 Okt 2018, 23:22

Beste Allen,

De laatste tijd ben ik bezig met het maken van een systeem dat een cilinder met water leeg kan zuigen, alleen loop als beginner tegen een paar obstakels aan.

Werkwijze van de cylinder:
- cylinder loopt vol met water
- cylinder zit vol met water
- de voelers registreren dat
- relais gaat aan.
- afzuigpomp wordt hierdoor geactiveerd
- Klep gaat open
- water level zakt totdat de laagste voeler niet meer onder water zit
- Klep gaat dicht
- Relais gaat uit, verbreekt het contact
- cylinder kan nu weer gevuld worden

Voeler 2 zit boven in de cylinder en voeler 1 zit onder in de cilinder.

Ik kan het systeem met 1 voeler uitrusten, en wanneer het water level die bereikt de afzuiging een bepaalde tijd aan laten staan, maar het afzuigsysteem heeft niet altijd hetzelfde vacuum waardoor die dan ook lucht aan kan zuigen. Dit is niet wenselijk omdat dan het vacuum voor de andere gebruikers minder constant is.




const int voeler1 = 2;
const int voeler2 = 3;
const int klep = 12;
const int relais = 13;

int buttonState1 = 0;
int buttonState2 = 0;

void setup() {
pinMode(klep, OUTPUT);
pinMode(relais, OUTPUT);

pinMode(voeler1, INPUT);
}

void loop() {

buttonState1 = digitalRead(voeler1);
buttonState2 = digitalRead(voeler2);

if (buttonState1 == HIGH && buttonState2 == HIGH ) {

digitalWrite(relais, HIGH);
digitalWrite(klep, HIGH);

}
else
{
// klep open, relais aan
digitalWrite(relais, LOW);
digitalWrite(klep, LOW);
}
}

Het probleem wat ik met deze code heb is, dat zodra het waterlevel onder de eerste voeler komt omdat de afzuiging aan gaat, de klep en de relais gelijk dicht gaan.
Ik moet dus een stukje code hebben wat zegt: zuig de cylinder leeg totdat voeler 1 bereikt is.

Ik hoor graag of jullie mij hierbij kunnen helpen :)

Advertisement

Berichten: 2
Geregistreerd: 17 Jul 2013, 21:43

Re: Bak met water dat leeg gezogen wordt

Berichtdoor tomroosen » 29 Okt 2018, 00:10

Het is me al gelukt!


const int voeler1 = 2;
const int voeler2 = 3;
const int klep = 12;
const int relais = 13;
const int voelerLed1 = 4;
const int voelerLed2 = 5;

int buttonState1 = 0;
int buttonState2 = 0;

void setup() {
pinMode(klep, OUTPUT);
pinMode(relais, OUTPUT);
pinMode(voelerLed1, OUTPUT);
pinMode(voelerLed2, OUTPUT);
pinMode(voeler1, INPUT);
}

void loop() {

buttonState1 = digitalRead(voeler1);
buttonState2 = digitalRead(voeler2);

if (buttonState1 == HIGH && buttonState2 == HIGH ) {
// turn LED on:
digitalWrite(relais, HIGH);
digitalWrite(klep, HIGH);

}
if (buttonState1 == LOW && buttonState2 == LOW )
{
digitalWrite(relais, LOW);
digitalWrite(klep, LOW);
}
if (buttonState1 == HIGH)
{
digitalWrite(voelerLed1, HIGH);
}
else
{
digitalWrite(voelerLed1, LOW);

}
if (buttonState2 == HIGH)
{
digitalWrite(voelerLed2, HIGH);
}

else
{
digitalWrite(voelerLed2, LOW);
}
}


Heb er ondertussen al weer wat bij geprutst

Berichten: 2491
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: Bak met water dat leeg gezogen wordt

Berichtdoor shooter » 29 Okt 2018, 00:35

je mag ook zeggen if (buttonstate1) {acties}
en je mag ook digitalWrite(voelerled2,buttonstate2) dat spaart vele regels en teipvouten.
paul deelen
shooter@home.nl

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 1 gast