Advertisement
Guest User

Untitled

a guest
May 26th, 2019
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1. const int DELAY = 500;
  2. enum T_Note {
  3.   C4,
  4.   D,
  5.   E,
  6.   F,
  7.   G,
  8.   A,
  9.   B,
  10.   C5,
  11.   PAUSE,
  12. };
  13.  
  14. const byte KEY = A0;
  15. const byte MODE = 6;
  16. const byte SOUNDER = 7;const int DELAY = 500;
  17. enum T_Note {
  18.   C4,
  19.   D,
  20.   E,
  21.   F,
  22.   G,
  23.   A,
  24.   B,
  25.   C5,
  26.   PAUSE,
  27. };
  28.  
  29. const byte KEY = A0;
  30. const byte MODE = 6;
  31. const byte SOUNDER = 7;
  32. const byte LED_REC;
  33. const byte LED_PLAY;
  34. const byte LCD_D4 = 10;
  35. const byte LCD_D5 = 11;
  36. const byte LCD_D6 = 12;
  37. const byte LCD_D7 = 13;
  38. const byte LCD_E = 9;
  39. const byte LCD_RS = 8;
  40.  
  41. const int notes[] = {262, 294, 330, 349, 392, 440, 494, 523, 0};
  42. const int NUM_OF_NOTES = PAUSE; //PAUSE is the last enum value of Note
  43. const float noteRanges[NUM_OF_NOTES][2] = {
  44.  
  45.                                             {0.100, 0.459},
  46.                                             {0.460, 0.842},
  47.                                             {0.843, 1.218},
  48.                                             {1.219, 1.599},
  49.                                             {1.600, 1.910},
  50.                                             {1.911, 2.139},
  51.                                             {2.140, 2.377},
  52.                                             {2.378, 3.000}
  53.                                           };
  54. float convToV(int in)
  55. {
  56.   return in * (5.0/1023);
  57. }
  58.  
  59. int notePressed(float note)
  60. {
  61.   for(size_t i = 0; i < NUM_OF_NOTES; i++)
  62.   {
  63.     if(note >= noteRanges[i][0] && note <= noteRanges[i][1])
  64.     {
  65.       return i;
  66.     }
  67.   }
  68.   return PAUSE;
  69. }
  70.  
  71. void setup()
  72. {
  73.   Serial.begin(9600);
  74.   pinMode(KEY, INPUT);
  75. }
  76.  
  77.  
  78.  
  79. void loop()
  80. {
  81.   float in = convToV(analogRead(KEY));//input voltage
  82.   Serial.print(in);
  83.   switch(notePressed(in))
  84.   {
  85.     case C4:
  86.      Serial.println(" C4 ");
  87.       break;
  88.      
  89.     case D:
  90.       Serial.println("  D ");
  91.       break;
  92.      
  93.     case E:
  94.       Serial.println("  E ");
  95.       break;
  96.                                                                                                          
  97.     case F:
  98.       Serial.println("  F ");
  99.       break;
  100.      
  101.     case G:
  102.       Serial.println("  G ");
  103.       break;
  104.      
  105.     case A:
  106.       Serial.println("  A ");
  107.       break;
  108.    
  109.     case B:
  110.       Serial.println("  B ");
  111.       break;
  112.      
  113.     case C5:
  114.       Serial.println("  C5 ");
  115.       break;
  116.      
  117.     case PAUSE:
  118.       Serial.println("  PPause ");
  119.   }
  120.  
  121.   delay(DELAY);
  122. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement