1st Arduino bug 1st program in Arduino C

All software questions and discussions on any Language

Moderators: myblack60impala, ken tait

1st Arduino bug 1st program in Arduino C

Postby Carlton on Wed Jan 27, 2010 1:39 am

I tried to get fancy with my first code and now got the whole thing written but can't get it to run.

My error is
Code: Select all

In function 'void loop()':
error: invalid conversion from 'void (*)()' to 'char' In function 'void b()':
In function 'void c()':
In function 'void d()':
In function 'void f()':
In function 'void g()':
In function 'void l()':
In function 'void n()':
In function 'void p()':
In function 'void q()':
In function 'void r()':
In function 'void u()':
In function 'void v()':
In function 'void z()':
In function 'void dash()':
In function 'void colon()':
In function 'void equal()':


I'll post my code for the the first part rest just repeats with different function names, I've commented what is missing
Code: Select all
const int messLen = 6;      // the number of characters including spaces in the message
const int DIT = 200; //number of period_broadcasts in one 'dit', //all other lengths are scaled from this
int ledpin = 13;
const int PAUSE = 2 * DIT; //pause after dit
const int CHPAUSE = 4 * DIT;   // pause between characters
const int DAH = 3 * DIT;  //number of persots for dah
const int WPAUSE = 7 * DIT; //pause between words

void setup() {    // initialize the controller

  pinMode(ledpin, OUTPUT);
}

void loop() {     //  controller infinite loop  for operation


char message[messLen] = {k,I,4,n,h,k} ; //  all lower case seperate by comma

char buffer = 'v';
for(int j = 0; j < messLen; j++) {
  buffer = message[j];
  switch (buffer) {   
    case 'a':
        a();    break;
    case 'b':
      b();      break;
    case 'c':
     c();       break;
    case 'd':
      d();      break;
/*    case 'e':
       e();     break;
    case 'f':
      f();      break;
    case 'g':
      g();      break;
    case 'h':
      h();      break;
    case 'I':
      I();      break;
    case 'j':
      j();      break;
    case 'k':
      k();      break;
    case 'l':
      l();      break;
    case 'm':
      m();      break;
    case 'n':
      n();      break;
    case 'o':
      o();      break;
    case 'p':
      p();      break;
    case 'q':
      q();      break;
    case 'r':
      r();      break;
    case 's':
      s();      break;
    case 't':
      t();      break;
    case 'u':
      u();      break;
    case 'v':
      v();      break;
    case 'w':
      w();      break;
    case 'x':
      x();      break;
    case 'y':
      y();      break;
    case 'z':
      z();      break;
    case '3':
      n3();     break;
    case '0':
      n0();     break;
   case '1':
      n1();      break;
    case '2':
      n2();      break;
    case '4':
      n4();      break;
   case '5':
      n5();      break;
    case '6':
      n6();      break;
    case '7':
      n7();      break;
   case '8':
      n8();      break;
    case '9':
      n9();      break;
    case '.':
      perid();     break;
   case '?':
      questi();    break;
    case '!':
      exclim();    break;
    case ',':
      coma();      break;
   case '-':
      dash();      break;
    case ':':
      colon();     break;
    case '=':
      equal();     break;          */
    default :
       delay(WPAUSE);
  }
}
delay(WPAUSE);
}

void a() {
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void b() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW)
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void c() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW)
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW)
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void d() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW)
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}


Please help
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn

Re: 1st Arduino bug 1st program in Arduino C

Postby Carlton on Wed Jan 27, 2010 1:43 am

change
char message[messLen] = {k,I,4,n,h,k} ; //

to
char message[messLen] = {a,a,d,b,b,c} ;

forgot that needed the rest of the code
thanks in advance
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn

Re: 1st Arduino bug 1st program in Arduino C

Postby aldricf2 on Wed Jan 27, 2010 10:41 am

What is use of the program?
ROBLOX: artbot345
Runescape: 969Atlantes
World of Warcraft main: Hedwin
User avatar
aldricf2
Robosapien
 
Posts: 155
Joined: Mon Aug 20, 2007 2:13 am
Location: St. Clair, MO

Re: 1st Arduino bug 1st program in Arduino C

Postby Carlton on Wed Jan 27, 2010 2:39 pm

this program is to allow the quick setting of a morse code sequence

enter you phrase in the { } of message[messLen] then add commas between every character,
this will let every element of the array be produced in morse code. Then repeats the message.

So no knowledge of morse code is needed for someone to have arduino send morse code.

I've been playing with it, and still can't figure out how to get it to work. :question:
I also tried to upload a tutorial in my Arduino and got errors as well. :question: :question: :question:
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn

Re: 1st Arduino bug 1st program in Arduino C

Postby WinfieldMike on Wed Jan 27, 2010 9:20 pm

Here is a webpage about using the Arduino to create Morse code:

http://brainwagon.org/2009/11/14/anothe ... se-beacon/

We can look at it at the FNBS is you will be there.

Mike
Believe nothing, no matter where you read it, or who said it, no matter if I have said it, unless it agrees with your own reason and your own common sense.
User avatar
WinfieldMike
Site Admin
 
Posts: 806
Joined: Tue Sep 19, 2006 10:44 pm
Location: Winfield, MO

Re: 1st Arduino bug 1st program in Arduino C

Postby tmaiden on Wed Jan 27, 2010 11:26 pm

are you missing a semi-colon here?
Code: Select all
void b() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW)  <- LOOK HERE
delay(PAUSE);
digitalWrite(ledpin,HIGH);

= Tom M. =

An objects mass is the result of the viscosity of the 4 dimensional space-time fabric.
User avatar
tmaiden
R. Daneel Olivaw
 
Posts: 1174
Joined: Mon Apr 04, 2005 4:34 pm
Location: So. Saint Louis County, MO, USA

Re: 1st Arduino bug 1st program in Arduino C

Postby Carlton on Thu Jan 28, 2010 12:08 am

tmaiden wrote:are you missing a semi-colon here?
Code: Select all

delay(DAH);
digitalWrite(ledpin, LOW)  <- LOOK HERE



DOUH :mad: :redface: :redface: :redface: :redface: :mad:

Thanks TOM
thanks fixes about 30 of my errors right there (copy & paste code)


How are string, char, & array used correctly?? :question: (I've seen the arduino reference homepage, but not got it)
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn

Re: 1st Arduino bug 1st program in Arduino C

Postby TomD on Thu Jan 28, 2010 1:23 am

Try this:

Code: Select all
char message[messLen] = {'a','a','d','b','b','c'};


-TomD
User avatar
TomD
ROBOMO Events coordinator/PR
 
Posts: 34
Joined: Wed Dec 14, 2005 11:14 am
Location: St. Louis, MO

Re: 1st Arduino bug 1st program in Arduino C

Postby Carlton on Fri Jan 29, 2010 12:11 am

The Toms have done it for my code bugs

now what I get is
Code: Select all
Binary sketch size: 6984 bytes (of a 30720 byte maximum)

avrdude: stk500_getsync(): not in sync: resp=0x30
avrdude: stk500_disable(): protocol error, expect=0x14, resp=0x51


I've checked both
http://www.arduino.cc/cgi-bin/yabb2/YaB ... 381702/all and
http://www.arduino.cc/en/Guide/Troubleshooting#Upload
and can't figure out how to fix the problem.
FYI.... Vista, USB is COM3 (only option),
I'm re-installing the drivers from Windows...so well see if that gets somewhere


My corrected (I hope :surrender: ) code is below if anyone wants to try it.
/*   By Carlton Corbitt with reference to the tutorals of arduino and http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1170901754 and http://homepage.ntlworld.com/dmitrismirnov/morse-tab1.JPG
this is to take a text field(array) and output the desired Morse Code(CW) for that text
*/
const int messLen = 6; // the number of characters including spaces in the message
const int DIT = 200; //number of period_broadcasts in one 'dit', //all other lengths are scaled from this
int ledpin = 13;
const int PAUSE = 2 * DIT; //pause after dit
const int CHPAUSE = 4 * DIT; // pause between characters
const int DAH = 3 * DIT; //number of persots for dah
const int WPAUSE = 7 * DIT; //pause between words

void setup() { // initialize the controller
 
  pinMode(ledpin, OUTPUT);
}

void loop() { // controller infinite loop for operation


char message[messLen] = {'k','I','4','n','h','k'} ; // all lower case seperate by comma
 
 char buffer = 'v';
for(int j = 0; j < messLen; j++) {
  buffer = message[j];
  switch (buffer) {
    case 'a':
        a();    break; 
    case 'b':
      b();      break;
    case 'c':
     c();       break;
    case 'd':
      d();      break;
    case 'e':
       e();     break;
    case 'f':
      f();      break;
    case 'g':
      g();      break;
    case 'h':
      h();      break;
    case 'I':
      I();      break;
    case 'j':
      jay();      break;
    case 'k':
      k();      break;
    case 'l':
      l();      break;
    case 'm':
      m();      break;
    case 'n':
      n();      break;
    case 'o':
      o();      break;
    case 'p':
      p();      break;
    case 'q':
      q();      break;
    case 'r':
      r();      break;
    case 's':
      s();      break;
    case 't':
      t();      break;
    case 'u':
      u();      break;
    case 'v':
      v();      break;
    case 'w':
      w();      break;
    case 'x':
      x();      break;
    case 'y':
      y();      break;
    case 'z':
      z();      break; 
    case '3':
      n3();     break;
    case '0':
      n0();     break; 
   case '1':
      n1();      break;
    case '2':
      n2();      break; 
    case '4':
      n4();      break; 
   case '5':
      n5();      break;
    case '6':
      n6();      break; 
    case '7':
      n7();      break; 
   case '8':
      n8();      break;
    case '9':
      n9();      break; 
    case '.':
      perid();     break; 
   case '?':
      questi();    break;
    case '!':
      exclim();    break; 
    case ',':
      coma();      break; 
   case '-':
      dash();      break;
    case ':':
      colon();     break; 
    case '=':
      equal();     break; 
    default :
       delay(WPAUSE);
  }
 }
delay(WPAUSE);
}

void a() {
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void b() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void c() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void d() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void e() {
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void f() {
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void g() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void h() {
for(int I=0; I < 4; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void I() {
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void jay() {
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void k() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void l() {
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void m() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void n() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void o() {
for(int I=0; I < 3; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void p() {
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void q() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
}

void r() {
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void s() {
for(int I=0; I < 3 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void t() {
  digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(CHPAUSE);
}

void u() {
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void v() {
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void w() {
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void x() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void y() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void z() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(PAUSE);
digitalWrite(ledpin,HIGH);
delay(DIT);
digitalWrite(ledpin, LOW);
delay(CHPAUSE);
}

void n0() {
for(int I=0; I < 5; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void n1() {
digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
for(int I=0; I < 4; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void n2() {
digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
for(int I=0; I < 3; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void n3() {
for(int I=0; I < 3 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(CHPAUSE);
}

void n4() {
 for(int I=0; I < 4 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
  }
 digitalWrite(ledpin,HIGH);
 delay(DAH);
  digitalWrite(ledpin, LOW);
  delay(CHPAUSE);
}

void n5() {
for(int I=0; I < 5 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void n6() {
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
for(int I=0; I < 4 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
}

void n7() {
for(int I=0; I < 2; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
for(int I=0; I < 3 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void n8() {
for(int I=0; I < 3; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
for(int I=0; I < 2 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void n9() {
for(int I=0; I < 4; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
 digitalWrite(ledpin,HIGH);
   delay(DIT);
   digitalWrite(ledpin, LOW);
  delay(CHPAUSE);
}

void dash() { // -....-
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
for(int I=0; I < 4 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
}

void perid() {
for(int I=0; I < 3 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
delay(PAUSE);
}

void questi() {
digitalWrite(ledpin,HIGH);
   delay(DIT);
   digitalWrite(ledpin, LOW);
  delay(CHPAUSE);
digitalWrite(ledpin,HIGH);
   delay(DIT);
   digitalWrite(ledpin, LOW);
  delay(PAUSE);
z();
}

void coma() { // --..--
for(int I=0; I < 2 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
   }
for(int I=0; I < 2 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DIT);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
  }
for(int I=0; I < 2 ; I++) {
    digitalWrite(ledpin,HIGH);
    delay(DAH);
    digitalWrite(ledpin, LOW);
    delay(PAUSE);
 }
delay(PAUSE);
}

void exclim() {
  digitalWrite(ledpin,HIGH);
  delay(DIT);
  digitalWrite(ledpin, LOW);
  delay(PAUSE);
  p();
}

void colon() {
 digitalWrite(ledpin, HIGH);
delay(DAH);
digitalWrite(ledpin, LOW);
delay(PAUSE);
 n7();
}

void equal() {
 digitalWrite(ledpin, HIGH);
 delay(DAH);
 digitalWrite(ledpin, LOW);
 delay(PAUSE);
 v();
}
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn

Re: 1st Arduino bug 1st program in Arduino C

Postby Carlton on Fri Jan 29, 2010 12:24 am

:lol: :lol: :razz: IT WORKS, IT WORKS

it finely finely works :exclaim: :exclaim: :exclaim: :exclaim: :geek2: :arrow: :geek2: :lol: :) :geek: :cool: :surprised:
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn

Re: 1st Arduino bug 1st program in Arduino C

Postby WinfieldMike on Fri Jan 29, 2010 2:51 am

Well bring it tomorrow night and show it off!!!
Believe nothing, no matter where you read it, or who said it, no matter if I have said it, unless it agrees with your own reason and your own common sense.
User avatar
WinfieldMike
Site Admin
 
Posts: 806
Joined: Tue Sep 19, 2006 10:44 pm
Location: Winfield, MO

Re: 1st Arduino bug 1st program in Arduino C

Postby nick samira on Sat Jan 30, 2010 11:53 am

The only think I knew about Morse code prior to this post was "SOS" ( ... _ _ _ ... ) .

Using the code above, I modified to make it more compact.

I am only interested in testing the code, therefore, the Morse code in my program included only the alphabet ( a - z ) .

Please check if it will conform with the sending of the Morse code ( I just test for ' sos ' )

Code: Select all
char DOT = '0';
char DASH = '1';

const int messLen = 6; // the number of characters including spaces in the message
const int DIT = 200; //number of period_broadcasts in one 'dit', //all other lengths are scaled from this

const int PAUSE = 2 * DIT; //pause after dit
const int CHPAUSE = 4 * DIT; // pause between characters
const int DAH = 3 * DIT; //number of persots for dah
const int WPAUSE = 7 * DIT; //pause between words

const int base = 97 ;// ascii value of "a"

int ledpin = 13;

char* mc[] = { 
    "01",  // a 0
    "1000", // b 1
    "1010",  //c 2
    "100",     //d 3
    "0",    //e 4
    "0010" , // f 5
    "110", //g 6
    "0000", //h 7
    "00", //I 8
    "0111" , //j 9
    "101", //k 10
    "0100", //l 11
    "11", // m 12
    "01", // n 14
    "111" , // o 14
    "0110", //p 15
    "1101", //q 16
    "010" , // r 17
    "000" , // s 18
    "1", //  // t 19
    "001", // u 20
    "0001", // v 21
    "011", // w 22
    "1001", //x 23
    "1011", // y 24
    "1100" // z  25       
} ;

void setup() { // initialize the controller
  pinMode(ledpin, OUTPUT);
  Serial.begin( 9600);
}

void loop() { // controller infinite loop for operation
  char sos[] = "sos" ;
  int sosLen = strlen( sos ) ;
  Serial.print ("sos len = ");
  Serial.println ( sosLen ) ;
 
  for ( int k = 0 ; k < sosLen ; k++) {
    char vChar = sos[k];
    int vIndex = (int) vChar - base  ;
    sendChar( mc[vIndex]) ;
  } 
  sendWordPause();
}

void sendDit () {
  digitalWrite(ledpin, HIGH);
  delay(DIT);
  digitalWrite(ledpin, LOW);
  delay(PAUSE);
}

void sendDah() {
  digitalWrite(ledpin,HIGH);
  delay(DAH);
  digitalWrite(ledpin, LOW);
  delay(PAUSE);
}
void sendCharPause() {
  delay (CHPAUSE);
}

void sendWordPause() {
  delay ( WPAUSE) ;
}

void sendChar ( char* v) {
  int I = strlen( v ) ;
  for ( int k = 0; k < I; k++) {
    Serial.print ( v[k] ); 
    if ( v[k] == '0' ) sendDit ();
    if ( v[k] == '1' ) sendDah();
  } 
  sendCharPause();
  Serial.println();
}
nick samira
Qrio
 
Posts: 239
Joined: Sun May 20, 2007 11:31 pm
Location: T & C, MO USA

Re: 1st Arduino bug 1st program in Arduino C

Postby Carlton on Sun Jan 31, 2010 8:23 pm

Nick,

I didn't try your code directly, but I did use part of it to condense my code. my new morse code generator is below.
looking at your code I can't see anything wrong.
I pulled some of your ideas into my code so I could keep my numbers and punctuation characters
Last edited by Carlton on Tue Feb 09, 2010 11:56 pm, edited 1 time in total.
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn

Re: 1st Arduino bug 1st program in Arduino C

Postby Carlton on Tue Feb 09, 2010 11:55 pm

I added sound through a speaker using digitalWrite on pin 10
it still has the led on pin 13
and pin 2 though 9 have a 7 segment display with the optional dot led

This is to ID the radio used in a near space balloon or radio foxhunt with only the arduino for a stand alone controller

Code: Select all
/*   By Carlton Corbitt with
reference to the tutorals of arduino and http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1170901754
and http://homepage.ntlworld.com/dmitrismirnov/morse-tab1.JPG
and http://www.robomo.com/Forum/viewtopic.php?f=3&t=1607
this is to take a text field(array) and output the desired Morse Code(CW) for that text
*/

int ledpin = 13;  // led on arduino
int pin7a = 2;  //  top led on 7 segment display
int pin7b = 3;
int pin7c = 4;
int pin7d = 5;   // bottom bar led of 7 segment display
int pin7e = 6;
int pin7f = 7;
int pin7g = 8;   //  middle bar of 7 seg. display
int pin7h = 9;    // optional extra dot at bottom of 7 seg. display
#define speaker 10          // speaker for tone using digitalWrite
unsigned int pitch = 1000;  // lower number gets higher frequency Arduino range~(200-4800)
const int DIT = 70; //# of millisecond in one 'dit', //all other lengths are scaled from this
const int PAUSE = 2 * DIT;   //pause after dit
const int CHPAUSE = 4 * DIT; // pause between characters
const int DAH = 3 * DIT;     //number of persots for dah
const int WPAUSE = 7 * DIT;  //pause between words

void setup() { // initialize the controller
for ( int ii = 2; ii<14; ii++) { pinMode(ii, OUTPUT);}  //but pin 11 & pin 12 not in use
}

void loop() { // controller infinite loop for operation
  char message[] = "abcdefghijklmnopqrstuvwxyz1234567890 = -?!.,   " ; // all lower case seperate by comma
for(int j = 0; j < strlen(message); j++) {
   switch (message[j]) {
      case 'a':
        a();    break;
      case 'b':
      b();      break;
      case 'c':
       c();       break;
      case 'd':
      d();      break;
      case 'e':
       e();     break;
      case 'f':
      f();      break;
      case 'g':
      g();      break;
      case 'h':
      h();      break;
      case 'I':
      I();      break;
      case 'j':
      jay();      break;
      case 'k':
      k();      break;
      case 'l':
      l();      break;
      case 'm':
      m();      break;
      case 'n':
      n();      break;
      case 'o':
      o();      break;
      case 'p':
      p();      break;
      case 'q':
      q();      break;
      case 'r':
      r();      break;
      case 's':
      s();      break;
      case 't':
      t();      break;
      case 'u':
      u();      break;
      case 'v':
      v();      break;
      case 'w':
      w();      break;
      case 'x':
      x();      break;
      case 'y':
      y();      break;
      case 'z':
      z();      break;
      case '3':
      n3();     break;
      case '0':
      n0();     break;
     case '1':
      n1();      break;
     case '2':
      n2();      break;
    case '4':
      n4();      break;
     case '5':
      n5();      break;
      case '6':
      n6();      break;
      case '7':
      n7();      break;
     case '8':
      n8();      break;
      case '9':
      n9();      break;
      case '.':
      perid();     break;
     case '?':
      questi();    break;
      case '!':
      exclim();    break;
      case ',':
      coma();      break;
     case '-':
      dash();      break;
      case ':':
      colon();     break;
      case '=':
      equal();     break;
      default :
       delay(WPAUSE);
   }
  delay(WPAUSE);
  for(int kk=2; kk<10; kk++) {digitalWrite(kk, LOW); }
  }
}

void dah() {
digitalWrite(ledpin, HIGH);
for(int I=0; I<DAH; I++) {
    digitalWrite(speaker, HIGH);
    delayMicroseconds(pitch);
    digitalWrite(speaker, LOW);
    delayMicroseconds(pitch);
  }
digitalWrite(ledpin, LOW);
delay(PAUSE);
}

void dit() {
digitalWrite(ledpin, HIGH);
for(int I=0; I<DIT; I++) {
    digitalWrite(speaker, HIGH);
    delayMicroseconds(pitch);
    digitalWrite(speaker, LOW);
    delayMicroseconds(pitch);
  }
digitalWrite(ledpin, LOW);
delay(PAUSE);
}

void seg7led(long int displ) {
if(displ >= 10000000) {
    digitalWrite(pin7a, HIGH);
    displ = displ - 10000000;
  }
  if(displ >= 1000000) {
    digitalWrite(pin7b, HIGH);
    displ = displ - 1000000;
  }
  if(displ >= 100000) {
    digitalWrite(pin7c, HIGH);
    displ = displ - 100000;
  }
  if(displ >= 10000) {
    digitalWrite(pin7d, HIGH);
    displ = displ - 10000;
  }
  if(displ >= 1000) {
    digitalWrite(pin7e, HIGH);
    displ = displ - 1000;
  }
  if(displ >= 100) {
    digitalWrite(pin7f, HIGH);
    displ = displ - 100;
  }
if(displ >= 10) {
    digitalWrite(pin7g, HIGH);
    displ =displ - 10;
  }
  if(displ > 0) {
    digitalWrite(pin7h, HIGH);
  }
}

void a() {
  seg7led(11101110);
dit();
dah();
delay(PAUSE);
}

void b() {
  seg7led(111110);
dah();
dit();
dit();
dit();
delay(PAUSE);
}

void c() {
  seg7led(11010);
dah();
dit();
dah();
dit();
}

void d() {
  seg7led(1111010);
dah();
dit();
dit();
}

void e() {
  seg7led(10011110);
dit();
}

void f() {
  seg7led(10001110);
dit();
dit();
dah();
dit();
delay(PAUSE);
}

void g() {
  seg7led(11110110);
dah();
dah();
dit();
delay(PAUSE);
}

void h() {
  seg7led(101110);
for(int I=0; I < 4; I++) {
    dit();
   }
delay(PAUSE);
}

void I() {
  seg7led(1000);
dit();
dit();
delay(PAUSE);
}

void jay() {
  seg7led(1111000);
dit();
dah();
dah();
dah();
delay(PAUSE);
}

void k() {
  long int kk = 1101111;
  seg7led(kk);
dah();
dit();
dah();
delay(PAUSE);
}

void l() {
  seg7led(11100);
dit();
dah();
dit();
dit();
delay(PAUSE);
}

void m() {
  seg7led(11101100);
dah();
dah();
delay(PAUSE);
}

void n() {
  long int kk=101010;
  seg7led(kk);
dah();
dit();
delay(PAUSE);
}

void o() {
  long int kk=111010;
  seg7led(kk);
for(int I=0; I < 3; I++) {
    dah();
   }
delay(PAUSE);
}

void p() {
  seg7led(11001110);
dit();
dah();
dah();
dit();
delay(PAUSE);
}

void q() {
  seg7led(11111101);
dah();
dah();
dit();
dah();
delay(PAUSE);
}

void r() {
  seg7led(1010);
dit();
dah();
dit();
delay(PAUSE);
}

void s() {
  seg7led(10110110);
for(int I=0; I < 3 ; I++) {
    dit();
   }
delay(PAUSE);
}

void t() {
  long int tt=11110;
  seg7led(tt);
  dah();
  delay(PAUSE);
}

void u() {
  seg7led(111000);
dit();
dit();
dah();
  delay(PAUSE);
}

void v() {
  seg7led(1111100);
dit();
dit();
dit();
dah();
  delay(PAUSE);
}

void w() {
  seg7led(111001);
dit();
dah();
dah();
  delay(PAUSE);
}

void x() {
  seg7led(1101110);
dah();
dit();
dit();
dah();
  delay(PAUSE);
}

void y() {
  seg7led(1001110);
dah();
dit();
dah();
dah();
  delay(PAUSE);
}

void z() {
  seg7led(11011010);
dah();
dah();
dit();
dit();
delay(PAUSE);
}

void n0() {
seg7led(11111100);
for(int I=0; I < 5; I++) {
    dah();
   }
delay(PAUSE);
}

void n1() {
  seg7led(1100000);
dit();
for(int I=0; I < 4; I++) {
    dah();
   }
delay(PAUSE);
}

void n2() {
  seg7led(11011010);
  dit();
dit();
for(int I=0; I < 3; I++) {
    dah();
   }
delay(PAUSE);
}

void n3() {
  seg7led(11110010);
for(int I=0; I < 3 ; I++) {
    dit();
   }
dah();
dah();
    delay(PAUSE);
}

void n4() {
   seg7led(1100110); 
for(int I=0; I < 4 ; I++) {
    dit();
  }
dah();
delay(PAUSE);
}

void n5() {
   seg7led(10110110);
for(int I=0; I < 5 ; I++) {
    dit();
   }
delay(PAUSE);
}

void n6() {
   digitalWrite(pin7a, HIGH); digitalWrite(pin7c, HIGH); digitalWrite(pin7d, HIGH);
    digitalWrite(pin7e, HIGH); digitalWrite(pin7f, HIGH); digitalWrite(pin7g, HIGH);
dah();
for(int I=0; I < 4 ; I++) {
    dit();
   }
delay(PAUSE);
}

void n7() {
   digitalWrite(pin7a, HIGH); digitalWrite(pin7c, HIGH); digitalWrite(pin7b, HIGH);
for(int I=0; I < 2; I++) {
    dah();
   }
for(int I=0; I < 3 ; I++) {
    dit();
   }
delay(PAUSE);
}

void n8() {
  for(int kk=2; kk<9; kk++) {digitalWrite(kk, HIGH); }
for(int I=0; I < 3; I++) {
    dah();
   }
for(int I=0; I < 2 ; I++) {
    dit();
   }
delay(PAUSE);
}

void n9() {
  seg7led(11100110);
for(int I=0; I < 4; I++) {
    dah();
   }
dit();
  delay(PAUSE);
}

void dash() { // -....-
seg7led( 10);
dah();
for(int I=0; I < 4 ; I++) {
    dit();
   }
dah();
delay(PAUSE);
}

void perid() {
  seg7led(1);
for(int I=0; I < 3 ; I++) {
    dit();
    dah();
   }
delay(PAUSE);
}

void questi() {
  seg7led(11001011);
dit();
dit();
dah();
dah();
dit();
dit();
delay(PAUSE);
}

void coma() { // --..--
seg7led( 1);
for(int I=0; I < 2 ; I++) {
    dah();
   }
for(int I=0; I < 2 ; I++) {
    dit();
  }
for(int I=0; I < 2 ; I++) {
    dah();
}
delay(PAUSE);
}

void exclim() {
  seg7led(1100001);
  dit();
dit();
dah();
dah();
dit();
delay(PAUSE);
}

void colon() {
dah();
n7();
}

void equal() {
  seg7led(10000010);
dah();
dit();
dit();
dit();
dah();
  delay(PAUSE);
}


I'll try and add YouTube of it working tomorrow
Carlton
Robosapien
 
Posts: 174
Joined: Sun Jan 10, 2010 8:55 pm
Location: hazelwood or Tenn


Return to Software

Who is online

Users browsing this forum: No registered users and 1 guest

cron