Skocz do zawartości

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


Szmyterling

Pomocna odpowiedź

20 minut temu, prezesedi napisał:

to część pinów nadaje stan wysoki podczas rozruchu - więc pewnie o to chodzi (albo ZNÓW się mylę).

Nie. Znaj dobre serce ethanaka, wiem że czytanie dokumentacji jest strasznie męczące więc zrobię wyjątkowo za proxy.

Piny o których pisałeś są podłączone do wewnętrznej pamięci flash. Można ich uzyć np. do podłączenia zewnętrznej pamięci (Flash, RAM) ale do niczego innego!

Owszem, niektóre piny wymagają konkretnych stanów podczas rozruchu (0,2 i 15). Dodatkowo pin 16 nie ma wszystkich funkcji.

Możesz więc przyjąć, że masz do dyspozycji 7 pinów (4,5,12,13,14,15,16) i tymi możesz bezpiecznie operować. Dwa z nich (4 i 5) to I2C. Zostaje 5...

24 minuty temu, prezesedi napisał:

Kupić coś pokroju Leonardo, co ma "dużo" pinów do wykorzystania?

Tyle samo co UNO i praktycznie tyle samo RAM-u.

Tu nie chodzi o ilość pinów, a o wielkość wewnętrznego RAM-u.

A nie możesz kupić jakiegoś ESP32? Na przykład (pierwsza z brzegu aukcja) https://allegro.pl/oferta/esp-wroom-32-esp-32-wifi-bluetooth-microusb-esp32-9940443730

Wtedy nie trzeba ekspandera, nie trzeba nawet multipleksera do I2C (ESP32 ma dwie szyny I2C). A cena w okolicach 30 PLN jest chyba nieco bardziej atrakcyjna niż Leonardo (które i tak do niczego się nie przyda).

A NodeMCU możesz zostawić do dalszych eksperymentów (np. ESP32 steruje bezprzewodowo jakimś ustrojstwem podłączonym do NodeMCU).

 

Link do komentarza
Share on other sites

Ja jestem Wam wszystkim wdzięczny za poświęcony czas. Oj @ethanak masz bardzo dobre serce, że jeszcze w ogóle tolerujesz moje wpisy i mi odpowiadasz, a o pomocy nie wspominając, po tym co miało miejsce wcześniej.

Już szukam i zamawiam "coś" na ESP32. Nie ma problemu. Z Leonardo tak tylko wystrzeliłem (niepotrzebnie).

Tak więc pierwsza płytka, którą był WEMOS "coś tam" na ESP8266 oraz wyświetlacz LCD już znalazły nowego właściciela. Obecnie mam Uno oraz NodeMCU - z nabywcą na UNO nie będę mieć problemu. Zostanę przy NodeMCU (i ekspanderze) do testów i "czymś" na ESP32 do powyższego "ustrojstwa".

Patrzę na schematy ESP32 i widzę szynę I2C na pinach 21 i 22. Nie widzę jednak drugiej szyny ... (będę trzepał te schematy aż znajdę)

Link do komentarza
Share on other sites

Jak znajdziesz pełny opis pinów to zobaczysz drugą szynę. Poza tym i2c może być na (prawie) dowolnych pinach, deklarujesz sobie w programie. Tak samo SPI czy I2S.

A UNO to ja bym sobie zostawił - właśnie też do eksperymentów.

Aha, i nie zamawiaj wersji lite bo będą problemy z zasilaniem!

Edytowano przez ethanak
Link do komentarza
Share on other sites

Zrobiłem sobie test kodu rozszerzając go o kolejne komunikaty pod następnymi przyciskami.

Uno radzi sobie z kodem rozwiniętym do 5 przycisków (komunikatów). Po dodaniu 6go, przestaje reagować - rozumiem, że zabrakło pamięci. Tak więc wykorzystanie 9-10 przycisków nie wchodzi w grę w tym przypadku. Czy ESP32 da radę?

Rozwinięcie kodu o :

char message1[]="1 00:05 EC 'SOBIESKI' Wien";
char message2[]="2 01:15 EC 'POLONIA' Berlin";
char message3[]="3 02:00 EC 'CHOPIN' Graz";
char message4[]="4 03:30 EC 'SILESIA' Praha";
char message5[]="1 04:05 EIP 'GIBKI CUG' Warszawa Wsch.";
char message6[]="2 05:00 TLK 'JASNA GORA' Czestochowa";
char message7[]="3 05:55 EIC 'KORMORAN' Olsztyn Gl.";
char message8[]="4 06:20 IC 'TATRY' Zakopane";
char message9[]="1 07:15 IC 'GORAL' Bielsko Biala";
char message10[]="2 07:30 EIC 'LATARNIK' Kolobrzeg";
char message11[]="3 08:00 KS 'SZTYGAR' Tarnowskie Gory";
char message12[]="4 08:05 IC 'CZANTORIA' Wisla Glebce";
char message13[]="1 11:55 TLK 'GRANICA' Chalupki";
char message14[]="2 12:00 IC 'SUDETY' Klodzko";
char message15[]="3 12:10 IC 'LAJKONIK' Krakow";
char message16[]="4 12:25 KS 'BESKIDY' Zywiec";
char message17[]="1 14:15 KS 'GORNIK' Gliwice";
char message18[]="2 14:40 KS 'FIAT' Tychy Lodowisko";
char message19[]="3 15:00 PR 'WARTA' Wielun Dabrowa";
char message20[]="4 15:25 TLK 'BOLEK I LOLEK' Wodzislaw Sl.";
char message21[]="1 17:30 IC 'ODRA' Opole";
char message22[]="2 17:40 EIP 'PRZEMYSLANIN' Przemysl Gl.";
char message23[]="3 17:55 KS 'SPODEK' Myslowice";
char message24[]="4 18:15 EIC 'KARKONOSZE' Jelenia Gora";
char message25[]="1 19:00 EIP 'NEPTUN' Hel";
char message26[]="2 19:20 KS 'PIRAT' Lubliniec";
char message27[]="3 19:45 PR 'SPRINTER' Zywiec";
char message28[]="4 20:00 KS 'GWAREK' Raciborz";
char message29[]="1 21:00 EIC 'BALTYK' Gdynia Gl.";
char message30[]="2 21:30 EIP 'PIAST' Poznan Gl.";
char message31[]="3 21:45 PR 'GIBKI CUG' Tarnowskie Gory";
char message32[]="4 22:00 IC 'CHEMIK' Plock";
char message33[]="1 22:05 EIC 'WYDMY' Ustka";
char message34[]="2 22:40 TLK 'SZYCHTA' Sosnowiec Pld.";
char message35[]="3 23:20 EIC 'WOLIN' Swinoujscie";
char message36[]="4 23:50 EC 'LWOW EXPRESS' Kiev";

oraz poniższe - 4ro krotnie (case6-case9)

case 5:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message17);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message18);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message19);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message20);
   display.display();
   x = x-4;
  break;

 

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

cały wyglądałby tak: (tylko on ma już 6 pozycji i nie chce się odpalić na symulatorze)

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Keypad.h>

   Adafruit_SSD1306 display(4);

      // ustawienie klawiatury
const byte ROWS = 4; //cztery rzędy
const byte COLS = 3; //trzy kolumny
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}};

char message1[]="1 00:05 EC 'SOBIESKI' Wien";
char message2[]="2 01:15 EC 'POLONIA' Berlin";
char message3[]="3 02:00 EC 'CHOPIN' Graz";
char message4[]="4 03:30 EC 'SILESIA' Praha";
char message5[]="1 04:05 EIP 'GIBKI CUG' Warszawa Wsch.";
char message6[]="2 05:00 TLK 'JASNA GORA' Czestochowa";
char message7[]="3 05:55 EIC 'KORMORAN' Olsztyn Gl.";
char message8[]="4 06:20 IC 'TATRY' Zakopane";
char message9[]="1 07:15 IC 'GORAL' Bielsko Biala";
char message10[]="2 07:30 EIC 'LATARNIK' Kolobrzeg";
char message11[]="3 08:00 KS 'SZTYGAR' Tarnowskie Gory";
char message12[]="4 08:05 IC 'CZANTORIA' Wisla Glebce";
char message13[]="1 11:55 TLK 'GRANICA' Chalupki";
char message14[]="2 12:00 IC 'SUDETY' Klodzko";
char message15[]="3 12:10 IC 'LAJKONIK' Krakow";
char message16[]="4 12:25 KS 'BESKIDY' Zywiec";
char message17[]="1 14:15 KS 'GORNIK' Gliwice";
char message18[]="2 14:40 KS 'FIAT' Tychy Lodowisko";
char message19[]="3 15:00 PR 'WARTA' Wielun Dabrowa";
char message20[]="4 15:25 TLK 'BOLEK I LOLEK' Wodzislaw Sl.";
char message21[]="1 17:30 IC 'ODRA' Opole";
char message22[]="2 17:40 EIP 'PRZEMYSLANIN' Przemysl Gl.";
char message23[]="3 17:55 KS 'SPODEK' Myslowice";
char message24[]="4 18:15 EIC 'KARKONOSZE' Jelenia Gora";
char message25[]="1 19:00 EIP 'NEPTUN' Hel";
char message26[]="2 19:20 KS 'PIRAT' Lubliniec";
char message27[]="3 19:45 PR 'SPRINTER' Zywiec";
char message28[]="4 20:00 KS 'GWAREK' Raciborz";
char message29[]="1 21:00 EIC 'BALTYK' Gdynia Gl.";
char message30[]="2 21:30 EIP 'PIAST' Poznan Gl.";
char message31[]="3 21:45 PR 'GIBKI CUG' Tarnowskie Gory";
char message32[]="4 22:00 IC 'CHEMIK' Plock";
char message33[]="1 22:05 EIC 'WYDMY' Ustka";
char message34[]="2 22:40 TLK 'SZYCHTA' Sosnowiec Pld.";
char message35[]="3 23:20 EIC 'WOLIN' Swinoujscie";
char message36[]="4 23:50 EC 'LWOW EXPRESS' Kiev";
   int x, minX;

      // podłączenie klawiatury do Arduino   
byte rowPins[ROWS] = {8, 7, 6, 5};  //Piny, do których podłączamy wyprowadzenia od rzędów
byte colPins[COLS] = {4, 3, 2}; //Piny, do których podłączamy wyprowadzenia od kolumn

Keypad keypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS );

  void setup(){
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setTextWrap(false);
  x = display.width();
  minX = -8 * strlen(message1);
  }

  void loop(){
 static byte y = 0;
 static long last = 0;
 static byte kopia = 0;

  char key = keypad.getKey();
      Serial.println(key);
 
  if (key == '1') { 
    delay(500);       
   x= display.width();
   y = 1;
   kopia = 1;
} else if (key == '2') { 
   delay(500);       
   x= display.width();
   y = 2;
   kopia = 2;
} else if (key == '3') { 
   delay(500);
   x= display.width();
   y = 3;
   kopia = 3;
} else if (key == '4') { 
   delay(500);
   x= display.width();
   y = 4;
   kopia = 4;
} else if (key == '5') { 
   delay(500);
   x= display.width();
   y = 5;
   kopia = 5;
} else if (key == '6') { 
   delay(500);
   x= display.width();
   y = 6;
   kopia = 6;
} 


switch (y) {
        
   case 1:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message1);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message2);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message3);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message4);
   display.display();
   x = x-4;
  break;

  case 2:
  display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message5);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message6);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message7);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message8);
   display.display();
   x = x-4;
  break;

  case 3:
  display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message9);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message10);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message11);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message12);
   display.display();
   x = x-4;
  break;

  case 4:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message13);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message14);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message15);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message16);
   display.display();
   x = x-4;
  break;

  case 5:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message17);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message18);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message19);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message20);
   display.display();
   x = x-4;
  break;

  case 6:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message21);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message22);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message23);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message24);
   display.display();
   x = x-4;
  break;
  
   case 7: 
   display.clearDisplay();
   display.setCursor(18,0);
   display.setTextSize(1);
   display.print("KATOWICE BRYNOW");
   display.setTextSize(2);
   display.setCursor(35,15);
   display.print("15:20");
   display.display();
   y = 8;
   last = millis();
   break;

   case 8:
   if (millis() - last > 3000UL) { // 3000 = 3 sekundy
    y = kopia;
    x = display.width();
    }
  break;
  }
  
    
  if(x < minX) {
    x = display.width();
    y = 7;
   }
}

a ten (5 pozcyji) jeszcze działa:

#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <Keypad.h>

   Adafruit_SSD1306 display(4);

      // ustawienie klawiatury
const byte ROWS = 4; //cztery rzędy
const byte COLS = 3; //trzy kolumny
char hexaKeys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'7','8','9'},
  {'*','0','#'}};

char message1[]="1 00:05 EC 'SOBIESKI' Wien";
char message2[]="2 01:15 EC 'POLONIA' Berlin";
char message3[]="3 02:00 EC 'CHOPIN' Graz";
char message4[]="4 03:30 EC 'SILESIA' Praha";
char message5[]="1 04:05 EIP 'GIBKI CUG' Warszawa Wsch.";
char message6[]="2 05:00 TLK 'JASNA GORA' Czestochowa";
char message7[]="3 05:55 EIC 'KORMORAN' Olsztyn Gl.";
char message8[]="4 06:20 IC 'TATRY' Zakopane";
char message9[]="1 07:15 IC 'GORAL' Bielsko Biala";
char message10[]="2 07:30 EIC 'LATARNIK' Kolobrzeg";
char message11[]="3 08:00 KS 'SZTYGAR' Tarnowskie Gory";
char message12[]="4 08:05 IC 'CZANTORIA' Wisla Glebce";
char message13[]="1 11:55 TLK 'GRANICA' Chalupki";
char message14[]="2 12:00 IC 'SUDETY' Klodzko";
char message15[]="3 12:10 IC 'LAJKONIK' Krakow";
char message16[]="4 12:25 KS 'BESKIDY' Zywiec";
char message17[]="1 14:15 KS 'GORNIK' Gliwice";
char message18[]="2 14:40 KS 'FIAT' Tychy Lodowisko";
char message19[]="3 15:00 PR 'WARTA' Wielun Dabrowa";
char message20[]="4 15:25 TLK 'BOLEK I LOLEK' Wodzislaw Sl.";
char message21[]="1 17:30 IC 'ODRA' Opole";
char message22[]="2 17:40 EIP 'PRZEMYSLANIN' Przemysl Gl.";
char message23[]="3 17:55 KS 'SPODEK' Myslowice";
char message24[]="4 18:15 EIC 'KARKONOSZE' Jelenia Gora";
char message25[]="1 19:00 EIP 'NEPTUN' Hel";
char message26[]="2 19:20 KS 'PIRAT' Lubliniec";
char message27[]="3 19:45 PR 'SPRINTER' Zywiec";
char message28[]="4 20:00 KS 'GWAREK' Raciborz";
char message29[]="1 21:00 EIC 'BALTYK' Gdynia Gl.";
char message30[]="2 21:30 EIP 'PIAST' Poznan Gl.";
char message31[]="3 21:45 PR 'GIBKI CUG' Tarnowskie Gory";
char message32[]="4 22:00 IC 'CHEMIK' Plock";
char message33[]="1 22:05 EIC 'WYDMY' Ustka";
char message34[]="2 22:40 TLK 'SZYCHTA' Sosnowiec Pld.";
char message35[]="3 23:20 EIC 'WOLIN' Swinoujscie";
char message36[]="4 23:50 EC 'LWOW EXPRESS' Kiev";
   int x, minX;

      // podłączenie klawiatury do Arduino   
byte rowPins[ROWS] = {8, 7, 6, 5};  //Piny, do których podłączamy wyprowadzenia od rzędów
byte colPins[COLS] = {4, 3, 2}; //Piny, do których podłączamy wyprowadzenia od kolumn

Keypad keypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS );

  void setup(){
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setTextWrap(false);
  x = display.width();
  minX = -8 * strlen(message1);
  }

  void loop(){
 static byte y = 0;
 static long last = 0;
 static byte kopia = 0;

  char key = keypad.getKey();
      Serial.println(key);
 
  if (key == '1') { 
    delay(500);       
   x= display.width();
   y = 1;
   kopia = 1;
} else if (key == '2') { 
   delay(500);       
   x= display.width();
   y = 2;
   kopia = 2;
} else if (key == '3') { 
   delay(500);
   x= display.width();
   y = 3;
   kopia = 3;
} else if (key == '4') { 
   delay(500);
   x= display.width();
   y = 4;
   kopia = 4;
} else if (key == '5') { 
   delay(500);
   x= display.width();
   y = 5;
   kopia = 5;
}


switch (y) {
        
   case 1:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message1);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message2);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message3);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message4);
   display.display();
   x = x-4;
  break;

  case 2:
  display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message5);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message6);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message7);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message8);
   display.display();
   x = x-4;
  break;

  case 3:
  display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message9);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message10);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message11);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message12);
   display.display();
   x = x-4;
  break;

  case 4:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message13);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message14);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message15);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message16);
   display.display();
   x = x-4;
  break;

  case 5:
   display.clearDisplay();
   display.setCursor(x,0);
   display.setTextSize(1);
   display.print(message17);
   display.setTextSize(1);
   display.setCursor(x,8);
   display.print(message18);
   display.setCursor(x,16);
   display.setTextSize(1);
   display.print(message19);
   display.setCursor(x,24);
   display.setTextSize(1);
   display.print(message20);
   display.display();
   x = x-4;
  break;
  
   case 6: 
   display.clearDisplay();
   display.setCursor(18,0);
   display.setTextSize(1);
   display.print("KATOWICE BRYNOW");
   display.setTextSize(2);
   display.setCursor(35,15);
   display.print("15:20");
   display.display();
   y = 7;
   last = millis();
   break;

   case 7:
   if (millis() - last > 3000UL) { // 3000 = 3 sekundy
    y = kopia;
    x = display.width();
    }
  break;
  }
  
    
  if(x < minX) {
    x = display.width();
    y = 6;
   }
}

 

Link do komentarza
Share on other sites

24 minuty temu, farmaceuta napisał:

jak Ci wgralo to ramu starczylo...

Nieprawda. Starczyło pamięci statycznej, ale do wykonania programu też coś jest potrzebne. Choćby zajmujący ćwierć pamięci dynamicznie alokowany bufor wyświetlacza... o takich drobiazgach jak stos czy zmienne lokalne z grzeczności nie wspomnę.

32 minuty temu, prezesedi napisał:

Czy ESP32 da radę?

ESP32 daje ci do dyspozycji ponad 300 kB RAM (w porównaniu do 2 kB w Arduino) i 4 MB Flash (w porównaniu do 32 kB w Arduino) tak że długo się nie będziesz musiał martwić (chociaż oszczędzanie RAM-u jest tu dużo prostsze i sprowadza się do jednego słowa "const").

Poza tym prośba... poczekaj z kodem. Skrócimy go co najmniej 9-krotnie... tylko NIE WSZYSTKO NA RAZ!!!


A co do symulatora... jakoś nigdy mi się nie udało na nim odpalić czegoś sensownego.

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

No ja niestety w pracy tylko na symulatorze. i WOKWI najsensowniejszy choć brakuje mi kilku gadżetów a kilka uznaję za zbędne.

Fizycznie sprawdzę w domu po 22 jak to wygląda. @ethanak ESP32 już zamówiony. Będzie we wtorek, bo niestety akurat weekend się trafił 🙂 

Link do komentarza
Share on other sites

7 minut temu, prezesedi napisał:

Będzie we wtorek, bo niestety akurat weekend się trafił

Znam ten ból z weekendem 🙂

Ale to może i lepiej, bo postaram się przemyśleć jakąś bardziej sensowną konstrukcję programu z odnośnymi komentarzami.

Na razie możesz np. popróbować podmienić plik glcdfont.c w bibliotece Adafruit_GFX i zobaczyć co wyjdzie z czegoś takiego:

char message9[]="1 07:15 IC 'G\013RAL' Bielsko Bia\025a";

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

jasne, dam znać za jakąś godzinę.

Pytanie z innej beczki - nic nie kombinuję, tylko się zastanawiam. Czy można ustawić kod tak by klawiaturę 4x4 czyli 16 przycisków - 16 komend wykorzystać inaczej? Chodzi mi np. o łączeni dwóch klawiszy dla wywołania jednej komendy (nie wiem czy piszę zrozumiale).

np. naciskając A+0 lub A+2 lub C+6. To dało by po 10 kombinacji dla A, B, C, D - czyli 40. Nie liczę * i #. Czy ktoś już próbował coś takiego?

Link do komentarza
Share on other sites

teoretycznie się da (tak mam zrobionevdodatkowe funkcje w czytaku) ale funkcje obsługi musiałbyś sam napisać bo ta biblioteka niespecjalnie się do tego nadaje. Ogólnie lepsze rozwiazanie to zastosowanie np. dwucyfrowego kodu (wystarczy 12 klawiszy), rozwiązania zaproponowanego przez @farmaceuta (też 12 klawiszy) lub koniecxności wciśniecia prefiksu A, B, C lub D przed cyfrą (mozna się obejść bez kontroli wzrokowej a zdsje się że ożeniłeś wyświetlacz)...

Link do komentarza
Share on other sites

1 godzinę temu, farmaceuta napisał:

Wywalilo mi 65% wiec wporzadku..no generalnie powinno dzialac, bo dobrze ponumerowales to wszystko ...

Sprawdzone. Dla pięciu działa. Dla sześciu wgrywa się lecz nie działa.

 

6 minut temu, ethanak napisał:

musiałbyś sam napisać bo ta biblioteka

to było czysto teoretyczne pytanie - z ciekawości. 16 jest wystarczające, gdyż 6ty nie działa 😞

Link do komentarza
Share on other sites

1 godzinę temu, ethanak napisał:

char message9[]="1 07:15 IC 'G\013RAL' Bielsko Bia\025a";

Znalazłem co gdzie należy zmienić - zmieniłem. w tym wykonaniu pokazuje zamiast ó -> @ a zamiast ł -> $

Edytowano przez prezesedi
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!

Gość
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.