#define c3 0 #define d3 1 #define e3 2 #define f3 3 #define g3 4 #define a3 5 #define b3 6 #define c4 7 #define c4s 8 #define d4 9 #define d4s 10 #define e4 11 #define f4 12 #define f4s 13 #define g4 14 #define g4s 15 #define a4 16 #define a4s 17 #define b4 18 #define c5 19 #define d5 20 #define d5s 21 #define e5 22 #define f5 23 #define g5 24 #define a5 25 #define a5s 26 #define b5 27 #define c6 28 #define r 255 void set_output(unsigned char in) { switch (in){ case 0: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 1: digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 2: digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 3: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 4: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 5: digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 6: digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 7: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, LOW); break; case 8: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 9: digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 10: digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 11: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 12: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 13: digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 14: digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 15: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, LOW); break; case 16: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 17: digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 18: digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 19: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 20: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 21: digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 22: digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 23: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, LOW); digitalWrite(12, HIGH); break; case 24: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, HIGH); break; case 25: digitalWrite(8, HIGH); digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, HIGH); break; case 26: digitalWrite(8, LOW); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, HIGH); break; case 27: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, LOW); digitalWrite(11, HIGH); digitalWrite(12, HIGH); break; case 28: digitalWrite(8, LOW); digitalWrite(9, LOW); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, HIGH); break; default: digitalWrite(8, HIGH); digitalWrite(9, HIGH); digitalWrite(10, HIGH); digitalWrite(11, HIGH); digitalWrite(12, HIGH); break; } } void setup() { pinMode(8, OUTPUT); pinMode(9, OUTPUT); pinMode(10, OUTPUT); pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT); pinMode(14, OUTPUT); pinMode(15, OUTPUT); Serial.begin(9600); while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } Serial.println("Goodnight moon!"); } void loop() { set_output(r); delay(160); set_output(c4s); delay(160); set_output(d4); delay(160); set_output(d4s); delay(160); set_output(e4); delay(2240); set_output(r); delay(3840); set_output(c4s); delay(1280); set_output(d4); delay(160); set_output(d4s); delay(160); set_output(e4); delay(2240); set_output(r); delay(1280); set_output(e4); delay(160); set_output(d4s); delay(160); set_output(d4); delay(160); set_output(c4s); delay(2240); set_output(r); delay(160); set_output(c4s); delay(160); set_output(d4); delay(160); set_output(d4s); delay(160); set_output(e4); delay(1280); set_output(r); delay(1920); set_output(r); delay(160); set_output(d4s); delay(160); set_output(e4); delay(320); set_output(r); delay(160); set_output(f4s); delay(160); set_output(g4); delay(320); set_output(r); delay(160); set_output(d4s); delay(160); set_output(e4); delay(160); set_output(f4s); delay(160); set_output(g4); delay(160); set_output(c5); delay(160); set_output(b5); delay(160); set_output(d4); delay(160); set_output(g4); delay(160); set_output(b4); delay(160); set_output(a4s); delay(740); set_output(r); delay(100); set_output(a4s); delay(100); set_output(b4); delay(100); set_output(f4s); delay(100); set_output(e4); delay(100); set_output(f4s); delay(740); set_output(r); delay(2200); }