Skocz do zawartości

Włcznik pływakowy do pompy z dwoma mgnesami


Pomocna odpowiedź

Napisano

Witam serdecznie,
Panowie i Panie 🙂 potrzebuję pomocy, naprowadzenia jak to dobrze napisać.

Założenia projektu to dwa włączniki pływakowe magnetyczne, przekaźnik i pompa do wody.

Wykombinowałem sobie że pierwszy pływak na dole zasygnalizuję stan że woda się pojawiła a drugi pływak umieszczony wyżej się uruchomi jak poziom wody się podniesie i teraz są dwa pływaki załczone i pompa się odpala, stan wody opada, górny pływak już się wyłączył le pomp m dalej działać aż do momentu kiedy ten dolny pływak się wyłączy czyli poziom wody spadnie poniżej.

Na razie mam coś takiego.

int magnesJeden = 4; //włącznik magnetyczny na dole (jest wod)
int magnesDwa = 7; //włącznik magnetyczny na górze (pomp się włącza)
int pompaONOFF = 8; //pompa ON/OFF
int buttonStatus=HIGH;


void setup() {
 pinMode(magnesJeden, INPUT); //sygnl że jest woda
 pinMode(magnesDwa, INPUT); //sygnl że woda jest wysoko pomp musi się odpalić
 pinMode(pompaONOFF, OUTPUT); //pompa się uruchmia
 Serial.begin (9600);
 digitalWrite(magnesJeden, HIGH); // wewnetrzny rezystor podciagajacy
 digitalWrite(magnesDwa, HIGH); // wewnetrzny rezystor podciagajacy
}

void loop() {
 buttonStatus=digitalRead(magnesJeden);
 if (HIGH==buttonStatus) {
   Serial.println("ok");
   digitalWrite(pompaONOFF, LOW);
 } else {
   digitalWrite(pompaONOFF, HIGH);
   Serial.println("ok2");
 }
  buttonStatus=digitalRead(magnesDwa);
   if (HIGH==buttonStatus) {
   Serial.println("ok");
   digitalWrite(pompaONOFF, LOW);
 } else {
   digitalWrite(pompaONOFF, HIGH);
   Serial.println("ok2");
 }
}

Myślałem użyć zwykłego if oraz else i jakiegoś porównywania, ale nie wiem czy to dobry kierunek.

jeszcze zrobiłem tak

int magnesJeden = 4; //włącznik magnetyczny na dole (jest wod)
int magnesDwa = 7; //włącznik magnetyczny na górze (pomp się włącza)
int pompaONOFF = 8; //pompa ON/OFF
int buttonStatus=HIGH;


void setup() {
 pinMode(magnesJeden, INPUT); //sygnl że jest woda
 pinMode(magnesDwa, INPUT); //sygnl że woda jest wysoko pomp musi się odpalić
 pinMode(pompaONOFF, OUTPUT); //pompa się uruchmia
 Serial.begin (9600);
 digitalWrite(magnesJeden, HIGH); // wewnetrzny rezystor podciagajacy
 digitalWrite(magnesDwa, HIGH); // wewnetrzny rezystor podciagajacy
}

void loop() {
 buttonStatus=digitalRead(magnesJeden);
 if (HIGH==buttonStatus) {
   digitalWrite(pompaONOFF, LOW);
 } else {
     buttonStatus=digitalRead(magnesDwa);
   if (HIGH==buttonStatus) {
   digitalWrite(pompaONOFF, LOW);
 } else {
   digitalWrite(pompaONOFF, HIGH);
 }
 }

}

.... a tak pomyślałem może zrobić to na zasadzie zapamiętania wartości z pływaka 2 czyli tego na górze a potem zmiana tej wartości jak pływak 1 (ten na dole ) się wyłączy?

co wy na takie rozwiązanie, do zrobienia?

zrobiłem !!! działa

const int magnesJeden = 4; //włącznik magnetyczny na dole (jest wod)
int magnesDwa = 7; //włącznik magnetyczny na górze (pomp się włącza)
int pompaONOFF = 8; //pompa ON/OFF
int buttonStatus = HIGH;
//int buttonState = 0;
int ac = 0;


void setup() {
 pinMode(magnesJeden, INPUT); //sygnl że jest woda
 pinMode(magnesDwa, INPUT); //sygnl że woda jest wysoko pomp musi się odpalić
 pinMode(pompaONOFF, OUTPUT); //pompa się uruchmia
 Serial.begin (9600);
 digitalWrite(magnesJeden, HIGH); // wewnetrzny rezystor podciagajacy
 digitalWrite(magnesDwa, HIGH); // wewnetrzny rezystor podciagajacy
}

void loop() {
 buttonStatus = digitalRead(magnesJeden);
 if (HIGH == buttonStatus) {
   digitalWrite(pompaONOFF, LOW);
 } else {
   buttonStatus = digitalRead(magnesDwa);
   if (HIGH == buttonStatus) {
     ac = digitalRead(magnesDwa);
   } else {
     digitalWrite(pompaONOFF, HIGH);
   }
   if (ac >= 750)
   {
     digitalWrite(pompaONOFF, LOW);
   }
 }


}

mile widziane uwgi

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...