dioda ze zboczem

Masz problem z Arduino? Tutaj możesz szukać pomocy.
ODPOWIEDZ
bolidf1
Młodszy majsterkowicz
Posty: 3
Rejestracja: 16 lip 2013, 13:17

dioda ze zboczem

Post autor: bolidf1 » 7 kwie 2019, 14:13

Witam

próbuję stworzyć pewien prosty układzik, który w pewnych warunkach nie działa jakbym chciał, a mianowicie:
steruję diodą za pomocą stanu niskiego czyli jeśli mam stan wysoki dioda się nie świeci, dalej jeśli mam stan niski to dioda ma sie zapalić, odczekać 3s i zgasnąć. zrealizowałem to w następujący sposób:

Kod: Zaznacz cały

int przycisk1 = 8;
int przycisk2 = 9;
int lampka = 6;
int buzzer = 7;


  void setup() {
  // put your setup code here, to run once:
  pinMode(przycisk1, INPUT);
  pinMode(przycisk2, INPUT);
  pinMode(lampka, OUTPUT);
  pinMode(buzzer, OUTPUT);
  digitalWrite(lampka, LOW);
  digitalWrite(buzzer, LOW);
}

void loop() {
  // put your main code here, to run repeatedly:
  
      {if 
        (digitalRead(przycisk1) ==LOW)
        {
        digitalWrite(lampka, HIGH);
        delay(3000);
        digitalWrite(lampka, LOW);
        }
      else
        {
        digitalWrite(lampka, LOW);
        }
      }
      {if 
        (digitalRead(przycisk2) ==LOW)
        {
        digitalWrite(buzzer, HIGH);
        delay(3000);
        digitalWrite(lampka, LOW);
        }
      else
        {
        digitalWrite(buzzer, LOW);
        }
      }
}
natomiast problem pojawia się wtedy gdy przycisk przytrzymujemy, odliczanie czasu trwa póki jest stan niski i co 3 sekundy sprawdza stan wejścia na nowo. Jeżeli przytrzymam przycisk na 5s to czas odliczy się 5s i po 6-tej sekundzie zgaśnie.
jak zrobić coś na zasadzie reakcji na zbocze czyli niezależnie ile bym nie trzymał przycisku to żeby odliczanie startowało przy zboczu i po 3 s żeby dioda gasła?? niezależnie czy przycisk jest wciśnięty na 1s czy 10s żeby dioda wytłaczała się po 3s???

pozdrawiam
Ostatnio zmieniony 7 kwie 2019, 22:30 przez MrLewerence, łącznie zmieniany 1 raz.
Powód: kod programu w znaczniku code.

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


konstruktor
Majsterkowicz
Posty: 98
Rejestracja: 27 wrz 2015, 16:23

Re: dioda ze zboczem

Post autor: konstruktor » 7 kwie 2019, 21:27

wzoruj się na tym:



Kod: Zaznacz cały

unsigned long aktualny = 0;
int zapamietany = 0;
int roznica = 0;
int status = 0;

void setup() {
pinMode(10, INPUT_PULLUP);
pinMode(13, OUTPUT);
digitalWrite(13, LOW);

}


void loop() {
if(digitalRead(10)== LOW && status==0) 
{
  digitalWrite(13, HIGH);
aktualny = millis(); status=1;}

roznica = millis() -aktualny;
if(roznica >= 100UL){

digitalWrite(13, LOW); 

}

if (digitalRead(10)==HIGH){status=0;}

}
Ostatnio zmieniony 7 kwie 2019, 22:31 przez MrLewerence, łącznie zmieniany 1 raz.
Powód: kod programu w znaczniku code.
ODPOWIEDZ

Strony partnerskie: