Witam.
Niedawno zakupiłem i rozpocząłem przygodę z Arduino UNO. Na razie korzystałem z gotowych programów i przykładów. Ale czas iść nieco naprzód... Próbuję poznać język Arduino (jestem jeszcze bardzo "zielony" z programowania C++ - czytam książki, poradniki, oglądam filmiki. I tu utknąłem...
Otóż mam problem (nie wiem jak je ugryźć) z pętlami i pętlami w pętli i jeszcze bardziej zagnieżdżonymi...
Chciałbym zrobić układ sterujący wykorzystujący PWM. Układ miałby pracować w cyklu:
wyjścia PWM 1, PWM 2, PWM 3 (oczywiście wartości będą większe)
0,0,0
1,0,0
2,0,0
3,0,0
2,0,0
1,0,0
0,1,0
1,1,0
2,1,0
3,1,0
2,1,0
1,1,0
0,2,0
1,2,0
2,2,0
3,2,0
2,2,0
1,2,0
0,3,0
itd
Fragment kodu:
31 void loop() { //pętla główna programu
32 for (int i = 0; i < 3; i++) //pętla wykonywana 3
33 {
34 analogWrite(PWM1, i); //nastawa wypełnienia PWM1
35 delay(time); //opóźnienie
36 }
37 for (int i = 3; i > 0; i--) //pętla wykonywana 3 razy
38 {
39 analogWrite(PWM1, i); //nastawa wypełnienia PWM1
40 delay(time); //opóźnienie
41 }
Kod zwiększa a potem zmniejsza mi wartość PWM1. TU jest ok.
znalazłem alternatywę tegoż kodu:
void loop() {
static int i;
static int increment = 1;
if (i == 0) {increment = 1;}
else if (i == 3) {increment = -1;}
i = i + increment;
}
I chodzi mi o to, żeby po każdym wykonaniu tej pętli (zwiększania i zmiejszania współczynnika) zwiększało zawartość zmiennej (j) sterującej wyjściem analogWrite(PWM2, j) o jeden, ALE po dojściu do wartości 3 wykonywało odejmowanie (zmniejszanie wartości wypełnienia PWM2) do zera - ale co jeden w każdym zwiększeniu i zmiejszeniu współczynnika analogWrite(PWM1, i).
I żeby ta sama zależność występowała w analogWrite(PWM3, k) w stosunku do analogWrite(PWM2, j).
Jak to ująć w kod i gdzie go wkleić? Czy możecie naprowadzić mnie na trop?
Pozdrawiam.