Advertisement
Guest User

Robot Orchestra ASCII

a guest
Oct 23rd, 2014
207
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.39 KB | None | 0 0
  1. /*
  2. This sketch allows you to control the Instrument by sending keyboard charachters like c d e f g a b C
  3.  the last one is a CAPITAL C,
  4.  so you you can play by using "Serial monitor" in arduino
  5. */
  6.  
  7.  
  8. char val,valASCII; // Data received from the serial port
  9.      
  10. void setup() {
  11.        
  12. for (int i = 2; i <= 9; i = i+1) {
  13.     pinMode(i, OUTPUT); // Set pin as OUTPUT
  14. }
  15. Serial.begin(9600); // Start serial communication at 9600 bps
  16. }
  17.        
  18. void loop() {
  19.     while(Serial.available()) { // If data is available to read,
  20.     valASCII = Serial.read(); // read it and store it in val
  21.         switch (valASCII)
  22.         {
  23.         case 'c':
  24.             val |= 0x01;
  25.             // bitWrite(val, 0,1); // set bit 0
  26.             // val |= 0b00000001;
  27.             break;
  28.         case 'd':
  29.             val |= 0x01<<1;
  30.             // bitWrite(val, 1,1);  // set bit 1
  31.             // val |= 0b00000010;
  32.             break;
  33.         case 'e':
  34.             val |= 0x01<<2;
  35.             break;
  36.         case 'f':
  37.             val |= 0x01<<3;
  38.             break;
  39.         case 'g':
  40.             val |= 0x01<<4;
  41.             break;
  42.         case 'a':
  43.             val |= 0x01<<5;
  44.             break;
  45.         case 'b':
  46.             val |= 0x01<<6;
  47.             break;
  48.         case 'C': // capital C
  49.             val |= 0x01<<7;
  50.             break;
  51.         default:
  52.             break;
  53.         }
  54.     }
  55.  
  56.     if(val>0){
  57.             for (int i = 0; i <= 7; i = i+1) {
  58.                 if(bitRead(val, i)){
  59.                     digitalWrite(i+2, HIGH);
  60.                     bitWrite(val, i,0); // clear the bit we just played
  61.                 }
  62.             }    
  63.     }
  64.     delay(20);
  65.     for (int i = 0; i <= 7; i = i+1) {
  66.         digitalWrite(i+2, LOW);
  67.     }
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement