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.
please can tell me i'm going wrong.
simon
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.
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
Post a Comment