05-12-2017, 12:21
(05-12-2017, 10:30)krn78 napisał(a): Ech... na modelu (tinkercad) działa:Jak się nie potrafi rozwinąć prostego pseudokodu to się echa.
Wygaszam wyjście po 0,2s po puszczeniu.Kod:int czas=0;
void setup(){
pinMode(7, INPUT_PULLUP);
pinMode(5, OUTPUT);
}
void loop(){
czas=millis();
while(digitalRead(7)==LOW){
if(millis()-czas>5000){
digitalWrite(5, HIGH);
}
}
delay(200);
digitalWrite(5, LOW);
}
Pokazuję i objaśniam:
Pseudokod:
Cytat:jeśli (czujnik == 1) to czas=millis(); kasuj wyjście
jeśli (millis() - czas > 5s) to ustaw wyjście
jeśli (czujnik == 1) to czas=millis(); kasuj wyjście
zamieniamy ma:
Kod:
if (digitalRead(CZUJNIK)==HIGH){
czas = millis();
digitalWrite(LED,LOW);
}
jeśli (millis() - czas > 5s) to ustaw wyjście
zamieniamy na:
Kod:
if (millis() - czas > 5000) {
digitalWrite(LED,HIGH);
}
Co prowadzi do programu:
Kod:
#define CZUJNIK 8
#define LED 13
long czas;
void setup(){
pinMode(CZUJNIK,INPUT_PULLUP);
pinMode(LED,OUTPUT);
}
void loop(){
if (digitalRead(CZUJNIK)==HIGH){
czas = millis();
digitalWrite(LED,LOW);
}
if (millis() - czas > 5000) {
digitalWrite(LED,HIGH);
}
}
Podanie stanu niskiego na wejście nr.8 powoduje start odliczania. Po 5 sekundach zapali się dioda, gaśnie po puszczeniu przycisku(stan wysoki).
Podaż jak Twój program zadziała przy kilku takich timerach!!!
Pomagam za darmo więc szanuj mój czas.
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania
Wklejaj tekst a nie jego zdjęcie.
Nie pisz następnego postu jak nie odpowiedziałeś na poprzedni.
Jak mądrze zadawać pytania