Advertisement
chrisdaloa

Stringare codice da tastiera MPR121

Jun 5th, 2018
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.95 KB | None | 0 0
  1. void asterisco(){
  2.   tone(buzzer, 500, 100);
  3.   codice_nascosto = codice_nascosto + "*";
  4.   testo1 = "Codice";
  5.   testo2 = const_cast<char*>(codice_nascosto.c_str());
  6.   picture_loop();
  7. }
  8.  
  9. void getNumber()
  10. {
  11.   int touchNumber = 0;
  12.   uint16_t touchstatus;
  13.   char digits;
  14.  
  15.   touchstatus = getTouchStatus();
  16.  
  17.   for (int j=0; j<12; j++)  // Check how many electrodes were pressed
  18.   {
  19.     if ((touchstatus & (1<<j)))
  20.       touchNumber++;
  21.   }
  22.  
  23.   if (touchNumber == 1)
  24.   {
  25.     if (touchstatus & (1<<SEVEN))
  26.     {
  27.       digits = '7';
  28.       codice_inserito = String(codice_inserito) + String(digits);
  29.       asterisco();
  30.     }
  31.     else if (touchstatus & (1<<FOUR))
  32.     {
  33.       digits = '4';
  34.       codice_inserito = String(codice_inserito) + String(digits);
  35.       asterisco();
  36.     }
  37.     else if (touchstatus & (1<<ONE))
  38.     {
  39.       digits = '1';
  40.       codice_inserito = String(codice_inserito) + String(digits);
  41.       asterisco();
  42.     }
  43.     else if (touchstatus & (1<<EIGHT))
  44.     {
  45.       digits = '8';
  46.       codice_inserito = String(codice_inserito) + String(digits);
  47.       asterisco();
  48.     }
  49.     else if (touchstatus & (1<<FIVE))
  50.     {
  51.       digits = '5';
  52.       codice_inserito = String(codice_inserito) + String(digits);
  53.       asterisco();
  54.     }
  55.     else if (touchstatus & (1<<TWO))
  56.     {
  57.       digits = '2';
  58.       codice_inserito = String(codice_inserito) + String(digits);
  59.       asterisco();
  60.     }
  61.     else if (touchstatus & (1<<NINE))
  62.     {
  63.       digits = '9';
  64.       codice_inserito = String(codice_inserito) + String(digits);
  65.       asterisco();
  66.     }
  67.     else if (touchstatus & (1<<SIX))
  68.     {
  69.       digits = '6';
  70.       codice_inserito = String(codice_inserito) + String(digits);
  71.       asterisco();
  72.     }
  73.     else if (touchstatus & (1<<THREE))
  74.     {
  75.       digits = '3';
  76.       codice_inserito = String(codice_inserito) + String(digits);
  77.       asterisco();
  78.     }
  79.     else if (touchstatus & (1<<ZERO))
  80.     {
  81.       digits = '0';
  82.       codice_inserito = String(codice_inserito) + String(digits);
  83.       asterisco();
  84.     }
  85.     else if (touchstatus & (1<<HASHTAG))
  86.     {
  87.       digits = '#';
  88.       Serial.println("Codice inserito: " + codice_inserito);
  89.    
  90.       ok_codice = true;
  91.      
  92.        
  93.     }
  94.     else if (touchstatus & (1<<ASTERISK))
  95.     {
  96.       digits = '*';
  97.       codice_annullato = true;
  98.    
  99.     }
  100.     Serial.println(digits);
  101.     //codice_inserito = String(codice_inserito) + String(digits);
  102.   }
  103.   //do nothing if more than one button is pressed, or if all are released
  104.   else if (touchNumber == 0)
  105.     ;
  106.   else
  107.     ;
  108. }
  109.  
  110.  
  111. /* getTouchStatus() will return a 16-bit value that relates the
  112. current touched status of each button. The LSB represents electrodes
  113. 0-7 (bit 0 = electrode 0), and the lowest 4 bits of the MSB
  114. represent electrods 8-11. A 1 means a button is being touched.*/
  115. int getTouchStatus()
  116. {
  117.   int touch;
  118.  
  119.   touch = mpr121Read(0x01) << 8;
  120.   touch |= mpr121Read(0x00);
  121.  
  122.   return touch;
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement