Well hello!
been a bit borded today so playing with arduino UNO and the onboard led so though hey ho lets make a morse code thingy??
anyways so proud of my terrible coding that i though i could share...
NOW IT WORKS! :~
/*
Steve's Morse Code sketch with arduino uno using pin 13 as led
*/
//globals
String text = "arduino rocks";
int small = 250;
int large = small * 3;
int space = large;
int spaceWord = small * 7;
int a[] = {small, large};
int b[] = {large, small, small, small};
int c[] = {large, small, large, small};
int d[] = {large, small, small};
int e[] = {small};
int f[] = {small, small, large, small};
int g[] = {large, large, small};
int h[] = {small, small, small, small};
int i[] = {small, small};
int j[] = {small, large, large, large};
int k[] = {large, small, large};
int l[] = {small, large, small, small};
int m[] = {large, large};
int n[] = {large, small};
int o[] = {large, large, large};
int p[] = {small, large, large, small};
int q[] = {large, large, small, large};
int r[] = {small, large, small};
int s[] = {small, small, small};
int t[] = {large};
int u[] = {small, small, large};
int v[] = {small, small, small, large};
int w[] = {small, large, large};
int x[] = {large, small, small, large};
int y[] = {large, small, large, large};
int z[] = {large, large, small, small};
void setup()
{
pinMode(13, OUTPUT);
}
void loop()
{
// get the first letter to flash
for (int xp = 0; xp < (sizeof(text) / sizeof(char)); xp++)
{
if (text[xp] == ' ')
{
delay(spaceWord);
}
else if(text[xp] == 'a')
{
flash(a,2);
}
else if(text[xp] == 'b')
{
flash(b,4);
}
else if(text[xp] == 'c')
{
flash(c,4);
}
else if(text[xp] == 'd')
{
flash(d,3);
}
else if(text[xp] == 'e')
{
flash(e,1);
}
else if(text[xp] == 'f')
{
flash(f,4);
}
else if(text[xp] == 'g')
{
flash(g,3);
}
else if(text[xp] == 'h')
{
flash(h,4);
}
else if(text[xp] == 'i')
{
flash(i,2);
}
else if(text[xp] == 'j')
{
flash(j,4);
}
else if(text[xp] == 'k')
{
flash(k,3);
}
else if(text[xp] == 'l')
{
flash(l,4);
}
else if(text[xp] == 'm')
{
flash(m,2);
}
else if(text[xp] == 'n')
{
flash(n,2);
}
else if(text[xp] == 'o')
{
Serial.println("flash o");
flash(o,3);
}
else if(text[xp] == 'p')
{
flash(p,4);
}
else if(text[xp] == 'q')
{
flash(q,4);
}
else if(text[xp] == 'r')
{
flash(r,3);
}
else if(text[xp] == 's')
{
Serial.println("flash s");
flash(s,3);
}
else if(text[xp] == 't')
{
flash(t,1);
}
else if(text[xp] == 'u')
{
flash(u,3);
}
else if(text[xp] == 'v')
{
flash(v,4);
}
else if(text[xp] == 'w')
{
flash(w,3);
}
else if(text[xp] == 'x')
{
flash(x,4);
}
else if(text[xp] == 'y')
{
flash(y,4);
}
else if(text[xp] == 'z')
{
flash(z,4);
}
}
//delay before restarting loop
delay(5000);
}
/*
function flash the morse code for a letter then returns after letter spacing
*/
void flash(int letter[], int sizeLetter)
{
for(int iz = 0; iz < sizeLetter; iz++)
{
digitalWrite(13, HIGH);
delay(letter[iz]);
digitalWrite(13, LOW);
delay(small);
}
delay(space);
}