Treker (Damian Szymański) Czerwiec 26, 2016 Udostępnij Czerwiec 26, 2016 borewicz79, tak - poczytaj o funkcji milis(), która pozwala na odmierzanie czasu bez zatrzymywania programu 🙂 Link do komentarza Share on other sites More sharing options...
borewicz79 Czerwiec 26, 2016 Udostępnij Czerwiec 26, 2016 wooow...dzięki za szybką odpowiedź Nie bardzo rozumiem gdzie miałbym wykorzystać funkcję millis w moim programie. Pozdrawiam Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Czerwiec 27, 2016 Udostępnij Czerwiec 27, 2016 borewicz79, na ten moment funkcja ta nie była opisywana w kursie Arduino (jeszcze), więc nie mam gdzie Cie odesłać. Zerknij na przykład ze strony Arduino, jest tam pokazane jak migać diodą bez funkcji delay: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay Link do komentarza Share on other sites More sharing options...
dawid_s Lipiec 23, 2016 Udostępnij Lipiec 23, 2016 Cześć,Dziś zacząłem przygodę z Arduino i niestety nie mogę rozwiązać jednego problemu: po skompilowaniu pierwszego programu , wykorzystującego przycisk i diodę oraz wgraniu go na płytkę, dioda zapala się sama i świeci na stałe (tak, jakby program wykonywał zadania niezależnie od warunków) lub kiedy jednak się nie zaświeci i zrobię to za pomocą wciśnięcia przycisku, to zapala się ona na stałe, po czym trzeba zresetować układ. Wychodzi na to, jakby funkcja "else" nie działała poprawnie. Kiedy zamiast else użyję delay, dioda normalnie gaśnie i jest okej - normalnie reaguje na przycisk. Bardzo proszę o pomoc, bo nie wiem czy z płytką jest coś nie tak, czy też ja jednak coś źle robię.. Próbowałem również tak i również nie działa: void setup() { pinMode(10, OUTPUT); //Dioda czerwona pinMode(7, INPUT_PULLUP); //Przycisk digitalWrite(10, LOW); //Wyłączenie diod } void loop() { while(digitalRead(7)==LOW) { digitalWrite(10, HIGH); } while(digitalRead(7)==HIGH){ digitalWrite(10, LOW); } } 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
dawid_s Lipiec 24, 2016 Udostępnij Lipiec 24, 2016 Tak już próbowałem, teraz dla pewności też skopiowałem i nie działa. A kod, który wkleiłem, to po prostu chciałem zrobić to w inny sposób. Chodzi o to, że mój układ nie reaguje na puszczenie przycisku. Po wciśnięciu dioda się zapala, a po puszczeniu powinna zgasnąć, jednak tak się nie dzieje (kolejne programy z kursu działają, jednak nie ten pierwszy, który w czasie trzymania przycisku świeci diodą, a puszczenia ją gasi). Poza tym nawet po resecie czasem dioda sama się zapala i muszę zresetować kilka razy, aby zgasła. Dodatkowo podczas wgrania pierwszego programu z lekcji UART nie wyświetla mi "Witaj na Forbocie!" 🙁 a kiedy najpierw włączam monitor szeregowy, przed startem programu, wyrzuca mi błąd. Coś tu nie gra, może mam coś wyłączone? Link do komentarza Share on other sites More sharing options...
dawid_s Lipiec 24, 2016 Udostępnij Lipiec 24, 2016 Mam wszystko dobrze podłączone. Zresztą inaczej inne programy również by mi nie działały, jakby było źle. A co do drugiego, to wiem, że trzeba poczekać, aż przejdzie pasek 😋 tylko po włączeniu monitora szeregowego program jest już dalej, czyli nie wyświetla mi "Witaj na Forbocie", a jak włączę monitor wcześniej, to wyrzuca błąd. Po resecie na arduino nic się nie wyświetla, więc nie wiem, jak inaczej można odpalić program od nowa, nie wgrywając go ponownie na płytkę. Link do komentarza Share on other sites More sharing options...
dawid_s Lipiec 24, 2016 Udostępnij Lipiec 24, 2016 No właśnie mi nie działa, dlatego proszę o pomoc kogoś, kto wie, jak rozwiązać te problemy.. Wiem, że powinno tak działać, ale no nie działa Link do komentarza Share on other sites More sharing options...
dawid_s Lipiec 24, 2016 Udostępnij Lipiec 24, 2016 Za każdym razem tak jest, jak otwieram wcześniej monitor. Tak, mam ustawioną na 101. Link do komentarza Share on other sites More sharing options...
dawid_s Lipiec 24, 2016 Udostępnij Lipiec 24, 2016 Tak, jak pisałem już wcześniej, mam problemy z: -przy wciśnięciu i puszczeniu przycisku dioda nie gaśnie(nie reaguje na puszczenie przycisku), tylko trzeba resetować arduino,-czasem diody się świecą już od startu programu i trzeba kilka razy resetować (lub świecą bardzo słabo i wtedy pomaga poruszenie przewodami przy arduino) -przy monitorze szeregowym, jak włączam, to program jest w trakcie działania i nie wyświetla mi tego, co jest w void setup (przy zliczaniu, kiedy włączę monitor liczy mi np. od 10, czyli program ruszył wcześniej i nie wyświetla mi wcześniejszych zadań), a kiedy włączę monitor przed wgraniem programu, to wyświetla mi się błąd (zdjęcie wyżej). Wszystko inne mi działa, ustawione mam w programie genuino 101, przewody mam podłączone dobrze. Nie wiem czy trzeba w jakichś ustawieniach coś zmienić jeszcze (choć nic takiego nie widziałem), czy też z płytką jest coś niedobrego Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 4, 2016 Udostępnij Sierpień 4, 2016 dawid_s, po pierwsze nie otwieraj monitora przed zaprogramowaniem. Rób to po. Zawsze układ jest wtedy resetowany i działa poprawnie. Piszesz, że masz ustawione w programie Genuino 101, ale nigdzie nie napisałeś, czy faktycznie używasz tej płytki. Wklej ostateczną wersją swojego programu, który nie działa i napisz na jakim układzie ją uruchamiasz. Mam pod ręką sprzęt - sprawdzę, czy po wgraniu wszystko działa poprawnie. Link do komentarza Share on other sites More sharing options...
Illustratum Październik 22, 2016 Udostępnij Październik 22, 2016 Bardzo dobry kurs nauki programowani w Arduino i w ogóle. Dzięki za wysiłek. 🙂 1 Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Październik 22, 2016 Udostępnij Październik 22, 2016 Illustratum, dzięki za miłe słowa - powodzenia podczas nauki 🙂 Link do komentarza Share on other sites More sharing options...
Atriades Grudzień 16, 2016 Udostępnij Grudzień 16, 2016 Witam! Wymyśliłem sobie aby napisać program, który będzie włączał diodę zieloną tylko wtedy kiedy zostaną spełnione 4 warunki. Jeżeli którykolwiek lub kilka warunków nie zostanie spełnione, ma się zapalać jedna lub kilka diod czerwonych. Problem jest taki, że nie wiem co robię źle. Używam tylko IFów, ELSEów oraz WHILE. A może nie da się tego napisać tylko przy pomocy tych komend? Tak wygląda mój program: #define error1 2 #define error2 3 #define error3 4 #define error4 5 // Diody sygnalizujace blad #define start 6 // Dioda sygnalizujaca brak bledow i zezwalajaca na start #define pierwszy 8 #define drugi 9 #define trzeci 10 #define czwarty 11 // Warunki do spelnienia (np. Wylaczniki krancowe) void setup() { pinMode (error1, OUTPUT); pinMode (error2, OUTPUT); pinMode (error3, OUTPUT); pinMode (error4, OUTPUT); pinMode (start, OUTPUT); pinMode (pierwszy, INPUT); pinMode (drugi, INPUT); pinMode (trzeci, INPUT); pinMode (czwarty, INPUT); digitalWrite(error1, LOW); digitalWrite(error2, LOW); digitalWrite(error3, LOW); digitalWrite(error4, LOW); digitalWrite(start, LOW); } void loop() { while (digitalRead(pierwszy) == HIGH); (digitalRead(drugi) == HIGH); (digitalRead(trzeci) == HIGH); (digitalRead(czwarty) == HIGH); digitalWrite(start, HIGH); if (digitalRead(pierwszy) == LOW) { digitalWrite(error1, HIGH); } else {} if (digitalRead(drugi) == LOW) { digitalWrite(error2, HIGH); } else {} if (digitalRead(trzeci) == LOW) { digitalWrite(error3, HIGH); } else {} if (digitalRead(czwarty) == LOW) { digitalWrite(error4, HIGH); } else {} } Co robię źle? Z góry dzięki za jakieś podpowiedzi __________ Komentarz dodany przez: Treker Kody programów należy umieszczać przez narzędzie KOD (znajdziesz je w edytorze pod ikonką "<>"). Dzięki niemu składania programów jest automatycznie kolorowana, a wtedy wszystkim znacznie łatwiej analizować wklejone programy. Proszę to poprawić - z góry dziękuję za zrozumienie i pomoc przy utrzymaniu porządku na forum. Link do komentarza Share on other sites More sharing options...
Lukaszm Grudzień 16, 2016 Udostępnij Grudzień 16, 2016 Po pierwsze nauczyć się czytać i rozumieć to co czytasz. Konkretniej chodzi o Uwaga! Wszystkie kody programów muszą być umieszczane wewnątrz tagów (code] (/code]! Jeśli chodzi o odpowiedź na pytanie to zastanów się jak wygląda struktura pętli while w C/C++, przeanalizuj swój program, może coś zauważysz. Link do komentarza Share on other sites More sharing options...
marek1707 Grudzień 16, 2016 Udostępnij Grudzień 16, 2016 Podstawowy błąd jaki popełniłeś to próby programowania w C przed przeczytaniem tej książki: http://helion.pl/ksiazki/jezyk-ansi-c-programowanie-wydanie-ii-brian-w-kernighan-dennis-m-ritchie,jansic.htm Przez pierwszy tydzień powinna to być Twoja lektura do poduszki a potem stać na półce w zasięgu ramienia. Przez pierwsze pół roku pisania programów będziesz po nią sięgał co najmniej raz dziennie. Alternatywą jest gubienie się w najprostszych rzeczach i nierozumienie działania tego co się napisało. Sam zakup płytki Arduino, instalacja jego IDE i próby używania jakichś przypadkowych struktur języka (nie komend!) wziętych z przykładów bez jakiegokolwiek przygotowania teoretycznego to strata czasu. Twojego i naszego. Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »