Skocz do zawartości

Wypisz po 8 znaków z klawiatury


ziomeq21

Pomocna odpowiedź

Witam, jestem tutaj nowy i borykam się z dość dużym dla mnie problemem. Do jednego mikrokontrolera jest podłączona klawiatura 3x4 (od 1-9 + *0#), a drugi mikrokontroler ma za zadanie wyświetlać wpisywane przez graczy ciągi znaków. Jak na ten moment wysyła każdą liczbę osobno, a chciałbym, żeby wysyłany był ciąg 8 znaków.  To zapewne będzie dodatkowa pętla, ale się już pogubiłem. 😕

Wstawiam całą dolną część kodu do wglądu, gdzie pierwsza część to właśnie ta dla mnie ważna, gdyż wyświetla każdy znak osobno (a chciałbym co 8 znaków).

Druga część sprawdza czy ciąg 8 znaków zgadza się z hasłem (to akurat działa).

Trzecia część to reset ciągu znaków po kliknięciu *.

 

void sendData() {

 char customKey = customKeypad.getKey();
 if (customKey == '*')reset();
 else if (customKey)
 {
  dane[x]= customKey;
  x++;
  Serial.println(customKey);
  uint8_t bs[sizeof(customKey)];
  memcpy(bs, &customKey, sizeof(customKey));
  esp_now_send(mac, bs, sizeof(customKey));
 }
  if ( dane[0]== password[0] &&
      dane[1]== password[1] &&
      dane[2] == password[2] &&
      dane[3] == password[3] &&
      dane[4] == password[4] &&
      dane[5] == password[5] &&
      dane[6] == password[6] &&
      dane[7] == password[7] )
      {
        uint8_t bs[sizeof(work)];
      memcpy(bs, &work, sizeof(work));
      esp_now_send(mac, bs, sizeof(work));
      Serial.println(work.text);;
        
        delay(5000);
        reset();
      }}
void reset() {
  for(int i=0; i<8; i++)
  {
    dane[i]=0;
    x=0;
    uint8_t bs[sizeof(res)];
      memcpy(bs, &res, sizeof(res));
      esp_now_send(mac, bs, sizeof(res));
      
  }Serial.println(res.text);
}

 

Edytowano przez ziomeq21
Link do komentarza
Share on other sites

Do usunięcia, w końcu się udało, dla potomnych:

 

 char customKey = customKeypad.getKey();
 if (customKey == '*')reset();
 else if (customKey)
 {
  dane[x]= customKey;
  x++;
  if (x==8){
    Serial.println(dane);
    uint8_t bs[sizeof(dane)];
  memcpy(bs, &dane, sizeof(dane));
  esp_now_send(mac, bs, sizeof(dane));
  x=0;
  }
  
  
 }

 

  • Lubię! 1
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.