05-05-2019, 20:30
w tym przykładzie funkcja millis nie działa, jak to naprawić?
Kod:
unsigned long aktualnyCzas = 0;
unsigned long pompa7dl = 0;
unsigned long pompa7kr = 0;
unsigned long pompa8dl = 0;
unsigned long pompa8kr = 0;
void setup() {
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
pinMode(53, OUTPUT);
pinMode(51, OUTPUT);
pinMode(22, OUTPUT);
digitalWrite(22, LOW);
digitalWrite(53, LOW); //grzałka p 0
digitalWrite(51, LOW); //grzałka l 1
digitalWrite(8, LOW); // pompa p
digitalWrite(7, LOW); // pompa l
pinMode(3, INPUT_PULLUP); // kawa p
pinMode(6, INPUT_PULLUP); // kawa l
pinMode(5, INPUT_PULLUP); // kawy p
pinMode(4, INPUT_PULLUP); // kawy l
pinMode(2, INPUT_PULLUP); // spieniacz l
pinMode(9, INPUT_PULLUP); // +p
pinMode(10, INPUT_PULLUP); // + l
pinMode(11, INPUT_PULLUP); // spieniacz p
pinMode(12, INPUT_PULLUP); //dźwignia p
pinMode(13, INPUT_PULLUP); //dźwignia l
}
void loop() {
aktualnyCzas = millis();
if (aktualnyCzas - pompa7kr >= 28000UL) {
digitalWrite(7, LOW);
}
if (aktualnyCzas - pompa8kr >= 28000UL) {
digitalWrite(8, LOW);
}
if (aktualnyCzas - pompa7dl >= 56000UL) {
digitalWrite(7, LOW);
}
if (aktualnyCzas - pompa8dl >= 56000UL) {
digitalWrite(8, LOW);
}
//==================================================================================
if (digitalRead(12) == LOW and digitalRead(13) == LOW){
if (digitalRead(10) == LOW) {
digitalWrite(7, HIGH); //manual
} else {
digitalWrite(7, LOW);
}
if (digitalRead(9) == LOW) {
digitalWrite(8, HIGH); //manual prawa
} else {
digitalWrite(8, LOW);
}
if (digitalRead(3) == LOW and digitalRead(6) == LOW) {
pompa8kr = aktualnyCzas;
pompa7kr = aktualnyCzas;
digitalWrite(8, HIGH);
digitalWrite(7, HIGH); // 2X jedna kawa prawa strona
}
if (digitalRead(5) == LOW and digitalRead(4) == LOW) {
pompa8dl = aktualnyCzas;
pompa7dl = aktualnyCzas;
digitalWrite(7, HIGH);
digitalWrite(8, HIGH); // 2X dwie kawY prawa strona
}
if (digitalRead(3) == LOW and digitalRead(4) == LOW) {
pompa8kr = aktualnyCzas;
pompa7dl = aktualnyCzas;
digitalWrite(7, HIGH);
digitalWrite(8, HIGH); // 2X dwie kawY prawa strona
}
if (digitalRead(5) == LOW and digitalRead(6) == LOW) {
pompa8dl = aktualnyCzas;
pompa7kr = aktualnyCzas;
digitalWrite(7, HIGH);
digitalWrite(8, HIGH); // 2X dwie kawY prawa strona
}
}
//====================================================================
if (digitalRead(12) == LOW and digitalRead(13) == HIGH) {
if (digitalRead(3) == LOW) {
pompa8kr = aktualnyCzas;
digitalWrite(8, HIGH); // jedna kawa prawa strona
}
if (digitalRead(5) == LOW) {
pompa8dl = aktualnyCzas;
digitalWrite(8, HIGH); // dwie kawy prawa strona
}
if (digitalRead(9) == LOW) {
digitalWrite(8, HIGH); //manual prawa
} else {
digitalWrite(8, LOW);
}
}
//=======================================================================
if (digitalRead(13) == LOW and digitalRead(12) == HIGH) {
if (digitalRead(6) == LOW) {
pompa7kr = aktualnyCzas;
digitalWrite(7, HIGH); // jedna kawa lewa strona
}
if (digitalRead(4) == LOW) {
pompa7dl = aktualnyCzas;
digitalWrite(7, HIGH); // dwie kawy lewa strona
}
if (digitalRead(10) == LOW) {
digitalWrite(7, HIGH); //manual
} else {
digitalWrite(7, LOW);
}
}
//====================================================================
if (digitalRead(2) == LOW) {
if (digitalRead(10) == LOW) {
digitalWrite(7, HIGH); //manual
} else {
digitalWrite(7, LOW);
}
if (digitalRead(10) == HIGH) {
digitalWrite(7, HIGH);
delay(25);
digitalWrite(7, LOW);
delay(700);
}
}
//=======================================================================
if (digitalRead(11) == LOW) {
if (digitalRead(9) == LOW) {
digitalWrite(8, HIGH); //manual prawa
} else {
digitalWrite(8, LOW);
}
if (digitalRead (9) == HIGH) {
digitalWrite(8, HIGH);
delay(25);
digitalWrite(8, LOW);
delay(700);
}
}
//=======================================================================
}