Skrzyżowanie z przejściami dla pieszych. - Orion045 - 01-02-2017
Kod: void setup() {
//Lewa strona i prawa
pinMode(2, OUTPUT);pinMode(7, OUTPUT);//Dioda czerwona
pinMode(3, OUTPUT);pinMode(8, OUTPUT); //Dioda pomarańczowa
pinMode(4, OUTPUT);pinMode(9, OUTPUT); //Dioda zielona
pinMode(5, OUTPUT);pinMode(10, OUTPUT);//Dioda czerwona
pinMode(6, OUTPUT);pinMode (11, OUTPUT); //Dioda zielona
pinMode(0, INPUT_PULLUP);pinMode(1, INPUT_PULLUP); //Przyciski
digitalWrite(2, LOW); digitalWrite(7, LOW); //Dioda czerwona
digitalWrite(3, LOW); digitalWrite(8, LOW); //Dioda pomarańczowa
digitalWrite(4, LOW); digitalWrite(9, LOW); //Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
}
void loop() {
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(5000);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(2000);
//Miganie diod pomarańczowej i zielonej
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(90, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, LOW);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, LOW);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, LOW);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, LOW);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, LOW);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(5000);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(2000);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, LOW);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, LOW);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, LOW);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, LOW);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, LOW);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, LOW);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
}
Napisałem taki kod i działa mi wszystko oprócz przycisków.Wypróbowane na płytce 830 stykowej(zmieściło się tylko 15 diod Led z dwoma przyciskami) Mam też pytanie jak napisać ten kod w pętli aby wykonywał się 5 razy?
Kod: //Miganie diod pomarańczowej i zielonej
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
RE: Skrzyżowanie z przejściami dla pieszych. - namok - 02-02-2017
Cytat:Napisałem taki kod i działa mi wszystko oprócz przycisków
Przyciski zapewne nie działają bo używasz delay() zamiast millis(). Nie ma ich w programie to trudno mieć pewność.
Cytat:Mam też pytanie jak napisać ten kod w pętli aby wykonywał się 5 razy?
Od tego jest instrukcja 'for'.
Proponuję przerobić dowolny kurs arduino.
RE: Skrzyżowanie z przejściami dla pieszych. - Orion045 - 02-02-2017
(02-02-2017, 08:41)namok napisał(a): Cytat:Napisałem taki kod i działa mi wszystko oprócz przycisków
Przyciski zapewne nie działają bo używasz delay() zamiast millis(). Nie ma ich w programie to trudno mieć pewność.
Cytat:Mam też pytanie jak napisać ten kod w pętli aby wykonywał się 5 razy?
Od tego jest instrukcja 'for'.
Proponuję przerobić dowolny kurs arduino.
Dziękuję, zrobiłem tak. Teraz tylko sterowanie przejściami dla pieszych przyciskami. Myśle czy nie kupić Arduino Mega 2560 startet kit. Gdzieś widziałem klona za 105 zł. Warto go kupić? Czy lepiej oryginał? Podobno na Attiny2313 przyciski lepiej zrobić na przerwaniach niż na delay()?Jakiś przykład zastosowania millis()?Czytałem że na Arduino Uno i Leonardo interrupt można zrobić tylko na digital 2 i 3. A na na Attiny2313 ?
Kod: void setup() {
//Lewa strona i prawa
pinMode(2, OUTPUT);pinMode(7, OUTPUT);//Dioda czerwona
pinMode(3, OUTPUT);pinMode(8, OUTPUT); //Dioda pomarańczowa
pinMode(4, OUTPUT);pinMode(9, OUTPUT); //Dioda zielona
pinMode(5, OUTPUT);pinMode(10, OUTPUT);//Dioda czerwona
pinMode(6, OUTPUT);pinMode (11, OUTPUT); //Dioda zielona
pinMode(0, INPUT_PULLUP);pinMode(1, INPUT_PULLUP); //Przyciski
digitalWrite(2, LOW); digitalWrite(7, LOW); //Dioda czerwona
digitalWrite(3, LOW); digitalWrite(8, LOW); //Dioda pomarańczowa
digitalWrite(4, LOW); digitalWrite(9, LOW); //Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
}
void loop() {
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(8000);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(2000);
//Miganie diod pomarańczowej i zielonej
for(int i=0;i<5;i++)
{
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, HIGH);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, HIGH); digitalWrite(11, LOW); //Dioda zielona
delay(500);
digitalWrite(2, HIGH);digitalWrite(7, LOW);//Dioda czerwona
digitalWrite(3, LOW);digitalWrite(8, LOW);//Dioda pomarańczowa
digitalWrite(4, LOW);digitalWrite(9, HIGH);//Dioda zielona
digitalWrite(5, LOW); digitalWrite(10, HIGH); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
}
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(8000);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(2000);
//Miganie diod pomarańczowej i zielonej
for(int i=0;i<5;i++)
{
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, HIGH);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, HIGH);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, HIGH); //Dioda zielona
delay(500);
digitalWrite(7, HIGH);digitalWrite(2, LOW);//Dioda czerwona
digitalWrite(8, LOW);digitalWrite(3, LOW);//Dioda pomarańczowa
digitalWrite(9, LOW);digitalWrite(4, LOW);//Dioda zielona
digitalWrite(5, HIGH); digitalWrite(10, LOW); //Dioda czerwona
digitalWrite(6, LOW); digitalWrite(11, LOW); //Dioda zielona
delay(500);
}
}
RE: Skrzyżowanie z przejściami dla pieszych. - namok - 02-02-2017
Skup się na jednym problemie, rozwiąż go do końca i dopiero wtedy bierz się za następny.
'for' zastosowałeś ale delay() zostało. W takim przypadku przyciski możesz zrobić tylko na przerwaniach ale nie wejść tylko timera. Powinna wystarczyć biblioteka TimerOne.
W przykładach masz 'BlinkWithoutDelay'(Przykłady->02.Digital). Przejrzyj, zastanów się jak dziła. Może pozbedziesz się delay(). Pomocny może być symulator UnoArduSim: https://www.sites.google.com/site/unoardusim/home
RE: Skrzyżowanie z przejściami dla pieszych. - Orion045 - 02-02-2017
(02-02-2017, 20:29)namok napisał(a): Skup się na jednym problemie, rozwiąż go do końca i dopiero wtedy bierz się za następny.
'for' zastosowałeś ale delay() zostało. W takim przypadku przyciski możesz zrobić tylko na przerwaniach ale nie wejść tylko timera. Powinna wystarczyć biblioteka TimerOne.
W przykładach masz 'BlinkWithoutDelay'(Przykłady->02.Digital). Przejrzyj, zastanów się jak dziła. Może pozbedziesz się delay(). Pomocny może być symulator UnoArduSim: https://www.sites.google.com/site/unoardusim/home
Pobrałem symulator UnoArduSim v 1.7.1. Przy próbie uruchomienia wykrywa wirusa. Muszę wyłączyć antywirusa. Można gdzieś do niego znaleźć spolszczenie albo przynajmniej opis po polsku?Albo inny po polsku?
RE: Skrzyżowanie z przejściami dla pieszych. - namok - 03-02-2017
O spolszczenu nie słyszałem. Wszystkie symulatory które widziałem były "po angielsku".
RE: Skrzyżowanie z przejściami dla pieszych. - Orion045 - 03-02-2017
(03-02-2017, 00:36)namok napisał(a): O spolszczenu nie słyszałem. Wszystkie symulatory które widziałem były "po angielsku".
Najszybciej uczę się na przykładach. Teraz wiem jak zastosować instrukcję for.
Kod: (for(int i=0;i<5;i++)
{
// Zawartość pętli
})
Pętla jest wykonywana(int i=0;i<5; ) od 0 do 4 czyli 5 razy, i++ zwiększa o 1. Tak? W przypadku i=5 od 0 do 5 czyli 6 razy? Mam pytanie czy w dolnym kodzie wszystko dobrze?Uprościłem kod do mijanki aby się nauczyć obsługi przycisków. Jak zrobić żeby diody świeciły się tak czerwona w pierwszym a zielona w drugim przez cały czas a dopiero po naciśnięciu przycisku załączyła się sekwencja zmiany na zielona pierwszy i czerwona drugi sygnalizator?Niby mi działa ale wszystko nie tak.
Kod: // Pierwszy sygnalizator
int led0 = 2;// Dioda czerwona
int led1 = 3;// Dioda pomarańczowa
int led2 = 4;// Dioda zielona
// Drugi sygnalizator
int led3 = 7;// Dioda czerwona
int led4 = 8;// Dioda pomarańczowa
int led5 = 9;// Dioda zielona
int switch0 = 0; // przycisk na pin 0
int switch1 = 1; // przycisk na pin 0
void setup()
{
pinMode(led0, OUTPUT); //pin 2 jako wyjście
pinMode(led1, OUTPUT); //pin 3 jako wyjście
pinMode(led2, OUTPUT); //pin 4 jako wyjście
pinMode(led3, OUTPUT); //pin 7 jako wyjście
pinMode(led4, OUTPUT); //pin 8 jako wyjście
pinMode(led5, OUTPUT); //pin 9 jako wyjście
pinMode(switch0, INPUT); // pin 0 jako wejście
}
void loop()
{
if (digitalRead(switch0) == LOW) // sprawdzanie czy na pinie 0 jest stan wysoki
//Miganie diod pomarańczowej i zielonej
for(int i=0;i<5;i++)
{
{
digitalWrite(led0, HIGH); // włącz diodę
digitalWrite(led1, HIGH); // włącz diodę
digitalWrite(led2, LOW); // włącz diodę
digitalWrite(led3, LOW); // włącz diodę
digitalWrite(led4, LOW); // włącz diodę
digitalWrite(led5, HIGH); // włącz diodę
delay(1000);
digitalWrite(led0, HIGH);// wyłącz diodę
digitalWrite(led1, LOW); // wyłącz diodę
digitalWrite(led2, LOW); // wyłącz diodę
digitalWrite(led3, LOW); // wyłącz diodę
digitalWrite(led4, LOW); // wyłącz diodę
digitalWrite(led5, LOW); // wyłącz diodę
delay(1000);
// Drugi sygnalizator
digitalWrite(led0, LOW); // włącz diodę
digitalWrite(led1, LOW); // włącz diodę
digitalWrite(led2, HIGH); // włącz diodę
digitalWrite(led3, HIGH); // włącz diodę
digitalWrite(led4, LOW); // włącz diodę
digitalWrite(led5, LOW); // włącz diodę
delay (5000);
digitalWrite(led0, LOW); // włącz diodę
digitalWrite(led1, LOW); // włącz diodę
digitalWrite(led2, HIGH); // włącz diodę
digitalWrite(led3, HIGH); // włącz diodę
digitalWrite(led4, HIGH); // włącz diodę
digitalWrite(led5, LOW); // włącz diodę
delay (2000);
if (digitalRead(switch1) == LOW) // sprawdzanie czy na pinie 1 jest stan wysoki
//Miganie diod pomarańczowej i zielonej
for(int i=0;i<5;i++)
{
{
digitalWrite(led0, HIGH); // wyłącz diodę
digitalWrite(led1, LOW); // wyłącz diodę
digitalWrite(led2, LOW); // wyłącz diodę
digitalWrite(led3, LOW); // wyłącz diodę
digitalWrite(led4, LOW); // wyłącz diodę
digitalWrite(led5, LOW); // wyłącz diodę
delay(1000);
digitalWrite(led0, HIGH); // włącz diodę
digitalWrite(led1, HIGH); // włącz diodę
digitalWrite(led2, LOW); // włącz diodę
digitalWrite(led3, LOW); // włącz diodę
digitalWrite(led4, LOW); // włącz diodę
digitalWrite(led5, HIGH); // włącz diodę
delay(1000);
}
}
}
}
}
RE: Skrzyżowanie z przejściami dla pieszych. - namok - 03-02-2017
Nie jest dobrze bo prawdopodobnie brakuje klamer '{}' przy instrukcjach if.
Jak dajesz komentarz do operacji to powinien być zgodny z operacją a u Ciebie jest np:
Kod PHP: digitalWrite(czerwona, HIGH); // włącz diodę digitalWrite(pomarancz, HIGH); // włącz diodę digitalWrite(zielona, LOW); // włącz diodę digitalWrite(czerwona_2, LOW); // włącz diodę digitalWrite(pomarancz_2, LOW); // włącz diodę digitalWrite(zielona_2, HIGH); // włącz diodę
RE: Skrzyżowanie z przejściami dla pieszych. - Orion045 - 04-02-2017
(03-02-2017, 21:24)namok napisał(a): Nie jest dobrze bo prawdopodobnie brakuje klamer '{}' przy instrukcjach if.
Jak dajesz komentarz do operacji to powinien być zgodny z operacją a u Ciebie jest np:
Kod PHP: digitalWrite(czerwona, HIGH); // włącz diodę digitalWrite(pomarancz, HIGH); // włącz diodę digitalWrite(zielona, LOW); // włącz diodę digitalWrite(czerwona_2, LOW); // włącz diodę digitalWrite(pomarancz_2, LOW); // włącz diodę digitalWrite(zielona_2, HIGH); // włącz diodę
Zrobiłem w ten sposób.Ale to nie to.Miga dioda pomarańczowa i zielona jak jest czerwona z lewej. Jak przełączy czerwoną na prawo to diody pomarańczowa i zielona nie migają tylko przełącza na czerwoną z lewej strony i znowu tu nie migają diody pomarańczowa i zielona a z prawej migają. I tak w koło. Jak zrobić żeby zmianę świateł załączać
przyciskami?To znaczy świeci się czerwona na lewym a na prawym zielona a po naciśnięciu przycisku włączała by się sekwencja zmiany.Czerwona,czerwona i pomarańczowa ,miganie pomarańczowej i zielonej,zmiana świateł na zielona,czerwona.
Kod: // Pierwszy sygnalizator
int led0 = 2;// Dioda czerwona
int led1 = 3;// Dioda pomarańczowa
int led2 = 4;// Dioda zielona
// Drugi sygnalizator
int led3 = 7;// Dioda czerwona
int led4 = 8;// Dioda pomarańczowa
int led5 = 9;// Dioda zielona
int switch0 = 0; // przycisk na pin 0
int switch1 = 1; // przycisk na pin 1
void setup()
{
pinMode(led0, OUTPUT); //pin 2 jako wyjście diody czerwonej
pinMode(led1, OUTPUT); //pin 3 jako wyjście diody pomarańczowej
pinMode(led2, OUTPUT); //pin 4 jako wyjście diody zielonej
pinMode(led3, OUTPUT); //pin 7 jako wyjście diody czerwonej
pinMode(led4, OUTPUT); //pin 8 jako wyjście diody pomarańczowej
pinMode(led5, OUTPUT); //pin 9 jako wyjście diody zielonej
pinMode(switch0, INPUT); // pin 0 jako wejście
pinMode(switch1, INPUT); // pin 1 jako wejście
}
void loop()
{
//Miganie diod pomarańczowej i zielonej
digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
digitalWrite(led1, LOW);digitalWrite(led4, LOW); // włącz diodę pomarańczową
digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną
delay(5000);
digitalWrite(led0, HIGH);digitalWrite(led3, LOW);// wyłącz diodę czerwoną
digitalWrite(led1, HIGH);digitalWrite(led4, LOW); // wyłącz diodę pomarańczową
digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // wyłącz diodę włącz diodę zieloną
delay(2000);
for(int i=0;i<5;i++)
{
digitalWrite(led0, HIGH);digitalWrite(led3, LOW);// wyłącz diodę czerwoną
digitalWrite(led1, HIGH);digitalWrite(led4, LOW); // wyłącz diodę pomarańczową
digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // wyłącz diodę włącz diodę zieloną
delay(500);
digitalWrite(led0, HIGH);digitalWrite(led3, LOW);// wyłącz diodę czerwoną
digitalWrite(led1, LOW);digitalWrite(led4, LOW); // wyłącz diodę pomarańczową
digitalWrite(led2, LOW);digitalWrite(led5, LOW); // wyłącz diodę włącz diodę zieloną
delay(500);
}
// Drugi sygnalizator
digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
digitalWrite(led1, LOW);digitalWrite(led4, LOW); // włącz diodę pomarańczową
digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
delay (5000);
digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // włącz diodę czerwoną
digitalWrite(led1, LOW);digitalWrite(led4, HIGH); // włącz diodę pomarańczową
digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // włącz diodę zieloną
delay (2000);
//Miganie diod pomarańczowej i zielonej
digitalWrite(led0, HIGH);digitalWrite(led3,LOW); // wyłącz diodę czerwoną
digitalWrite(led1, LOW);digitalWrite(led4, LOW); // wyłącz diodę pomarańczową
digitalWrite(led2, LOW);digitalWrite(led5,HIGH); // wyłącz diodę zieloną
delay(5000);
digitalWrite(led0, HIGH);digitalWrite(led3, LOW); // włącz diodę czerwoną
digitalWrite(led1, HIGH);digitalWrite(led4, LOW); // włącz diodę pomarańczowa
digitalWrite(led2, LOW);digitalWrite(led5, HIGH); // włącz diodę zieloną
delay(2000);
for(int i=0;i<5;i++)
{
digitalWrite(led0, LOW);digitalWrite(led3, HIGH); // wyłącz diodę czerwoną
digitalWrite(led1, LOW);digitalWrite(led4, HIGH); // wyłącz diodę pomarańczową
digitalWrite(led2, HIGH);digitalWrite(led5, LOW); // wyłącz diodę włącz diodę zieloną
delay(500);
digitalWrite(led0, LOW);digitalWrite(led3,HIGH);// wyłącz diodę czerwoną
digitalWrite(led1, LOW);digitalWrite(led4, LOW); // wyłącz diodę pomarańczową
digitalWrite(led2, LOW);digitalWrite(led5, LOW); // wyłącz diodę włącz diodę zieloną
delay(500);
}
}
RE: Skrzyżowanie z przejściami dla pieszych. - namok - 04-02-2017
Nie ma takiej możliwości a by jednocześnie działały dwie sekwencje z użyciem delay().
W momencie wywołania delay() program "stoi w miejscu" do momentu aż minie zadany czas.
W momencie wywołania delay() nie działają przyciski czytane w pętli loop().
Możesz to zrobić z użyciem millis() ale musisz dobrze przemyśleć algorytm. Poczytaj: https://techniczny.wordpress.com/2012/04/07/wielozadaniowosc-w-arduino/
Oczywiście są biblioteki pomagające w wielowątkowości np: http://www.jarzebski.pl/arduino/biblioteki/leos-2-czyli-watki-pod-arduino.html.
|