chrisdaloa icon

Stringare codice da tastiera MPR121

chrisdaloa | PRO | 06/05/18 12:57:51 PM UTC | 0 ⭐ | 529 👁️ | Never ⏰ | []
C++ |

2.95 KB

|

None

|

0 👍

/

0 👎

void asterisco(){
  tone(buzzer, 500, 100);
  codice_nascosto = codice_nascosto + "*";
  testo1 = "Codice";
  testo2 = const_cast<char*>(codice_nascosto.c_str());
  picture_loop();
}
 
void getNumber()
{
  int touchNumber = 0;
  uint16_t touchstatus;
  char digits;
  
  touchstatus = getTouchStatus();
  
  for (int j=0; j<12; j++)  // Check how many electrodes were pressed
  {
    if ((touchstatus & (1<<j)))
      touchNumber++;
  }
  
  if (touchNumber == 1)
  {
    if (touchstatus & (1<<SEVEN))
    {
      digits = '7';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<FOUR))
    {
      digits = '4';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<ONE))
    {
      digits = '1';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<EIGHT))
    {
      digits = '8';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<FIVE))
    {
      digits = '5';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<TWO))
    {
      digits = '2';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<NINE))
    {
      digits = '9';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<SIX))
    {
      digits = '6';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<THREE))
    {
      digits = '3';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<ZERO))
    {
      digits = '0';
      codice_inserito = String(codice_inserito) + String(digits);
      asterisco();
    }
    else if (touchstatus & (1<<HASHTAG))
    {
      digits = '#';
      Serial.println("Codice inserito: " + codice_inserito);
   
      ok_codice = true;
      
       
    }
    else if (touchstatus & (1<<ASTERISK))
    {
      digits = '*';
      codice_annullato = true;
   
    }
    Serial.println(digits);
    //codice_inserito = String(codice_inserito) + String(digits);
  }
  //do nothing if more than one button is pressed, or if all are released
  else if (touchNumber == 0)
    ;
  else
    ;
}
 
 
/* getTouchStatus() will return a 16-bit value that relates the
current touched status of each button. The LSB represents electrodes
0-7 (bit 0 = electrode 0), and the lowest 4 bits of the MSB
represent electrods 8-11. A 1 means a button is being touched.*/
int getTouchStatus()
{
  int touch;
  
  touch = mpr121Read(0x01) << 8;
  touch |= mpr121Read(0x00);
  
  return touch;
}

Comments