Skocz do zawartości

Plik na karcie SD zawierający program, który wykonuje Arduino.


Szmyterling

Pomocna odpowiedź

Zamówiłem właśnie na Alledrogo dwa wyświetlacze OLED - 0,91" 128x32 I2C oraz 0,96" 128x64 I2C, plus konwertery I2C-LCD. Ma to tę zaletę (Alledrogo), że zawsze mogę coś zwrócić.

Zauważyłem, że te mniejsze 128x32 różnią się pinami - są takie z pinem SCL (dla I2C) i SCK (w aukcji opisane jako dla I2C, ale google pokazuje, że dla SPI). Nie było wcześniej w temacie nic na temat SPI, więc wziąłem ten z pinem SCL (ten większy też ma taki pin, oraz konwerter go posiada - powinno wszystko pasować).

Czytając cały wątek od początku, Koledzy forumowicze wtrącają coraz to nowsze pomysły. Większość bardzo mi się podoba i widzę je oczami wyobraźni. Chciałbym jednak wspomnieć, że zaledwie od kilku dni posiadam UNO, a środowisko Arduino jest mi całkowicie obce. No prawie - staram się rozszyfrowywać coraz to nowsze linijki kodu. Tak więc proszę mieć na uwadze ten fakt, i to do czego jestem (będę) zdolny z Waszymi wskazówkami.

Wpadłem również na symulator arduino - Fritzing. Niby wersja darmowa, po zainstalowaniu i uruchomieniu zawiesza się. Przeinstalowanie nic nie pomaga. Czy ktoś może polecić inny symulator? A może większość z Kolegów działa "praktycznie" - czyli montuje od razu?

Link do komentarza
Share on other sites

Cytat

@BlackJack trochę zachodu jak to określiłeś można ogarnąć. Niestety jak wspomniałem w pierwszym poście z wiedzą u mnie kiepsko. Kończąc szkołę podstawową dostałem pierwszy komputer (Commodore C64 - słyszę ten śmiech na sali).

To i tak więcej ode mnie miałeś..Ja pierwszego komputera Pentium 166 "dorobiłem się", po wypadku w zawodówce, jak dostałem odszkodowanie za obcięty palec. C64 dorwałem 10 lat później na śmietniku, i mam do dziś. To co potrafię nauczyłem się sam, z pomocą życzliwych ludzi któży pomogli w wyjaśnieniu paru żeczy. A dziś programuje panela HMI i sterowniki PLC jak trzeba. Kursy sam zrobiłem za własne pieniądze.

A dziś w sumie jestem jednym z dwóch co potrafią programować na całym zakładzie.

Młodzi, a im się nie chce, nie ma gotowców w internecie, trzeba by się wysilić, do tego jeszcze matematykę jakąś znać. E.. to nie dla nich. Za moich czasów mogliśmy tylko marzyć, lub sobie poczytać w BAJTKU albo Młodym techniku tudzież AMIGE o tym co ma dzisiejsza młodzież ma pod nosem. Ale dla większości liczy się tylko być online na fejsie czy innych faekbookach.

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

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

@99teki dziękuję. Właśnie takiego zdjęcia szukałem bo już kiedyś mi się przewinęło przez google. Może to było to, tylko w "normalnych" kolorach.

Natomiast ten większy 128x64 jako umieszczony na budynku dworca - wyświetlający pociągi dla wszystkich peronów.

Link do komentarza
Share on other sites

(edytowany)

Po długiej analizie Waszych wskazówek i ogromnemu wsparciu @farmaceuta wyszło mi (Nam) coś takiego - działa 🙂

#include <LiquidCrystal.h>


const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  pinMode(8,INPUT_PULLUP);
  pinMode(9,INPUT_PULLUP);
  pinMode(10,INPUT_PULLUP);
  
  lcd.begin(16, 2);
  
  
}

void loop() {
  if (digitalRead(8) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("16:30 PR Katowice");
  lcd.setCursor(0,1);
  lcd.print("16:45 IC Warszawa Wsch.");
  } else if (digitalRead(9) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("12:00 TLK Gliwice");
  lcd.setCursor(0,1);
  lcd.print("12:05 IC Praga");
}  else if (digitalRead(10) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("23:15 IC Berlin");
  lcd.setCursor(0,1);
  lcd.print("23:30 IC Wieden");
    } 

}

