How do I create a sequence selection Button
hello, ladies , gentlemen. hope create script selects sequence of instructions per button press , after set amount of time executes program. allows me time scroll through sequences. aim of each sequence set different pattern on flasher via pulses.
if it's possible i'd 4 or more selectable sequences allow me other types of flasher.
further this, adding relay selects between ground , vin come when have basic program working intended.
the states in code leds show sequence have selected
here have far:
i'm new coding i'm rather lost @ point, in advance can give
.
if it's possible i'd 4 or more selectable sequences allow me other types of flasher.
further this, adding relay selects between ground , vin come when have basic program working intended.
the states in code leds show sequence have selected
here have far:
code: [select]
int relaypin = 5;
int buttonpin = 11;
int oldbuttonstate = high;
int x = 0;
int state1 = a0;
int state2 = a1;
int state3 = a2;
int state4 = a3;
void setup() {
// put setup code here, run once:
pinmode(relaypin, output);
pinmode(buttonpin, input_pullup);
}
void loop() {
// current state of button
int newbuttonstate = digitalread(buttonpin);
// has button gone high since last read it?
if (newbuttonstate == high && oldbuttonstate == low) {
if (x == 0) {
// sequence 1
digitalwrite(state1, high);
delay(100);
digitalwrite(relaypin, high);
delay(5000);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(state1, low);
delay(100);
x = 1;
} else {
// sequence 2
digitalwrite(state2, high);
delay(100);
digitalwrite(relaypin, high);
delay(5000);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(relaypin, high);
delay(200);
digitalwrite(relaypin, low);
delay(200);
digitalwrite(state2, low);
delay(100);
x = 0;
}
}
// store button's state can tell if it's changed next time round
oldbuttonstate = newbuttonstate;
}
i'm new coding i'm rather lost @ point, in advance can give

wrote single button speed selector, steps each button press , takes current speed if paused 1.5 seconds, might give ideas, sorry, no comments if need them.
code: [select]
uint32_t tstart, timestart, tend;// = 2000ul;
int speeds [] = {0, 50, 100, 200, 400};
int speed;
const byte dbtime = 15, btn = 4, ledpin = 13;
bool btnstate = false, bstate = true, oldbstate = true,
timing = false, speedset = false;
byte cntr;
void setup()
{
serial.begin(115200);
pinmode(btn, input_pullup);
pinmode(ledpin, output);
}
void loop()
{
// debounce-----------------------------
if (digitalread(btn) != btnstate) // different!
{
btnstate ^= 1; // make them equal
timestart = millis(); // restart timer
}
if (millis() - timestart > dbtime) // if not changed dbtime,
bstate = btnstate; // btnstate valid, use it
// end debounce-------------------------
if(!timing && !bstate && oldbstate)
{
tstart = millis();
tend = 1500ul;
cntr = 0;
timing = true;
speedset = true;
}
if(timing && !bstate && oldbstate)
{
if(++cntr > 5)
cntr = 1;
tstart = millis();
serial.println(speeds[cntr - 1]);
oldbstate = bstate;
}
if(millis() - tstart > tend)
{
timing = false;
if(speedset)
{
speed = speeds[cntr - 1];
if(!bstate)
speed = 0;
serial.print("speed set ");
serial.println(speed);
serial.println("press button change");
speedset = false;
}
}
digitalwrite(ledpin,timing);
oldbstate = bstate;
}
Arduino Forum > Using Arduino > Programming Questions > How do I create a sequence selection Button
arduino
Comments
Post a Comment