Skocz do zawartości

[C] Sterowanie PWM - pytania laika


asad_wro

Pomocna odpowiedź

Witam serdecznie,

przerobiłem kilka poradników m.in z forbot, uczę się podstaw programowania ale mam mały problem.

Bardzo fajnie opisany artykuł Sterowanie PWM .

Chciałbym ten program przerobić ale próbowałem już na wiele sposobów i nic z tego mi nie wychodzi.

- Jak zatrzymać ten program tak aby po zapaleniu dioda się świeciła przez określony czas np. 2 min a następnie płynnie gasła do np. 15% i pozostawała w tym czasie np, przez 1 min ?

Kod z poradnika wygląda tak:

#define diodaPIN 3

int wypelnienie = 0;
int zmiana = 5;

void setup() {
pinMode(diodaPIN, OUTPUT);//Konfiguracja pinu jako wyjścia 
}

void loop() {
analogWrite(diodaPIN, wypelnienie); //Generujemy sygnał o zadanym wypełnieniu

if (wypelnienie < 255) { //Jeśli wypełnienie mniejsze od 100%
	wypelnienie = wypelnienie + zmiana; //Zwiększamy wypełnienie
} else {
	wypelnienie = 0; //Jeśli wypełnienie większe od 100%, to wracamy na początek
}

delay(50); //Małe opóźnienie, aby efekt był widoczny
}

Zmiana delay wpływa tylko na dłuższe rozpalanie diody ...

To są moje początki, przewertowałem wiele tematów ale nie znalazłem nigdzie odpowiedzi ani przykładu kodu na którym mi zależy 🙁 dlatego będę wdzięczny za podesłanie art lub przykładu kodu jakby miało to wyglądać.

Link do komentarza
Share on other sites

Szukanie przykładów każdego możliwego programu jest bezcelowe. Zamiast tego poświęć ten czas na czytanie o języku lub zastanowienie się co właściwie chcesz zrobić.

A jak rozumiem chcesz wykonać trzy etapy:

1. świecenie ciągłe z jasnością n

2. zjazd jasności n→m

3. świecenie ciągłe z jasnością m

No to skoro umiesz robić każą z tych rzeczy osobno, to napisz kod wykonujący po kolei te trzy punkty. Nie musisz wymyślać niczego wielkiego, bo 1 i 3 sprowadzają się do:

analogWrite(pin, jasnosc);
delay(1000*60);                          // oczekiwanie (zwis) przez 60 sekund

Teraz wystarczy między dwa takie kawałki wstawić zjazd jasności 🙂

To będzie żałosny kod długimi delay'ami zamrażający procesor na całe minuty, ale od czegoś trzeba zacząć.

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.