OK. Teraz rozumiem co chciałeś osiągnąć.
Poprawiłem Twój kod tak aby działał według Twoich założeń.
Zauważyłem też w schemacie, że stany czujników mogą osiągnąć jeszcze jeden stan... AWARII.
Sytuacja taka może się przydarzyć, gdy oba czujniki będą rozwarte.
Dopisałem taką możliwość w kodzie.
Stan AWARII sygnalizowany będzie dodatkową żółtą diodą LED.
Przetestowałem u siebie i wszystko działa OK.
Daj znać czy teraz u Ciebie również wszystko działa tak jak chciałeś.
Poniżej kod:
Poprawiłem Twój kod tak aby działał według Twoich założeń.
Zauważyłem też w schemacie, że stany czujników mogą osiągnąć jeszcze jeden stan... AWARII.
Sytuacja taka może się przydarzyć, gdy oba czujniki będą rozwarte.
Dopisałem taką możliwość w kodzie.
Stan AWARII sygnalizowany będzie dodatkową żółtą diodą LED.
Przetestowałem u siebie i wszystko działa OK.
Daj znać czy teraz u Ciebie również wszystko działa tak jak chciałeś.
Poniżej kod:
Kod:
// Ciśnienie
// UWAGA!
//------------------------------------------
// Zakładam, ze diody LED są podłączone tak,
// że świecą gdy jest stan HIGH
// i są wygaszone przy stanie LOW.
// -----------------------------------------
const int button4 = 3; //Włącznik za niskie ciśnienie
const int button5 = 4; //Włącznik za wysokie ciśnienie
// LED ŻÓŁTY
const int led_awaria = 11; //awaria czujników
// LED CZERWONE
const int ledc4 = 10; //niskie ciśnienie
const int ledc5 = 9; //wysokie ciśnienie
// LED ZIELONY
const int ledz4 = 5; //Ciśnienie Ok
int buttonState4 = 1;
int buttonState5 = 1;
void setup()
{
Serial.begin(9600);
pinMode(led_awaria, OUTPUT); // LED awaria czujników
pinMode(ledz4, OUTPUT); // LED VSP G
pinMode(ledc4, OUTPUT); // LED niskie VSP R
pinMode(ledc5, OUTPUT); // LED wysokie VSP R
digitalWrite(ledz4, LOW);
digitalWrite(ledc4, LOW);
digitalWrite(ledc5, LOW);
pinMode(button4, INPUT_PULLUP);
pinMode(button5, INPUT_PULLUP);
}
void loop()
{
buttonState4 = digitalRead(button4);
buttonState5 = digitalRead(button5);
if (buttonState4 == LOW & buttonState5 == LOW)
{
// Stan: CISNIENIE OK
digitalWrite(led_awaria, LOW);
digitalWrite(ledc5, LOW);
digitalWrite(ledc4, LOW);
digitalWrite(ledz4, HIGH);
}
if (buttonState4 == HIGH & buttonState5 == LOW)
{
// Stan: CIŚNIENIE ZA NISKIE
digitalWrite(led_awaria, LOW);
digitalWrite(ledc5, LOW);
digitalWrite(ledc4, HIGH);
digitalWrite(ledz4, LOW);
}
if (buttonState4 == LOW & buttonState5 == HIGH)
{
// Stan: CIŚNIENIE ZA WYSOKIE
digitalWrite(led_awaria, LOW);
digitalWrite(ledc5, HIGH);
digitalWrite(ledc4, LOW);
digitalWrite(ledz4, LOW);
}
if (buttonState4 == HIGH & buttonState5 == HIGH)
{
// Stan: AWARIA CZUJNIKÓW
digitalWrite(led_awaria, HIGH);
digitalWrite(ledc5, LOW);
digitalWrite(ledc4, LOW);
digitalWrite(ledz4, LOW);
}
}
Jeżeli pomogłem, to poproszę o punkt reputacji