Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define BUZZER 10
- #define W_BUTTON 11
- #define Y_BUTTON 6
- #define R_BUTTON 7
- #define G_BUTTON 8
- #define B_BUTTON 9
- #define PIN_BLU 5
- #define PIN_GREEN 4
- #define PIN_RED 3
- #define PIN_YELLOW 2
- #define WHITE 64
- #define BLU 32
- #define GREEN 16
- #define RED 8
- #define YELLOW 4
- #define NULLA 0
- long Number;
- int YbuttonState=0;
- int RbuttonState=0;
- int GbuttonState=0;
- int BbuttonState=0;
- int WbuttonState=0;
- int frequency[25];
- int mapping[13]={ BLU ,
- BLU|YELLOW ,
- GREEN ,
- GREEN|YELLOW ,
- RED ,
- RED|YELLOW ,
- YELLOW ,
- BLU|GREEN ,
- BLU|GREEN|YELLOW ,
- BLU|RED ,
- BLU|RED|YELLOW,
- GREEN|RED,
- GREEN|RED|YELLOW};
- void AccendiLed(int colore)
- {
- digitalWrite(PIN_BLU, (colore&BLU)?HIGH:LOW);
- digitalWrite(PIN_GREEN, (colore&GREEN)?HIGH:LOW);
- digitalWrite(PIN_RED, (colore&RED)?HIGH:LOW);
- digitalWrite(PIN_YELLOW, (colore&YELLOW)?HIGH:LOW);
- }
- void setup() {
- // put your setup code here, to run once:
- float f;
- Serial.begin(9600);
- pinMode(PIN_BLU, OUTPUT);
- pinMode(PIN_GREEN, OUTPUT);
- pinMode(PIN_RED, OUTPUT);
- pinMode(PIN_YELLOW, OUTPUT);
- pinMode(Y_BUTTON, INPUT);
- pinMode(R_BUTTON, INPUT);
- pinMode(G_BUTTON, INPUT);
- pinMode(B_BUTTON, INPUT);
- pinMode(W_BUTTON, INPUT);
- pinMode(BUZZER, OUTPUT);
- randomSeed(analogRead(0));
- frequency[0]=523;
- f=523;
- for(int i=1;i<25;i++){
- f=f*1.0594630943592952646;
- frequency[i]=(int)(f+.5);
- }
- }
- void loop() {
- int i;
- int note;
- YbuttonState = digitalRead(Y_BUTTON);
- RbuttonState = digitalRead(R_BUTTON);
- GbuttonState = digitalRead(G_BUTTON);
- BbuttonState = digitalRead(B_BUTTON);
- WbuttonState = digitalRead(W_BUTTON);
- Number=0;
- Number= BLU*BbuttonState+GREEN*GbuttonState+RED*RbuttonState+YELLOW*YbuttonState;
- note=0;
- for (i=0;i<13;i++){
- if(mapping[i]==Number){
- note = frequency[i];
- break;
- }
- }
- AccendiLed(Number);
- if (WbuttonState)note*=2;
- if(note==0) noTone(BUZZER);
- else tone(BUZZER, note);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement