Skocz do zawartości

Funkcja czasowego wyłączania silnika


Gintek

Pomocna odpowiedź

Napisałem to bardzo ogólnie bo to dużo pisania żeby wyjaśnić szczegółowo zasadę działania. Ale działa to jak serwomechanizm modelarski i chodzi o to żeby tak zrobić że jak silnik nie osiągnie ustalonej pozycji żeby się wyłączył bo inaczej może się spalić.

Link do komentarza
Share on other sites

2 godziny temu, Gintek napisał:

chodzi o to żeby tak zrobić że jak silnik nie osiągnie ustalonej pozycji żeby się wyłączył bo inaczej może się spalić

To ty potrzebujesz poza kryterium czasowym jeszcze odczytać "pozycję" silnika, a raczej elementu jaki jest tym silnikiem sterowany. Napisz coś o tym.

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

53 minuty temu, _LM_ napisał:

Dodał bym jeszcze zabezpieczenie termiczne, w razie zablokowania wału

Jeśli urządzenie jest do użytkowania 24/7, należałoby uwzględnić sterowanie chłodziarką do piwka na dni weekendowe.

Link do komentarza
Share on other sites




static long = 0;
static bool stan = 0;
static bool stan2 = 0;

if (digitalRead(5) == LOW && stan == 0) { last = millis();
  stan = 1;
  stan2 = 1;
 } else if(digitalRead(5) == HIGH) {
  stan =0;
  }

if (millis() - last > 1000UL && stan2 == 1) {
  //zrob cos tam 
  stan2 = 0;
  
  }
  

Tak mi sie napisalo, choc prawidlowo powinny byc odrebne zmienne "stan" dla obu if'ow

Edytowano przez farmaceuta
Link do komentarza
Share on other sites

Znaczy działa ale jak poprzedni przykład to znaczy dopiero po puszczeniu przycisku zaczyna odliczać czas i led gaśnie. A ja chciałbym uzyskać efekt żeby z chwilą wciśnięcia przycisku uruchamiał się czas i led zgasł nie ważne jak długo będzie wciśnięty przycisk.

Link do komentarza
Share on other sites

Jeśli mogę coś podpowiedzieć to zastosuj biblioteki Timers.Na tym forum jest wątek Proste podświetlanie schodów na Arduino. Prośba o pomoc w stworzeniu programu.Jest tam na stronie 5 mój program z zastosowaniem tej biblioteki.Jedną z najważniejszych rzeczy jest uwolnienie się od millsów i delay w programie.Dobrze przeanalizuj to co jest napisane w programie i niech to będzie dla Ciebie inspiracją dla Twojego  rozwiązania.W załączniku są potrzebne pliki.Zdaje się,że biblioteka Timers  w tej wersji obsługuje 8 wątków i w swej istocie jest genialna. Problem uruchomienia czasu jest pokazany w moim programie  bez zastosowania przerwań zewnętrznych. Ale można to zrobić w inny sposób stosując właśnie zewnętrzne przerwania.Niestety Arduino oparte na ATMEL 328 jest ubogie w wejścia gdzie można stosować przerwania zewnętrzne - zdaje się ,że są tylko dwa piny.Ale jeśli zastosujesz stm32 to praktycznie rzecz biorąc każdy pin może zostać skonfigurowany jako wejście z przerwaniem zewnętrznym EXTI.

Link do komentarza
Share on other sites

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.