Skocz do zawartości

Błąd wyswietlania i pomiaru przeplywu YF-S402 i wyswietlacz 2x16 i2C


kamkaminek

Pomocna odpowiedź

15 minut temu, kamkaminek napisał:

@farmaceuta ale ja chce potwierdzenia w postaci przynajmniej trzech impulsow sprawdzonych w ciagu np. 1,5sekundy czy przez ten czas tego siana tam nie bylo,

1070822901_Serialprintproblemarduino.thumb.png.199a53d6f9632259d78483ddd7d286bb.png

Nie rozumiem...ten czujnik daje jakieś impulsy ? Czy działa na zasadzie, siano jest to czujnik wykrywa, sianie ma to czujnik nie wykrywa?

Link do komentarza
Share on other sites

@farmaceuta Są dwa czujniki, czujnik ir wykrywa siano, czujnik indukcyjny decyduje o tym czy czujka ir ma wgl wykrywac te siano. Jest nadrzędny. Czujka IR dziala w jednej z dwoch petli while. Aby ta petla sie wykonala potrzebny jest najpierw sygnal z czujnika indukcyjnego. Teraz zauwazylem ze czujnik indukcyjny w momencie kiedy powinien dawac caly czas wartosc 1, daje wartosci (1,0,0,0,1,0,0....) co czwarty sygnal to 1 mierzac co 500ms. Dodam ze fizycznie czujnik jest w polozeniu w ktorym powinno byc caly czas 1. Dodam ze jest to indukcyjny NPN NO 

https://pl.aliexpress.com/item/1005004122995480.html?spm=a2g0o.order_list.order_list_main.29.8f7e1c24L4lbD8&gatewayAdapt=glo2pol

Link do komentarza
Share on other sites

@farmaceuta a czujnik ir nie daje impulsów. Zwyczajnie nie chce aby mi przelaczylo przekazniki jesli sie zmieni  np z 0 na 1. Chce zeby dopiero zmienilo stan na przekaznikach jesli stan 1 utrzyma sie przez np 1,5 sekundy. Dlatego mam te petle, sprawdzaja mi stan 4 razy w ciagu 2 sekund (co500ms). To jest moje potwierdzenie ze pojedyncza zmiana stanu nie byla tylko przypadkiem.

Link do komentarza
Share on other sites

1 godzinę temu, kamkaminek napisał:

@farmaceutaChce zeby dopiero zmienilo stan na przekaznikach jesli stan 1 utrzyma sie przez np 1,5 sekundy

Dlatego nie rozumiem czemu nie możesz zrobić tak jak mówiłem...czujnik indukcyjny ustala czy czujnik ir ma wykrywać, jeśli tak to zaczynasz odliczać czas jeśli czujnik ir wykrył brak siana, jeśli to trwa za długo to zmieniasz stan przekaźników 

Edytowano przez farmaceuta
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

@farmaceuta jak mam to napisać że jeśli za długo wykrywa brak siana zmienić stan? Ta pętla która pakuje wartości do tablicy co 500ms jest właśnie takim sprawdzeniem w czasie. Jest jakaś komenda która zmieni mi wartość dopiero po utrzymaniu się danego stanu przez conajmniej 2sekundy? 

Link do komentarza
Share on other sites

17 minut temu, kamkaminek napisał:

@farmaceuta Jest jakaś komenda która zmieni mi wartość dopiero po utrzymaniu się danego stanu przez conajmniej 2sekundy? 

Do tego może być maszyna Stanów, ale jeśli jeszcze nie kumasz o co chodzi to zrobisz to na zwykłych ifach bez problemu 

Link do komentarza
Share on other sites

if (indukcja == HIGH) {
    if (ir == HIGH) {
      if (millis() - last > 2000UL) {
        //wlacz przekazniki
        last = millis();
      }
    } else {
      last = millis();
      //wylacz przekazniki
    }
  } else {
    last = millis();
    //wylacz przekazniki
  }

powyzsze powinno dzialac tak jak chcesz...ewentualnie pozmieniaj ktore stany wlaczaja a ktore nie

Link do komentarza
Share on other sites

10 minut temu, ethanak napisał:

@farmaceuta zastanawiam się po co komplikujesz sprawę i próbujesz poprawić działający kod (chociaż bardzo brzydki) na coś co działa niezgodnie z założeniami ale ładnie wygląda...

No tak napisałem jak opis zrozumiałem, a napisałem bo mnie ta tablica strasznie w oczy kłuje...😋

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.