Skocz do zawartości

Kacper_112

Użytkownicy
  • Zawartość

    4
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O Kacper_112

  • Ranga
    1/10

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. Dobra, już wiem o co chodzi. Rozwiązaniem jest użycie komendy "digitalRead" aby program odczytał bieżący stan pinu, a nie "digitalWrite", tak jak ja to zrobiłem w obu komendach "while" Dziękuję wam wszystkim bardzo za pomoc i zaangażowanie. Pozdrawiam, Kacper_112
  2. Wywołujesz digitalWrite z za małą liczbą argumentów. Dzięki za odpowiedź, ale musi Pan pamiętać, że ja jestem bardzo początkującym użytkownikiem. Czy mógłby Pan zatem przedstawić mi ten problem bardziej dosłownie, tak żeby laik, taki jak ja, zrozumiał?
  3. Po naciśnięciu przycisku wgrywania, czy li jak mi się wydaje też wcześniejszego sprawdzenia tego kodu, wyskakuje taki oto błąd (tam na dole w kolorze pomarańczowym): sygnalizacja_swietlna.ino: In function 'void loop()': sygnalizacja_swietlna.ino:88:25: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)' In file included from sygnalizacja_swietlna.ino:1:0: C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:126:6: note: declared here void digitalWrite(uint8_t, uint8_t); ^ sygnalizacja_swietlna.ino:165:25: error: too few arguments to function 'void digitalWrite(uint8_t, uint8_t)' In file included from sygnalizacja_swietlna.ino:1:0: C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:126:6: note: declared here void digitalWrite(uint8_t, uint8_t); ^ Błąd kompilacji. Mam w związku z tym dwa pytania, mianowicie: Co to oznacza? i jak się do tego zabrać? Próbowałem to wyszukiwać w internecie, ale z mizernymi efektami. Proszę o pomoc i pozdrawiam.
  4. Natomiast ja po tej części kursu poszedłem o kroczek dalej i wykorzystując poznane komendy spróbowałem napisać kod sygnalizacji świetlnej z przejściami dla pieszych i dodatkowym brzęczykiem, który w założeniach miał informować tych teoretycznych pieszych o możliwości przejścia.Niestety nie wiedzieć czemu mój kod mi nie działa... Bez zbędnego przedłużania, mój kod wygląda następująco: void setup() { //określanie wyjść/wejść i początkowych, jednorazowych działań pinMode(0, OUTPUT); //brzęczyk - sygnał możności przejścia pieszego przez jezdnię pinMode(1, INPUT_PULLUP); //Przycisk pieszy 1 pinMode(2, INPUT_PULLUP); //Przycisk pieszy 2 pinMode(3, OUTPUT); //zielone pieszy 1 pinMode(4, OUTPUT); //czerwone pieszy 1 pinMode(5, OUTPUT); //zielone pieszy 2 pinMode(6, OUTPUT); //czerwone pieszy 2 pinMode(7, OUTPUT); //pomarańczowe ostrzegające pieszy 2 pinMode(8, OUTPUT); //zielone auto 1 pinMode(9, OUTPUT); //żółte auto 1 pinMode(10, OUTPUT); //czerwone auto 1 pinMode(11, OUTPUT); //zielone auto 2 pinMode(12, OUTPUT); //żółte auto 2 pinMode(13, OUTPUT); //czerwone auto 2 //USTAWIENIA POCZĄTKOWE //zielone auto 2 digitalWrite(10, LOW); digitalWrite(9, LOW); digitalWrite(8, HIGH); //czerwone pieszy 1 digitalWrite(3, LOW); digitalWrite(4, HIGH); //zielone auto 1 digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); //czerwone pieszy 2; brak sygnału ostrzegawczego digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); } void loop() //pętla główna nie mająca wpływu na funkcje drugiego i większego poziomu (?) { if (digitalRead(1) == LOW) { //jeżeli naciśnięty przycisk pieszy 1 // żółte auto 1 po 5s delay(5000); digitalWrite(10, LOW); digitalWrite(9, HIGH); digitalWrite(8, LOW); digitalWrite(3, LOW); digitalWrite(4, HIGH); // czerwone auto 1 po 3s delay(3000); digitalWrite(10, HIGH); digitalWrite(9, LOW); digitalWrite(8, LOW); // zielone pieszy 1 po 1s delay(1000); digitalWrite(4, LOW); digitalWrite(3, HIGH); // miga zielone pieszy 1 po 8s przez 4s delay(8000); digitalWrite(4, LOW); digitalWrite(3, HIGH); delay(500); digitalWrite(4, LOW); digitalWrite(3, LOW); delay(500); digitalWrite(4, LOW); digitalWrite(3, HIGH); delay(500); digitalWrite(4, LOW); digitalWrite(3, LOW); delay(500); digitalWrite(4, LOW); digitalWrite(3, HIGH); delay(500); digitalWrite(4, LOW); digitalWrite(3, LOW); delay(500); digitalWrite(4, LOW); digitalWrite(3, HIGH); delay(500); digitalWrite(4, LOW); digitalWrite(3, LOW); delay(500); digitalWrite(4, LOW); digitalWrite(3, HIGH); //przerywane brzęczenie informujące o możności przejścia while(digitalWrite(3) == HIGH) { digitalWrite(0, HIGH); delay(500); digitalWrite(0, LOW); delay(500); } //po 0,5s czerwone pieszy 1 delay(500); digitalWrite(4, HIGH); digitalWrite(3, LOW); digitalWrite(0, LOW); // czerwone i żółte auto 1 po 1,1s delay(1100); digitalWrite(10, HIGH); digitalWrite(9, HIGH); digitalWrite(8, LOW); //zielone auto 1 po 1s delay(1000); digitalWrite(10, LOW); digitalWrite(9, LOW); digitalWrite(8, HIGH); } else { //lub gdy nie wciśnięty przycisk pieszy 1 digitalWrite(10, LOW); digitalWrite(9, LOW); digitalWrite(8, HIGH); digitalWrite(3, LOW); digitalWrite(4, HIGH); digitalWrite(0, LOW); } if (digitalRead(2) == LOW) { //jeżeli naciśnięty przycisk pieszy 2 // żółte auto 2 po 5s delay(5000); digitalWrite(13, LOW); digitalWrite(12, HIGH); digitalWrite(11, LOW); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); // czerwone auto 2 po 3s delay(3000); digitalWrite(13, HIGH); digitalWrite(12, LOW); digitalWrite(11, LOW); // zielone pieszy 2 po 1s delay(1000); digitalWrite(6, LOW); digitalWrite(5, HIGH); // miga zielone pieszy 2 po 8s przez 4s delay(8000); digitalWrite(6, LOW); digitalWrite(5, HIGH); delay(500); digitalWrite(6, LOW); digitalWrite(5, LOW); delay(500); digitalWrite(6, LOW); digitalWrite(5, HIGH); delay(500); digitalWrite(6, LOW); digitalWrite(5, LOW); delay(500); digitalWrite(6, LOW); digitalWrite(5, HIGH); delay(500); digitalWrite(6, LOW); digitalWrite(5, LOW); delay(500); digitalWrite(6, LOW); digitalWrite(5, HIGH); delay(500); digitalWrite(6, LOW); digitalWrite(5, LOW); delay(500); digitalWrite(6, LOW); digitalWrite(5, HIGH); //przerywane brzęczenie informujące o możności przejścia while(digitalWrite(5) == HIGH) { digitalWrite(0, HIGH); digitalWrite(7, HIGH); delay(500); digitalWrite(0, LOW); digitalWrite(7, LOW); delay(500); } //po 0,5s czerwone pieszy 2 delay(500); digitalWrite(6, HIGH); digitalWrite(5, LOW); digitalWrite(7, LOW); digitalWrite(0, LOW); // czerwone i żółte auto 2 po 1,1s delay(1100); digitalWrite(13, HIGH); digitalWrite(12, HIGH); digitalWrite(11, LOW); //zielone auto 1 po 1s delay(1000); digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); } else { //lub gdy nie wciśnięty przycisk pieszy 2 digitalWrite(13, LOW); digitalWrite(12, LOW); digitalWrite(11, HIGH); digitalWrite(5, LOW); digitalWrite(6, HIGH); digitalWrite(7, LOW); digitalWrite(0, LOW); } } Wykorzystałem tu wszystkie trzynaście pinów cyfrowych dostępnych w arduino UNO. Co jest nie tak ? Aha, podczas wgrywania jakiegoś tam prostego programu, któregoś z kolei, zauważyłem, że gdy przed wgrywaniem podłączę coś pod pin nr 13, to wyłącza się ta pomarańczowa lampka i tak jakby dioda którą podłączę do tego pinu przejmuje funkcję tej diody na płytce - ale tylko na chwile.
×
×
  • Utwórz nowe...