kris2k Październik 25, 2018 Udostępnij Październik 25, 2018 Dziękuje za wyjaśnienie! Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Październik 26, 2018 Udostępnij Październik 26, 2018 19 godzin temu, eksio napisał: mając równe 5V można także podlaczyc zasilanie do pinu 5V Dokładnie tak, dla formalności dodam tylko, że nie można zasilać Arduino podając samo 3,3V na tak opisany pin. Dla wielu osób będzie to oczywiste, ale wolę napisać, aby nikt się nie dziwił później, że zasilanie przez 5V działa, a przez 3,3V już nie 😉 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Listopad 20, 2018 Udostępnij Listopad 20, 2018 Dla większego porządku wydzieliłem część postów z tego tematu do następujących wątków: https://forbot.pl/forum/topic/12472-skrocona-negacja-warunku-wydzielone-z-kurs-arduino-2/ https://forbot.pl/forum/topic/12473-stan-pinow-po-wyjsciu-z-petli-wydzielone-z-kurs-arduino-2/ Cytuj Link do komentarza Share on other sites More sharing options...
StachuGDY Grudzień 23, 2018 Udostępnij Grudzień 23, 2018 Witam serdecznie, mam pytanie apropos trzeciej części kursu Arduino poziom 1, a mianowicie funkcji while. W przykładzie z diodami pętla while została użyta po określeniu odpowiedniej sekwencji zapalania się diod. przykład: digitalWrite(10, LOW); //Czerwona digitalWrite(9, LOW); //Pomarańczowa digitalWrite(8, HIGH); //Zielona delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde while (digitalRead(7) == HIGH) {} //Jeśli przycisk jest wciśnięty rozumiem , że chodzi tu o zatrzymanie programu w momencie kiedy pali się ta jedna dioda do momentu, kiedy warunek przestanie być spełniany, jednak zastanawia mnie, dlaczego nie można by napisać tego w taki sposób: while (digitalRead(7) == HIGH) { digitalWrite(10, LOW); //Czerwona digitalWrite(9, LOW); //Pomarańczowa digitalWrite(8, HIGH); //Zielona } delay(1000); //Zatrzymujemy program przed wejściem do pętli na 1 sekundę Jedyną różnicą, jaką zaobserwowałem jest fakt, iż zamiast sekundy, przez którą nie można nic zrobić w przypadku pierwszym, czyli po zmianie na następną pętle, w której pali się inna dioda( przez pierwszą sekundę z powodu ''delay'' będzie się ona paliła niezależnie od, tego czy i ile razy wciśniemy przycisk,) w drugim przypadku następuje ona po wciśnięciu go, czyli uściślając wciskamy przycisk, ''wcześniejsza'' dioda pali się jeszcze przez sekundę i dopiero wtedy zachodzi zmiana. Czy oprócz tego są jeszcze jakieś różnice w tym zapisie komendy? Czy może są przykłady, w których wskazane jest użyć konkretnego rozwiązania z tych dwóch, czy może jest to tylko kwestia preferencji(w co wątpie:) )? Po prostu staram się to jak najlepiej zrozumieć, a nie do końca widzę różnicę i z tego powodu nie jestem pewien, którego wyjścia używać:) Pozdrawiam serdecznie i z góry dziękuję za poswięcony czas:) Cytuj Link do komentarza Share on other sites More sharing options...
Polecacz 101 Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Zarejestruj się lub zaloguj, aby ukryć tę reklamę. Produkcja i montaż PCB - wybierz sprawdzone PCBWay! • Darmowe płytki dla studentów i projektów non-profit • Tylko 5$ za 10 prototypów PCB w 24 godziny • Usługa projektowania PCB na zlecenie • Montaż PCB od 30$ + bezpłatna dostawa i szablony • Darmowe narzędzie do podglądu plików Gerber Zobacz również » Film z fabryki PCBWay
Treker (Damian Szymański) Grudzień 27, 2018 Udostępnij Grudzień 27, 2018 @StachuGDY, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start: Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników. Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć? Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości. Dnia 23.12.2018 o 22:52, StachuGDY napisał: rozumiem , że chodzi tu o zatrzymanie programu w momencie kiedy pali się ta jedna dioda do momentu, kiedy warunek przestanie być spełniany Słusznie, dokładnie o to chodzi. Dnia 23.12.2018 o 22:52, StachuGDY napisał: jednak zastanawia mnie, dlaczego nie można by napisać tego w taki sposób: Można, ale trochę to bez sensu, bo wtedy w pętli cały czas ustawiasz stany na diodach. To tak jakbyś podszedł do włącznika światła, włączył je, a później cały czas dalej wciskałbyś przełącznik. Efekt ten sam, a Ty nie potrzebnie byś go naciskał 😉 W tak prostym programie nie ma to większej różnicy, ale ogólnie odradzałbym drugą metodę. 1 Cytuj Link do komentarza Share on other sites More sharing options...
StachuGDY Grudzień 29, 2018 Udostępnij Grudzień 29, 2018 @Treker Dzieki wielkie za odpowiedz 😄 teraz ma to sens. 1 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Grudzień 29, 2018 Udostępnij Grudzień 29, 2018 @StachuGDY powodzenia w dalszych eksperymentach 😉 Cytuj Link do komentarza Share on other sites More sharing options...
bydlak69 Styczeń 11, 2019 Udostępnij Styczeń 11, 2019 digitalWrite(10, HIGH); //Czerwona digitalWrite(9, LOW); //Pomarańczowa digitalWrite(8, LOW); //Zielona delay(1000); //Zatrzymujemy program przed wejsciem do pętli na 1 sekunde while (digitalRead(7) == HIGH) {} //Jeśli przycisk jest wciśnięty Rozumiem, że jeżeli będę "wciskał" przycisk dłużej niż sekundę to program przeskoczy jeden zbiór zadań i zatrzyma się na kolejnym czekaniu sekundy. Teoretycznie można ustawić zadanie używając tego kodu na długość trzymanego przycisku, tak? Chodź pewnie do takiego zadania milej i łatwiej (Jeżeli po pętli miały by się dziać inne zdarzenia czasowe) byłoby użyć przedziału czasu w jakim przycisk ma być odciśnięty, a jeżeli się tak nie stanie to pominie dalszy kod i przejdzie do kolejnego zbioru zadan . Jest to zrozumiałe co napisałem w ogóle? 😛 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Styczeń 14, 2019 Udostępnij Styczeń 14, 2019 @bydlak69, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start: Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników. Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć? Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości. Dnia 11.01.2019 o 22:31, bydlak69 napisał: Rozumiem, że jeżeli będę "wciskał" przycisk dłużej niż sekundę to program przeskoczy jeden zbiór zadań i zatrzyma się na kolejnym czekaniu sekundy. Jeśli w kodzie byłoby kilka takich fragmentów to stanie się dokładnie tak, jak to opisałeś. Dnia 11.01.2019 o 22:31, bydlak69 napisał: Teoretycznie można ustawić zadanie używając tego kodu na długość trzymanego przycisku, tak? Nie byłoby to najwygodniejsze rozwiązanie, ale tak, teoretycznie jest to możliwe 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Panda Styczeń 30, 2019 Udostępnij Styczeń 30, 2019 Mam pytanie: Dlaczego pod koniec artykułu jest napisane: " while (digitalRead(7) == HIGH) {} //Jeśli przycisk jest wciśnięty" Prędzej było napisane: "while (digitalRead(7) == LOW) { //Jeśli przycisk jest wciśnięty" To gdy jest low, to oznacza, że jest wciśnięty czy nie? Z góry dzięki za odpowiedź. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Styczeń 30, 2019 Udostępnij Styczeń 30, 2019 @Panda, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start: Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników. Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć? Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości. 2 godziny temu, Panda napisał: Prędzej było napisane: "while (digitalRead(7) == LOW) { //Jeśli przycisk jest wciśnięty" W pierwszym zapisie nic nie robimy (pusta pętla) i czekamy na wciśnięcie przycisku, aby przejść do dalszej pętli programu. W drugim wykonujemy cały czas operacje, które są w pętli i wychodzimy z niej po wciśnięciu przycisku. Zmieniłem komentarze pod koniec artykuły, aby były łatwiejsze w zrozumieniu na "//Czekaj na wciśnięcie przycisku" - mam nadzieję, że teraz będzie prościej 😉 1 Cytuj Link do komentarza Share on other sites More sharing options...
Panda Styczeń 30, 2019 Udostępnij Styczeń 30, 2019 Dzięki, bo chodziło mi o to, że najpier "LOW" oznaczało wciśnięty, a potem HIGH oznaczało wciśnięty. Teraz już rozumiem. Dzięki! 😄 Cytuj Link do komentarza Share on other sites More sharing options...
narbej Styczeń 30, 2019 Udostępnij Styczeń 30, 2019 (edytowany) Światła drogowe, kojarzą mi się z samochodem i jego reflektorami, natomiast w ćwiczeniu diody kojarzą mi się raczej ze świetlną sygnalizacją uliczną np na niektórych, większych skrzyżowaniach ulic .... PS Ale kurs ok. Edytowano Styczeń 30, 2019 przez narbej Cytuj Link do komentarza Share on other sites More sharing options...
Ra5273x Marzec 18, 2019 Udostępnij Marzec 18, 2019 (edytowany) Cześć mam pewien problem z warunkiem if, mam pewne dane zapisane w zmiennej buf i chciałbym żeby warunek if odczytywał tylko konkretną wartość, tak wygląda mój warunek if(buf == 8,0,40,0,0,65,0,88){ Serial.println("odebrałem dane "); wlacz=2; }} //tak to mniej więcej ma wyglądać że tylko 65 sprawdzi. if(buf == 0,0,0,0,0,65,0,0){ // sprawdź tylko wartość 6 bajtu Serial.println("odebrałem dane o mignieciu"); wlacz=2; }} I teraz działa tak że jeśli wszystko jest to samo to włącz=2; a chcę aby warunek if odebrał i sprawdzał tylko np.65 pomijając wszystkie poprzednie. Poratujecie? Dobra udało mi sie Serial.print(buf[i], HEX); Serial.print(","); } else { Serial.print(buf[i], HEX); Serial.println(";"); } } Serial.println(buf[5], HEX);//tutaj odczytuje wartość 6 Edytowano Marzec 18, 2019 przez radex324 1 Cytuj Link do komentarza Share on other sites More sharing options...
lukas0321 Marzec 25, 2019 Udostępnij Marzec 25, 2019 Ja zauważyłem przy 10 że dioda przestała mrugać... 1 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!