problemem jest tylko fakt, że wyświetlając krótszy komunikat po dłuższym (zawierającym więcej znaków w linijce), pozostaje część starych znaków:

najpierw "16:45 IC Warszawa Wsch." potem "12:05 IC Praga" i wychodzi "12:05 IC Pragaawa Wsch."

Dodałem linijkę pustego wiersza i otrzymałem następujący kod:

#include <LiquidCrystal.h>


const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  pinMode(8,INPUT_PULLUP);
  pinMode(9,INPUT_PULLUP);
  pinMode(10,INPUT_PULLUP);
  
  lcd.begin(16, 2);
  
  
}

void loop() {
  if (digitalRead(8) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("                ");
  lcd.print("16:30 PR Katowice");
  lcd.setCursor(0,1);
  lcd.print("16:45 IC Warszawa Wsch.");
  } else if (digitalRead(9) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("                ");
  lcd.print("12:00 TLK Gliwice");
  lcd.setCursor(0,1);
  lcd.print("12:05 IC Praga");
}  else if (digitalRead(10) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("                ");
  lcd.print("23:15 IC Berlin");
  lcd.setCursor(0,1);
  lcd.print("23:30 IC Wieden");
    } 

}

w tej chwili górny wiersz jest ZAWSZE pusty a dolny nadal z błędem (zostają stare znaki na końcu).

Linijka pustego wiersza przed każdym komunikatem powoduje, że ekran jedynie ma podświetlenie 😞

#include <LiquidCrystal.h>


const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  pinMode(8,INPUT_PULLUP);
  pinMode(9,INPUT_PULLUP);
  pinMode(10,INPUT_PULLUP);
  
  lcd.begin(16, 2);
  
  
}

void loop() {
  if (digitalRead(8) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("                ");
  lcd.print("16:30 PR Katowice");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.print("16:45 IC Warszawa Wsch.");
  } else if (digitalRead(9) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("                ");
  lcd.print("12:00 TLK Gliwice");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.print("12:05 IC Praga");
}  else if (digitalRead(10) == 0) { 
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("                ");
  lcd.print("23:15 IC Berlin");
  lcd.setCursor(0,1);
  lcd.print("                ");
  lcd.print("23:30 IC Wieden");
    } 

}

Proszę o wskazówki dot. rozwiązania problemu

Edytowano przez prezesedi
Link do komentarza
Share on other sites

(edytowany)

Mozna dac lcd.clear() no ale wlasnie chcialem tego uniknac zebys sobie mogl w przyszlosci usuwac to co Cie interesuje a nie zawsze caly lcd...u mnie taka roznica ze korzystam z i2c no i takie wyswietlanie spacji dziala elegancko...moze tu jest inaczej cos🤔

Edytowano przez farmaceuta
Link do komentarza
Share on other sites

(edytowany)

Wyświetl w tym miejscu same spacje żeby skasować poprzednią zawartość, a potem dopiero właściwy napis.

Ew. użyj sprintf @farmaceuta chętnie wyjaśni.

@farmaceuta nie mieszaj - to 1H czy korzystasz z i2c, spi czy bawisz się w bit banging

Edytowano przez ethanak
  • Lubię! 1
Link do komentarza
Share on other sites

Przed chwilą, ethanak napisał:

Wyświetl w tym miejscu same spacje żeby skasować poprzednią zawartość, a potem dopiero właściwy napis.

no właśnie wyświetlałem same spacje (wkleiłem post wyżej kody) - i są błędy o których napisałem

Link do komentarza
Share on other sites

Przed chwilą, ethanak napisał:

Wyświetl w tym miejscu same spacje żeby skasować poprzednią zawartość, a potem dopiero właściwy napis. 

No i tak wlasnie jest...wyswietla spacje w calym wierszu i pozniej napis, ktory sie nie wyswietla..🤔 

3 minuty temu, ethanak napisał:

Ew. użyj sprintf @farmaceuta chętnie wyjaśni.

Yhyy...bardzo chetnie wyjasni, ale to dopiero jak sie tego sam nauczy..😢(lenistwo nie pozwolilo mi tego ogarnac)

Link do komentarza
Share on other sites

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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.