JurijR13 Listopad 15, 2015 Udostępnij Listopad 15, 2015 Mam pytanie. Kupiłem wyświetlacz (akurat niebieski nie czerwony). Wszystko jest ok, ale przy numerach pinów mam otwory a nie piny. Jak to podłączyć? Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Listopad 15, 2015 Udostępnij Listopad 15, 2015 JurijR13, musisz kupić i przylutować odpowiednie złącza. W zestawach do kursu przygotowanych przez Forbota znajdują się wyświetlacze z już wlutowanymi złączami - aby ułatwić start początkującym 🙂 Link do komentarza Share on other sites More sharing options...
JurijR13 Listopad 15, 2015 Udostępnij Listopad 15, 2015 Mam takie pytanie. Otóż wszystko działa ok, ale jest problem. Czasem, gdy włączam lub ładuję program na płytkę na ekranie pokazują się jakieś dziwne ciągi znaków. OmegaB*9G coś w ten deseń (podaję przykładowo, bo kombinacje są różne). Czy to problem z płytką, wyświetlaczem czy coś robię źle? Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Listopad 15, 2015 Udostępnij Listopad 15, 2015 JurijR13, pokaż konkretny program, jaki konkretnie LCD kupiłem i do czego go podłączasz. 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
hawaya Listopad 27, 2015 Udostępnij Listopad 27, 2015 Zadania 7.1 Zadanie 7.4 Trochę długi ten kod wyszedł ale chyba nie da się krócej, przynajmniej z komendami, które były dotychczas w kursie. #include <LiquidCrystal.h> LiquidCrystal lcd (13,11,9,7,5,3); byte sekundy = 0; byte minuty = 0; byte godziny = 0; bool statusStopera = 0; void setup() { lcd.begin(16,2); pinMode(0, INPUT_PULLUP); pinMode(1, INPUT_PULLUP); lcd.setCursor(0,0); lcd.print("Stoper"); lcd.setCursor(0,1); lcd.print("00:00:00"); } void loop() { if (digitalRead(0) == LOW && digitalRead(1) == LOW){ // wcisniecie obu guzikow zeruje stoper sekundy = 0; minuty = 0; godziny = 0; lcd.setCursor(0,1); lcd.print("00:00:00"); statusStopera = 0; } if (digitalRead(0) == LOW){ // wlaczenie stopera statusStopera = 1; } if (digitalRead(1) == LOW){ // zastopowanie stopera statusStopera = 0; } if (statusStopera == 1){ // zaczyna odliczanie po wcisnieciu pierwszego guzika sekundy = sekundy + 1; if (sekundy == 60){ // zmienia 60 sekund na kolejna minute minuty = minuty + 1; sekundy = 0; if (minuty == 60){ // zmienia 60 minut na kolejna godzine godziny = godziny + 1; minuty = 0; if (godziny < 10){ // ustawia kursor w odpowiednie miejsce dla godzin lcd.setCursor(1,1); } else { lcd.setCursor(0,1); } lcd.print(godziny); lcd.setCursor(3,1); lcd.print("00"); // zeruje minuty na wyswietlaczu po przekroczeniu 59 } if (minuty < 10){ // ustawia kursor w odpowiednie miejsce dla minut lcd.setCursor(4,1); } else { lcd.setCursor(3,1); } lcd.print(minuty); lcd.setCursor(6,1); lcd.print("00"); // zeruje sekundy na wyswietlaczu po przekroceniu 59 } if (sekundy < 10){ // ustawia kursor w odpowiednie miejsce dla sekund lcd.setCursor(7,1); } else { lcd.setCursor(6,1); } lcd.print(sekundy); delay(1000); } } Jedyne co mi tu przeszkadza to to, że żeby zastopować stoper trzeba guzik trzymać około sekundę. Czas zmierzy dobrze bo nie przeskoczy do następnej sekundy ale denerwuje mnie to. 2 Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Listopad 28, 2015 Udostępnij Listopad 28, 2015 hawaya, z problemem, o którym piszesz można sobie poradzić dość łatwo. Za jakiś czas pojawi się artykuł, który to wyjaśni 🙂 Link do komentarza Share on other sites More sharing options...
Mehip Listopad 28, 2015 Udostępnij Listopad 28, 2015 Witam, mam problem poniewaz pomimo dobrego podlaczenia i wgranego pierwszego programu na ekranie nadal sa czarne prostokaty na gornym pasku i dolne prostokaty sa zapalone tylko w gornej czesci :/ kontrast ustawilem poprawnie, polaczenia kabli takze sprawdzilem kilka razy i wszystkie sa poprawnie podlaczone :/ Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Listopad 28, 2015 Udostępnij Listopad 28, 2015 Mehip, milionom osób działa, więc jednak coś musi być u Ciebie nie tak. Na pewno wgrałeś dobry program? Nie pomyliłeś numeracji pinów wyświetlacza? Link do komentarza Share on other sites More sharing options...
Mehip Listopad 28, 2015 Udostępnij Listopad 28, 2015 [ Dodano: 28-11-2015, 13:47 ] Tak wyglada cały układ A na ekranie wyswietla sie cos takiego jak na 3 zdjeciu Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Listopad 28, 2015 Udostępnij Listopad 28, 2015 Mehip, czy są to elementy z zestawów Forbota? Gdzie jest potencjometr od kontrastu? Link do komentarza Share on other sites More sharing options...
tarkki Styczeń 4, 2016 Udostępnij Styczeń 4, 2016 Zadanie 7.4 #include <LiquidCrystal.h> #define przyciskStart 8 #define przyciskStop 9 LiquidCrystal lcd(2, 3, 4, 5, 6, 7); double czasStart; double czasStop; bool start = false; void setup() { // put your setup code here, to run once: lcd.begin(16, 2); pinMode(przyciskStart, INPUT_PULLUP); pinMode(przyciskStop, INPUT_PULLUP); millis(); } void loop() { poczatek(); stoperStart(); stoperStop(); } void poczatek() { if (start == false) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Wcisni przycisk"); lcd.setCursor(0, 1); lcd.print("start"); delay(5); } } void stoperStart() { while (digitalRead(przyciskStart) == LOW) { czasStart = millis() / 1000.0; lcd.clear(); start = true; } if (start == true) { lcd.setCursor(0, 0); lcd.print("Aktualny czas"); lcd.setCursor(0, 1); lcd.print((millis() / 1000.0) - czasStart); lcd.print("sek"); } } void stoperStop() { while (digitalRead(przyciskStop) == LOW) { czasStop = millis() / 1000.0; lcd.clear(); lcd.setCursor(0, 0); lcd.print("Koniec"); lcd.setCursor(0, 1); lcd.print(czasStop - czasStart); lcd.print("sek"); delay(4000); start = false; } } dlaczego ten programda radę zrobić na samych pętlach if a nie da się na pętlach while ? Link do komentarza Share on other sites More sharing options...
Treker (Damian Szymański) Styczeń 4, 2016 Udostępnij Styczeń 4, 2016 tarkki, mógłbyś sprecyzować swoje pytanie? Niestety nie rozumiem... Link do komentarza Share on other sites More sharing options...
Marooned Styczeń 4, 2016 Udostępnij Styczeń 4, 2016 "if" nie jest pętlą - to instrukcja warunkowa. Choć jakby zejść do poziomu Assemblera, to wszelkie pętle to if + goto. Link do komentarza Share on other sites More sharing options...
tarkki Styczeń 4, 2016 Udostępnij Styczeń 4, 2016 dlaczego po zastąpieniu if while program stoi w miejscu ( początek ). Czy while ma większy priorytet niż if ? a jeśli są same while to wykonywana jest po prostu pierwsza pętla while tylko ? Link do komentarza Share on other sites More sharing options...
Marooned Styczeń 4, 2016 Udostępnij Styczeń 4, 2016 tarkki, ale w którym miejscu to zastąpiłeś? I w jakim celu? Wiesz, co robią instrukcje if i while? 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ę »