Advertisement
Guest User

Musichino

a guest
Aug 5th, 2021
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.30 KB | None | 0 0
  1.  
  2. #define BUZZER 10
  3.  
  4. #define W_BUTTON 11
  5. #define Y_BUTTON 6
  6. #define R_BUTTON 7
  7. #define G_BUTTON 8
  8. #define B_BUTTON 9
  9.  
  10. #define PIN_BLU 5
  11. #define PIN_GREEN 4
  12. #define PIN_RED 3
  13. #define PIN_YELLOW 2
  14.  
  15. #define WHITE 64
  16. #define BLU 32
  17. #define GREEN 16
  18. #define RED 8
  19. #define YELLOW 4
  20.  
  21. #define NULLA 0
  22. long Number;
  23. int   YbuttonState=0;
  24. int   RbuttonState=0;
  25. int   GbuttonState=0;
  26. int   BbuttonState=0;
  27. int   WbuttonState=0;
  28.  
  29.  
  30. int frequency[25];
  31. int mapping[13]={ BLU          ,
  32.                   BLU|YELLOW ,
  33.                   GREEN          ,
  34.                   GREEN|YELLOW ,
  35.                   RED          ,
  36.                   RED|YELLOW ,
  37.                   YELLOW          ,
  38.                   BLU|GREEN ,
  39.                   BLU|GREEN|YELLOW ,
  40.                   BLU|RED ,
  41.                   BLU|RED|YELLOW,
  42.                   GREEN|RED,
  43.                   GREEN|RED|YELLOW};
  44.                  
  45. void AccendiLed(int colore)
  46. {
  47.    digitalWrite(PIN_BLU, (colore&BLU)?HIGH:LOW);
  48.    digitalWrite(PIN_GREEN, (colore&GREEN)?HIGH:LOW);
  49.    digitalWrite(PIN_RED, (colore&RED)?HIGH:LOW);
  50.    digitalWrite(PIN_YELLOW, (colore&YELLOW)?HIGH:LOW);
  51. }
  52.  
  53.  
  54. void setup() {
  55.    // put your setup code here, to run once:
  56.    float f;
  57.    Serial.begin(9600);
  58.    pinMode(PIN_BLU, OUTPUT);
  59.    pinMode(PIN_GREEN, OUTPUT);
  60.    pinMode(PIN_RED, OUTPUT);
  61.    pinMode(PIN_YELLOW, OUTPUT);
  62.    pinMode(Y_BUTTON,  INPUT);
  63.    pinMode(R_BUTTON,  INPUT);
  64.    pinMode(G_BUTTON,  INPUT);
  65.    pinMode(B_BUTTON,  INPUT);
  66.    pinMode(W_BUTTON,  INPUT);
  67.    pinMode(BUZZER, OUTPUT);
  68.    randomSeed(analogRead(0));
  69.    frequency[0]=523;
  70.    f=523;
  71.    for(int i=1;i<25;i++){
  72.    f=f*1.0594630943592952646;
  73.    frequency[i]=(int)(f+.5);
  74.    }
  75. }
  76.  
  77. void loop() {
  78.    int i;
  79.    int note;
  80.  
  81.    YbuttonState = digitalRead(Y_BUTTON);
  82.    RbuttonState = digitalRead(R_BUTTON);
  83.    GbuttonState = digitalRead(G_BUTTON);
  84.    BbuttonState = digitalRead(B_BUTTON);
  85.    WbuttonState = digitalRead(W_BUTTON);
  86.    Number=0;
  87.    Number= BLU*BbuttonState+GREEN*GbuttonState+RED*RbuttonState+YELLOW*YbuttonState;
  88.    note=0;
  89.  
  90.    for (i=0;i<13;i++){
  91.  
  92.       if(mapping[i]==Number){
  93.          note = frequency[i];
  94.          break;
  95.       }
  96.    }
  97.  
  98.    AccendiLed(Number);
  99.    
  100.   if (WbuttonState)note*=2;
  101.    if(note==0) noTone(BUZZER);
  102.    else tone(BUZZER, note);
  103. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement