Skocz do zawartości

Arduino UNO program zliczający impulsy ściemnienia na fotorezystorze


kamkol1

Pomocna odpowiedź

6 minut temu, KamilKolesnik napisał:

 




int StanSensora = 0; // Zmienna do przechowywania odczytu ADC
int OstatniStan = 0; // zmienna przechowująca ostatni stan
int NowyStan = 0;
int licznik = 0;
void setup() {

  Serial.begin(9600); // inicjalizacja UART

  pinMode(8,OUTPUT); // dioda sygnalizująca zdarzenie

// dioda oświetlajaca fotorezystor

pinMode(2, OUTPUT); // konf wyjscia
digitalWrite(2, HIGH); // zawsze włączona

}

void loop() {


  StanSensora = analogRead(A5); // odczyt wartosci z ADC

  if (StanSensora <100) {
    NowyStan = OstatniStan +1;
    Serial.println(NowyStan);
    digitalWrite(8, HIGH); // jeżeli fotorezystor zakryty zapal diode kontrolną
    
  } else {
    digitalWrite(8, LOW);
    
  }

  delay(50);
  
}

Czy kombinuje w dobrą stronę? 

Zrobiles to samo tylko zmieniles nazwe zmiennej...musisz sobie wyobrazac jak ten kod bedzie dzialal i pamietac o tym ze jak skonczysz kod to on zacznie sie od nowa wiec jesli warunki beda spelnione to znow wykonasz if'y a tego akurat nie chcesz...😉

void loop() {


  StanSensora = analogRead(A5); // odczyt wartosci z ADC

  if (StanSensora <100) {
    if (stan == 0) {
      stan = 1;
    NowyStan = OstatniStan +1;
    Serial.println(NowyStan);
      }
    digitalWrite(8, HIGH); // jeżeli fotorezystor zakryty zapal diode kontrolną
    
  } else {
    digitalWrite(8, LOW);
    stan = 0;
  }

  delay(50);
  
}

Spruboj zrozumiec co ten kod robi...

Link do komentarza
Share on other sites

(edytowany)
1 godzinę temu, farmaceuta napisał:

Juz dostales rozwiazanie...tylko zadeklaruj ta zmienna "stan" i powinno dzialac tak jak chcesz..

Dziękuje - aktualnie wyświetla każde zasłonięcie deklarując cały czas "1"

Jeżeli dobrze zrozumiałem brakuje  kawałka kodu odnośnie zmiennej "OstatniStan" ?

int StanSensora = 0; // Zmienna do przechowywania odczytu ADC
int OstatniStan = 0; // zmienna przechowująca ostatni stan
int NowyStan = 0;
int stan = 0;

void setup() {

  Serial.begin(9600); // inicjalizacja UART

  pinMode(8,OUTPUT); // dioda sygnalizująca zdarzenie

// dioda oświetlajaca fotorezystor

pinMode(2, OUTPUT); // konf wyjscia
digitalWrite(2, HIGH); // zawsze włączona

}

void loop() {


  StanSensora = analogRead(A5); // odczyt wartosci z ADC

  if (StanSensora <100) {
    if (stan == 0) {
      stan = 1;
    NowyStan = OstatniStan +1;
    Serial.println(NowyStan);
    }
    digitalWrite(8, HIGH); // jeżeli fotorezystor zakryty zapal diode kontrolną
    
  } else {

    digitalWrite(8, LOW);
    stan = 0;
    
  }

  delay(50);

}

 

Edytowano przez KamilKolesnik
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.