/*
   Josh Fender
   This is acomplex example that demsonstrates how to use multiple variables, lists, and
   for loops to generate a morse code message.
*/
const int LED = 9;
int dash = 500;
int dot = 250;
int blink = 125;
int gap = 250;
int space = 500;
int end_message = 2000;
const int POWER[] = {HIGH, HIGH, HIGH, HIGH,  LOW, HIGH,  LOW, HIGH, HIGH, HIGH, HIGH,  LOW, HIGH, HIGH, HIGH, HIGH,  LOW, HIGH, HIGH, HIGH,   LOW, HIGH, HIGH, HIGH,  LOW, HIGH, HIGH, HIGH,  LOW, HIGH, HIGH, HIGH,  LOW, HIGH, HIGH, HIGH, HIGH,  LOW, HIGH, HIGH, HIGH};
const int TIMER[] = { dot,  dot,  dot,  dot,  gap,  dot,  gap,  dot, dash,  dot,  dot,  gap,  dot, dash,  dot,  dot,  gap, dash, dash, dash, space,  dot, dash, dash,  gap, dash, dash, dash,  gap,  dot, dash,  dot,  gap,  dot, dash,  dot,  dot,  gap, dash,  dot,  dot};
void setup() {
   pinMode(LED, OUTPUT);
   for (int start = 0; start < 5; start++){
      digitalWrite(LED, HIGH);  
      delay(dot);            
      digitalWrite(LED,  LOW);    
      delay(blink); 
   }
   delay(end_message);
}
void loop() {
   for (int count = 0; count < 41; count++){
      digitalWrite(LED, POWER[count]);  
      delay(TIMER[count]);            
      digitalWrite(LED,  LOW);    
      delay(blink);
   }
   delay(end_message);
}