what did it say about 9 and 10? my previous post was the wrong code.
for refresher for anyone else viewing this is the code in question
//bubo
#include <Servo.h>
#include <LedFader.h>
// pin assignments
const byte eyemotor = 1;
const byte redled = 10; //pwm
const byte blueled = 9; //pwm
Servo headservo;
Servo legservo;
Servo wingservo;
int solenoid = 2;
// Faders pin min max millis on? stop?
LedFader redledFader (redled, 0, 40, 1000, false, true);
LedFader blueledFader (blueled, 0, 40, 1000, false, true);
typedef enum
{
initialState,
wantstate1, //use for state ransomiser
wantstate2,
wantstate3,
wantstate4, //use for state ransomiser
wantstate5,
wantstate6, //use for state ransomiser
wantstate7,
wantstate8,
wantstate9,
wantstate10,
wantstate11, //use for state ransomiser
wantstate12, //use for state ransomiser
wantstate13,
wantstate14,
wantstate15,
wantstate16,
wantstate17, //use for state ransomiser
wantstate18,
wantstate19,
wantstate20,
wantstate21, //use for state ransomiser
wantstate22,
wantstate23, //use for state ransomiser
} states;
states state = initialState;
unsigned long lastStateChange = 0;
unsigned long timeInThisState = 5;
int pos = 0;
int myRandomStates[9] = {wantstate1, wantstate4, wantstate5, wantstate7, wantstate12, wantstate11, wantstate17, wantstate21, wantstate23};
int randomPickedState = myRandomStates[random(8)];
void setup ()
{
pinMode (solenoid, OUTPUT);
pinMode (eyemotor, OUTPUT);
headservo.attach(3); //pwm
wingservo.attach(5); //pwm
legservo.attach(6); //pwm
redledFader.begin ();
blueledFader.begin ();
}
void doStateChange ()
{
lastStateChange = millis ();
timeInThisState = 5;
switch (state)
{
case initialState:
state = wantstate1;
break;
case wantstate1:
redledFader.off ();
blueledFader.on ();
state = randomPickedState;
timeInThisState = 1000;
break;
case wantstate2:
for (pos = 0; pos <= 70; pos +=1) {
headservo.write(pos);}
state = wantstate3;
timeInThisState = random (1000-3000);
break;
case wantstate3:
for (pos = 70; pos >= -70; pos -=1) {
headservo.write(pos);}
state = wantstate4;
timeInThisState = random (1000 - 3000);
break;
case wantstate4:
for (pos = -70; pos <= 0; pos +=1){
headservo.write(pos);}
state = randomPickedState;
timeInThisState = 300;
break;
case wantstate5:
digitalWrite (eyemotor, HIGH);
state = wantstate6;
timeInThisState = random (5000 - 8000);
break;
case wantstate6:
digitalWrite (eyemotor, LOW);
state = randomPickedState;
timeInThisState = 500;
break;
case wantstate7:
digitalWrite (solenoid, HIGH);
state = wantstate8;
timeInThisState = 300;
break;
case wantstate8:
digitalWrite (solenoid, LOW);
state = wantstate9;
timeInThisState = random (1000-3000);
break;
case wantstate9:
digitalWrite (solenoid, HIGH);
state = wantstate10;
timeInThisState = 300;
break;
case wantstate10:
digitalWrite (solenoid, LOW);
state = randomPickedState;
timeInThisState = random (1000-3000);
break;
case wantstate11:
digitalWrite (solenoid, HIGH);
state = wantstate12;
timeInThisState = 300;
break;
case wantstate12:
digitalWrite (solenoid, LOW);
state = randomPickedState;
timeInThisState = random (8000-30000);
break;
case wantstate13:
for (pos = 0; pos <= 30; pos +=1) {
wingservo.write(pos);}
state = wantstate14;
timeInThisState = 300;
break;
case wantstate14:
for (pos = 30; pos >= 0; pos -=1) {
wingservo.write(pos);}
state = wantstate15;
timeInThisState = 300;
break;
case wantstate15:
for (pos = 0; pos <= 30; pos +=1) {
wingservo.write(pos);}
state = wantstate16;
timeInThisState = 300;
break;
case wantstate16:
for (pos = 30; pos >= 0; pos -=1) {
wingservo.write(pos);}
state = randomPickedState;
timeInThisState = 300;
break;
case wantstate17:
for (pos = 0; pos <= 30; pos +=1) {
wingservo.write(pos);}
state = wantstate18;
timeInThisState = 300;
break;
case wantstate18:
for (pos = 30; pos >= 0; pos -=1) {
wingservo.write(pos);}
state = wantstate19;
timeInThisState = 300;
break;
case wantstate19:
for (pos = 0; pos <= 20; pos +=1) {
legservo.write(pos);}
state = wantstate20;
timeInThisState = 300;
break;
case wantstate20:
for (pos = 20; pos >=0; pos -=1) {
legservo.write(pos);}
state = randomPickedState;
timeInThisState = random (2000-5000);
break;
case wantstate21:
for (pos = 0; pos <= 20; pos +=1) {
legservo.write(pos);}
state = wantstate22;
timeInThisState = 300;
break;
case wantstate22:
for (pos = 20; pos >=0; pos -=1) {
legservo.write(pos);}
state = wantstate23;
timeInThisState = random (20000-120000);
break;
case wantstate23:
blueledFader.off ();
redledFader.on ();
state = randomPickedState;
timeInThisState = 1000;
break;
}
}
void loop ()
{
if (millis () - lastStateChange >= timeInThisState)
doStateChange ();
redledFader.update ();
blueledFader.update ();
}