Komentator Napisano Sierpień 6, 2015 Udostępnij Napisano Sierpień 6, 2015 Do tej pory nasza komunikacja z płytką Arduino była stosunkowo ograniczona. Mogliśmy użyć diod święcących do sygnalizowania pewnych stanów lub UART do połączenia z komputerem.Ten ostatni sposób pozwalał na stosunkowo dużo jednak był mało mobilny. Teraz przyszła pora na pierwszy program z wykorzystaniem LCD. UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.Przeczytaj całość »Poniżej znajdują się komentarze powiązane z tym wpisem. Cytuj Link do komentarza Share on other sites More sharing options...
hob_bit Sierpień 7, 2015 Udostępnij Sierpień 7, 2015 Dzięki za kolejny odcinek kursu.Wieczorem jak temperatura otoczenia zacznie spadać, coś zmontuję według powyższych przykładów, bo akurat mam jeden taki wyświetlacz z Botlandu. Pozdrowił hob_bit z tropikalnej polski wschodniej 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
Synergia Sierpień 8, 2015 Udostępnij Sierpień 8, 2015 Zadanie 7.1 Jeśli chodzi o 7.2 i 7.3 to niestety nie zauważyłem większej różnicy, no może jedynie trochę trudniej pomiar się stabilizuje, często przeskakuje o wartość 0.01, ale tak to żadnego kłopotu z odczytem nie miałem 😋 chyba,że coś źle zrobiłem. zadanie 7.4 Chciałem to zrobić inaczej, tak, żeby po wciśnięciu przycisku start stoper czas odmierzał, po wciśnięciu stop czas się zatrzymywał, znowu po wciśnięciu start leciał czas i zatrzymywał po wciśnięciu stop, ale nie mam pomysłu na razie 😋 #include <LiquidCrystal.h> LiquidCrystal lcd (2, 3, 4, 5, 6, 7); #define startButton 8 #define stopButton 9 int mins = 0; int sec = 0; int ms = 0; boolean startButtonState; boolean stopButtonState; void setup() { // put your setup code here, to run once: lcd.begin(16, 2); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Simple stopwatch"); lcd.setCursor(0, 1); lcd.print("00:00.00"); pinMode(startButton, INPUT_PULLUP); pinMode(stopButton, INPUT_PULLUP); } void loop() { // put your main code here, to run repeatedly: startStopwatch(); //start stopwatch } void startStopwatch() { startButtonState = digitalRead(startButton); //read button's state if (startButtonState == LOW)//if start button was pressed { while (1) //while loop to write time and increase it by 'miliseconds' function { miliseconds(); stopStopwatch();//check after every single milisecond if "stop button" was pressed and if yes stop increasing time } } } void stopStopwatch() { stopButtonState = digitalRead(stopButton); //read button's state if (stopButtonState == LOW)//if button was pressed { while (1) { lcd.setCursor(10, 1); lcd.print("Finish"); //display inscription } } } void miliseconds() //display miliseconds { if (ms < 10) //if number needs one position { lcd.setCursor(7, 1); lcd.print(ms); lcd.setCursor(6, 1);//before number print "0" lcd.print(0); } else //if number needs two positions { lcd.setCursor(6, 1); lcd.print(ms); } delay(9);//with 10 ms delay, program was a little bit delayed than the true stopwatch ms++;//increase miliseconds if (ms == 100) //after every 100 ms { sec++;//increase seconds by 1 ms = 0;//zero miliseconds seconds();//trigger 'seconds' function } } void seconds()//display seconds { if (sec < 10)//same as in 'miliseconds' { lcd.setCursor(4, 1); lcd.print(sec); lcd.setCursor(3, 1); lcd.print(0); } else { lcd.setCursor(3, 1); lcd.print(sec); } if (sec == 60)//like in 'miliseconds' { mins++; minutes(); sec = 0; lcd.setCursor(3, 1); lcd.print("00"); //print "00" because after every 60 seconds ,there should be counting from the beginning } } void minutes() { if (mins < 10)//same as in 'seconds' { lcd.setCursor(1, 1); lcd.print(mins); lcd.setCursor(0, 1); lcd.print(0); } else { lcd.setCursor(0, 1); lcd.print(mins); } } Mam nadzieję,że na artykuł o DC będziemy krócej czekać niż na wyświetlacz 😃 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 8, 2015 Udostępnij Sierpień 8, 2015 Synergia, a gdzie potencjometr od kontrastu podłączony 🙂? W zadaniach 7.2 oraz 7.3 sprawdź jak będzie zachowywał się wyświetlacz, gdy zmiany będą zachodziły bardzo często. U mnie przy kasowaniu i pisaniu od nowa całego tekstu widać wyraźne miganie. Strasznie zawiły ten ostatni kod 🙂 Nie potrzebnie chyba mieszałeś na początku jeszcze milisekundy, sekundy i minuty. Sam pisałeś całość? łatwiej zacząć od samych sekund (nic mniej, nic więcej). Tak, silniki DC będą szybciej 😉 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
Chumanista Sierpień 8, 2015 Udostępnij Sierpień 8, 2015 U mnie się zlewało. Ale też odświeżałem co milisekundę. Cytuj Link do komentarza Share on other sites More sharing options...
hob_bit Sierpień 8, 2015 Udostępnij Sierpień 8, 2015 Z chwilowego braku Arduino Uno, próbowałem dzisiaj wykonać te zadania na Leonardo i poniosłem klęskę 🙁 , czy ktoś z was miał problem na tej płytce z niedziałającą biblioteką LiquidCrystal.h ? Cytuj Link do komentarza Share on other sites More sharing options...
Synergia Sierpień 9, 2015 Udostępnij Sierpień 9, 2015 Był, był potencjometr, tylko akurat nie widać go na zdjęciu, bo mi się nóżki wyłamały i przylutowałem do wyjść kabelki 😋 Jeśli chodzi o te dwa zadania, no to powiem szczerze, ledwo co pojawiły się trudności z odczytem, generalnie prawie nic mi nie przeszkadzało w normalnym odczycie wartości na wyświetlaczu 😃 A kod do 7.4 napisałem sam, gdyż w przydługim oczekiwaniu na ten odcinek, sam ogarnąłem co nieco w internecie, napisałem zwykły zegarek i już miałem właściwie 70% roboty z głowy pisząc stoper 😃 1 Cytuj Link do komentarza Share on other sites More sharing options...
hob_bit Sierpień 9, 2015 Udostępnij Sierpień 9, 2015 Miałem problem i go pokonałem sam, a to efekt mojej pracy 🙂 Arduino Uno Arduino Leonardo Wystarczyło zainstalować najnowszą wersję IDE i wszystko śmiga 😋 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 9, 2015 Udostępnij Sierpień 9, 2015 hob_bit, super, że się udało! Powodzenia w dalszej zabawie z LCD 🙂 Cytuj Link do komentarza Share on other sites More sharing options...
hob_bit Sierpień 10, 2015 Udostępnij Sierpień 10, 2015 Dziękuję Treker :)Właśnie zabawiając się LCD, znalazłem taki "myk" do przewijania zapisanego tekstu, czyli w void loop, dodając funkcję lcd.scrollDisplayLeft (lub scrollDisplayRight, zależnie od pożądanego kierunku przewijania)można uzyskać np. taki efekt -https://www.youtube.com/watch?v=TFRQkqmI-Cw PS. Wstawiłem ten filmik na G+, jako reklamę, w której zachęcam do odwiedzania tego miejsca w sieci Internet.Mam nadzieję, że nie poczytasz mi tego, za złe 😉 1 Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 10, 2015 Udostępnij Sierpień 10, 2015 hob_bit, każda reklama jest dobra - dzięki 🙂 Akurat te funkcje do przewijania miałem w planach opisać za jakiś czas w kolejnych częściach. Cytuj Link do komentarza Share on other sites More sharing options...
Mechano Sierpień 16, 2015 Udostępnij Sierpień 16, 2015 Jest jakaś wersja biblioteki dla arduino dla LCD 4x20? Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 16, 2015 Udostępnij Sierpień 16, 2015 Mechano, a z tą Ci nie działa, gdy zadeklarujesz odpowiedni rozmiar wyświetlacza? Cytuj Link do komentarza Share on other sites More sharing options...
Mechano Sierpień 16, 2015 Udostępnij Sierpień 16, 2015 Jeszcze nie prowadziłem prób. Ten projekt jest jeszcze w fazie projektowania ale zastanawiam się czy arduino mi to obsłuży. Cytuj Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Sierpień 16, 2015 Udostępnij Sierpień 16, 2015 Mechano, powinno 😉 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!