Stop Program looping


hi

this first time @ trying program anything.

i have arduino duemilanove board.

i trying board switch on or off 8 relays.

i have modified code have found on internet , able switch 8 relays on , off ok. problem having command being repeated relay switching on , off.

what want pulse switch relay on 1 second switch relay off , wait next command.

here code using.

code: [select]
char val;         // variable receive data serial port
int ledpin = 2;  // led connected pin 2 9 (on-board led)

void setup()
{
 pinmode(ledpin = 2, output);  // pin 2 (on-board led) output
 pinmode(ledpin = 3, output);  // pin 3 (on-board led) output
 pinmode(ledpin = 4, output);  // pin 4 (on-board led) output
 pinmode(ledpin = 5, output);  // pin 5 (on-board led) output
 pinmode(ledpin = 6, output);  // pin 6 (on-board led) output
 pinmode(ledpin = 7, output);  // pin 7 (on-board led) output
 pinmode(ledpin = 8, output);  // pin 8 (on-board led) output
 pinmode(ledpin = 9, output);  // pin 9 (on-board led) output
 serial.begin(9600);       // start serial communication @ 9600bps
 serial.println("press 1 - 9 toggle relay on/off");
}

void loop() {
 if( serial.available() )       // if data available read
 {
   val = serial.read();         // read , store in 'val'
 }
 if( val == '2' )               // if '2' received
 {
   digitalwrite(ledpin = 2, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 2 on");
   digitalwrite(ledpin, low);    // sets led off
   
 }
if( val == '3' )               // if '3' received
{
   digitalwrite(ledpin = 3, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 3 on");
   digitalwrite(ledpin, low);    // sets led off
 }
 if( val == '4' )               // if '4' received
 {
   digitalwrite(ledpin = 4, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 4 on");
   digitalwrite(ledpin, low);    // sets led off
 }
 if( val == '5' )               // if '5' received
 {
   digitalwrite(ledpin = 5, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 5 on");
   digitalwrite(ledpin, low);    // sets led off
 }
 if( val == '6' )               // if '6' received
 {
   digitalwrite(ledpin = 6, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 6 on");
   digitalwrite(ledpin, low);    // sets led off
 }
 if( val == '7' )               // if '7' received
{
   digitalwrite(ledpin = 7, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 7 on");
   digitalwrite(ledpin, low);    // sets led off
 }
 if( val == '8' )               // if '8' received
 {
   digitalwrite(ledpin = 8, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 8 on");
   digitalwrite(ledpin, low);    // sets led off
 }
 if( val == '9' )               // if '9' received
 {
   digitalwrite(ledpin = 9, high);  // turn on led
   delay(1000);                  // waits second
   serial.println("relay 9 on");
   digitalwrite(ledpin, low);    // sets led off
 }
}


please can tell me i'm going wrong.

simon

once you've processed valid "command" using val, can set val "do nothing" value until there's more input available.

or can move "}" put right after serial.read() call.  move end of if statements.  this check val after read, not on every loop.


Arduino Forum > Forum 2005-2010 (read only) > Software > Syntax & Programs > Stop Program looping


arduino

Comments

Popular posts from this blog

CAN'T INSTALL MAMBELFISH 1.5 FROM DIRECTORY - Joomla! Forum - community, help and support

error: expected initializer before 'void'

CPU load monitoring using GPIO and leds - Raspberry Pi Forums