pierwsze kroki i... ściana

Masz problem, z którym nie możesz sobie poradzić? Pisz śmiało!
ODPOWIEDZ
MISIEK666-6
Młodszy majsterkowicz
Posty: 2
Rejestracja: 8 lut 2019, 00:55

pierwsze kroki i... ściana

Post autor: MISIEK666-6 » 8 lut 2019, 01:19

Cześć mam problem z podstawami.
Po trzech (pierwszych) godzinach z arduino udało mi się "sklecić" coś takiego:
(światła dzienne na 7 ledach )

Kod: Zaznacz cały

void setup() {

pinMode(2,INPUT_PULLUP);
pinMode(3,INPUT_PULLUP);
pinMode(6,OUTPUT);
pinMode(7, OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
}
void loop(){
delay(1000);
while(digitalRead(2) == LOW)  //rozpalanie diod 
delay(50);
digitalWrite(6,LOW);
delay(270);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(260);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(250);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(240);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
delay(230);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(220);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
delay(210);
digitalWrite(12,HIGH);

digitalWrite(6,LOW);

delay(200);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(190);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(180);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(170);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
delay(160);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(150);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
delay(140);
digitalWrite(12,HIGH);

digitalWrite(6,LOW);
delay(130);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(120);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(110);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(100);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
delay(100);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
delay(100);
digitalWrite(12,HIGH);


//dopalanie
digitalWrite(6,LOW);
delay(100);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(100);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(100);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
delay(100);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(100);
digitalWrite(11,HIGH);
digitalWrite(12,LOW);
delay(100);
digitalWrite(6,LOW);
delay(100);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(100);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(100);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
delay(100);
digitalWrite(10,HIGH);
digitalWrite(11,LOW);
delay(100);
digitalWrite(6,LOW);
delay(100);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(100);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(100);
digitalWrite(9,HIGH);
digitalWrite(10,LOW);
delay(100);
digitalWrite(6,LOW);
delay(100);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(100);
digitalWrite(8,HIGH);
digitalWrite(9,LOW);
delay(100);
digitalWrite(6,LOW);
delay(100);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(100);
digitalWrite(7,HIGH);
digitalWrite(8,LOW);
delay(100);
digitalWrite(6,LOW);
delay(95);
digitalWrite(6,HIGH);
digitalWrite(7,LOW);
delay(90);
digitalWrite(6,LOW);
delay(1000);

while (digitalRead(2) == HIGH) // pin in gaszący
delay(50);
//wygaszanie
digitalWrite(6,HIGH);
delay(270);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(260);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(250);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(240);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(230);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
delay(220);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
delay(210);
digitalWrite(12,LOW);
digitalWrite(6,HIGH);
delay(200);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(190);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(180);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(170);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(160);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
delay(150);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
delay(140);
digitalWrite(12,LOW);
digitalWrite(6,HIGH);
delay(130);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(120);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(110);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(100);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(100);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
delay(100);
digitalWrite(12,LOW);

//gaszenie
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(100);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(100);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(100);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(11,LOW);
digitalWrite(12,HIGH);
delay(100);
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(100);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(100);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(100);
digitalWrite(10,LOW);
digitalWrite(11,HIGH);
delay(100);
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(100);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(100);
digitalWrite(9,LOW);
digitalWrite(10,HIGH);
delay(100);
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(100);
digitalWrite(8,LOW);
digitalWrite(9,HIGH);
delay(100);
digitalWrite(6,HIGH);
delay(100);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(100);
digitalWrite(7,LOW);
digitalWrite(8,HIGH);
delay(100);
digitalWrite(6,HIGH);
delay(95);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(90);
digitalWrite(6,HIGH);
delay(1000);

}
i działa, lecz potrzebuję zapalić dwie diody (obojętne które, gdy wszystkie diody są wygaszone) gdy na pinie 3 pojawi się sygnał ( z kierunkowskazu czyli przerywany ) -po zaniknięciu impulsów diody muszą zgasnąć. Jak już zauważyłem polecenie while zatrzymuje resztę poleceń, a ify mnie
przerosły przerosły bo gdy jest warunek spełniony z ifem to cały cykl rozpalania czy gaszenie jest w loop-ie. Proszę o pomoc a nie odnośniki do ,,podstawy w arduino" tak wiem, że są niezbędne.pozdrawiam;)
Ostatnio zmieniony 8 lut 2019, 17:31 przez MrLewerence, łącznie zmieniany 1 raz.
Powód: kod programu w znaczniku code a nie quote ;)

Co miesiąc do wygrania nagrody o wartości ponad 1600 zł!


Awatar użytkownika
Marhef
Złota rączka
Posty: 1095
Rejestracja: 18 lis 2011, 02:18

Re: pierwsze kroki i... ściana

Post autor: Marhef » 8 lut 2019, 10:05

Nie do końca wiem, jak rozwiązać Twój problem. Ale zamiana while na if powinna być prosta.
Chcesz, żeby rozpalenie albo gaszenie wykonało się raz? Z tego, co widzę, w zapisie masz błędy. Na przykład w liniach gdzie masz while, to while dotyczy tylko jednej instrukcji - opóźnienia.
Piszesz, żeby nie odsyłać Cię do podstaw... ale bez nich niewiele napiszesz. Znaczy, możesz napisać program, ale nie będziesz wiedział, jak on działa.
Strasznie dużo kodu napisałeś, a można to napisać dużo krócej. A będzie działało dokładnie tak samo.

Opisz dokładnie, co chciałeś osiągnąć. Ale dokładnie opisz! To, co tu wstawiłeś. I to, co chcesz zrobić. Będzie łatwiej pomóc. Tego kodu nie rozumiem...
MISIEK666-6
Młodszy majsterkowicz
Posty: 2
Rejestracja: 8 lut 2019, 00:55

Re: pierwsze kroki i... ściana

Post autor: MISIEK666-6 » 8 lut 2019, 20:03

Dziękuję za zainteresowanie i chęć pomocy.
Efekt o który chodzi udało mi się uzyskać, może trochę w skomplikowany sposób.
VID_20190208_134330_480x360.mp4
i
VID_20190208_134342_480x360.mp4
Problemem (przynajmniej dla mnie)jest,
gdy wstawiam ify i warunki zostaną spełnione to ledy znów zaczynają się rozpalać lub gasnąć, a nie pozostają w "ostatniej pozycji"
Nie masz wymaganych uprawnień, aby zobaczyć pliki załączone do tego posta.
ODPOWIEDZ

Strony partnerskie: