5 program 12V LED lampor Organ (3 / 4 steg)
Steg 3: kod
"Program" matrisen innehålla pre programmerat program.
"Index" heltal poäng för den aktuella platsen på matrisen program.
"ledin" peka för nuvarande led ljus.
"progSelect" håller den valda programnummer (börjar på 0)
För att lägga till fler program kommer att du behöva öka arrayen program därför
att ändra raden "om (progSelect > 4)" att antalet program minus ett.
#define selector 6
#define speedSel A0
#define led1 2
#define led2 3
#define led3 4
#define led4 5
int lysdioder [4] = {led1 led2, led3, led4};
int progSelect = 0;
Boolean program [80] = {1,1,1,1,
0,0,0,0,
1,1,1,1,
0,0,0,0,
1,0,0,0,
0,1,0,0,
0,0,1,0,
0,0,0,1,
1,0,1,0,
0,1,0,1,
1,0,1,0,
0,1,0,1,
1,1,0,0,
0,0,1,1,
1,1,0,0,
0,0,1,1,
1,0,0,1,
0,1,1,0,
0,0,0,0,
0,1,1,0}.
int cykel [4], nextCycle [4].
int ledin, index.
void setup() {
pinMode (selector, ingång);
pinMode (speedSel, ingång);
pinMode (led1, produktionen);
pinMode (led2, produktionen);
pinMode (led3, produktionen);
pinMode (led4, produktionen);
Serial.BEGIN (9600);
}
void loop() {
för (index = pStart(progSelect); index < = pEnd (progSelect); index = index + 4) {
för (ledin = 0; ledin < = 3; ledin ++) {
Serial.println (progSelect);
om (digitalRead (selector)) {
fördröjning (200);
progSelect ++;
om (progSelect > 4) {
progSelect = 0;
}
}
digitalWrite (led1, programs[index]);
digitalWrite (led2, program [index + 1]);
digitalWrite (led3, program [index + 2]);
digitalWrite (led4, program [index + 3]);
fördröjning (karta (analogRead (speedSel), 1, 1023, 200, 3000));
digitalWrite (lysdioder [ledin], låg);
//}
fördröjning (karta (analogRead (speedSel), 1, 1023, 10, 1000));
}
}
int pStart (int PS) {
returnera PS * 16;
}
int pEnd (int PS) {
returnera PS * 16 + 16-1.
}