Skip to content

Commit 8da7df1

Browse files
committed
Initial commit
1 parent 6b0cb3c commit 8da7df1

File tree

4 files changed

+204
-0
lines changed

4 files changed

+204
-0
lines changed

LEDChaser.cpp

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
#include "LEDChaser.h"
2+
3+
LEDChaser::LEDChaser(void) {
4+
for (int i = 0; i <= 10; i++) {
5+
pinMode(LEDpin(i), OUTPUT);
6+
LEDaus(i);
7+
}
8+
pinMode(P1D, INPUT);
9+
pinMode(S1, INPUT);
10+
digitalWrite(S1, HIGH);
11+
}
12+
void LEDChaser::LEDan(uint8_t led) {
13+
digitalWrite(LEDpin(led), AN);
14+
}
15+
void LEDChaser::LEDaus(uint8_t led) {
16+
digitalWrite(LEDpin(led), AUS);
17+
}
18+
void LEDChaser::LED(uint8_t led, boolean onoff) {
19+
digitalWrite(LEDpin(led), onoff);
20+
}
21+
boolean LEDChaser::LED(uint8_t led) {
22+
return digitalRead(LEDpin(led));
23+
}
24+
boolean LEDChaser::taster() {
25+
return !digitalRead(S1);
26+
}
27+
void LEDChaser::entprellen() {
28+
while (taster()) {
29+
delay(10);
30+
}
31+
}
32+
uint16_t LEDChaser::poti() {
33+
return analogRead(P1A);
34+
}
35+
uint8_t LEDChaser::LEDpin(uint8_t led) {
36+
switch(led) {
37+
case 1: return LD1;
38+
case 2: return LD2;
39+
case 3: return LD3;
40+
case 4: return LD4;
41+
case 5: return LD5;
42+
case 6: return LD6;
43+
case 7: return LD7;
44+
case 8: return LD8;
45+
case 9: return LD9;
46+
case 10: return LD10;
47+
default: return LED_BUILTIN;
48+
}
49+
}
50+
51+
LEDChaser Chaser = LEDChaser();

LEDChaser.h

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
#ifndef LEDCHASER_H
2+
#define LEDCHASER_H
3+
4+
#if ARDUINO >= 100
5+
#include "Arduino.h"
6+
#else
7+
#include "WProgram.h"
8+
#endif
9+
10+
#define LD1 3
11+
#define LD2 4
12+
#define LD3 5
13+
#define LD4 6
14+
#define LD5 7
15+
#define LD6 8
16+
#define LD7 9
17+
#define LD8 10
18+
#define LD9 11
19+
#define LD10 12
20+
#define P1D A0
21+
#define P1A 0
22+
#define P1 P1A
23+
#define S1 2
24+
#define AN LOW
25+
#define AUS HIGH
26+
27+
class LEDChaser {
28+
private:
29+
30+
public:
31+
LEDChaser();
32+
void
33+
LEDan(uint8_t led),
34+
LEDaus(uint8_t led),
35+
LED(uint8_t led, boolean onoff),
36+
entprellen();
37+
boolean
38+
taster(),
39+
LED(uint8_t);
40+
uint16_t
41+
poti();
42+
uint8_t
43+
LEDpin(uint8_t led);
44+
};
45+
extern LEDChaser Chaser;
46+
47+
#endif //LEDCHASER_H

examples/test/test.ino

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
#include <LEDChaser.h>
2+
#define MAX_MODI 6
3+
4+
char modus = 0;
5+
int frame = 0;
6+
7+
void setup() {
8+
//Nichts zu tun hier.
9+
}
10+
11+
void loop() {
12+
if (Chaser.taster()) {
13+
modus = (modus + 1) % MAX_MODI;
14+
Chaser.entprellen();
15+
}
16+
if (modus == 0) {
17+
//Fuellender und leerender Kreis
18+
frame = (frame + 1) % 40;
19+
if (frame < 20) {
20+
for (int i = 0; i < frame % 10; i++) {
21+
Chaser.LED(mittig(i), frame < 10);
22+
}
23+
for (int i = frame % 10; i < 10; i++) {
24+
Chaser.LED(mittig(i), frame >= 10);
25+
}
26+
} else {
27+
for (int i = 0; i < frame % 10; i++) {
28+
Chaser.LED(mittig(9 - i), frame < 30);
29+
}
30+
for (int i = frame % 10; i < 10; i++) {
31+
Chaser.LED(mittig(9 - i), frame >= 30);
32+
}
33+
}
34+
analogDelay(100);
35+
} else if (modus == 1) {
36+
//LEDs abwechselnd an (jede Zweite)
37+
frame = (frame + 1) % 2;
38+
for (int i = 0; i < 10; i++) {
39+
Chaser.LED(i + 1, (i + frame) % 2 == 0);
40+
}
41+
analogDelay(100);
42+
} else if (modus == 2) {
43+
//zwei LEDs im Uhrzeigersinn
44+
frame = (frame + 1) % 5;
45+
for (int i = 0; i < 10; i++) {
46+
Chaser.LED(i + 1, (i + frame) % 5 != 0);
47+
}
48+
analogDelay(100);
49+
} else if (modus == 3) {
50+
//zwei LEDs rotierend entgegen des Uhrzeigersinns
51+
frame = (frame + 4) % 5;
52+
for (int i = 0; i < 10; i++) {
53+
Chaser.LED(i + 1, (i + frame) % 5 != 0);
54+
}
55+
analogDelay(100);
56+
} else if (modus == 4) {
57+
//eine LED entgegen des Uhrzeigersinns
58+
frame = (frame + 9) % 10;
59+
for (int i = 0; i < 10; i++) {
60+
Chaser.LED(i + 1, (i + frame) % 10 != 0);
61+
}
62+
analogDelay(100);
63+
} else if (modus == 5) {
64+
//US-Polizei
65+
frame = (frame + 1) % 10;
66+
boolean an = (frame % 5) % 2;
67+
for (int i = 0; i < 10; i++) {
68+
Chaser.LED(mittig(i), ! (an && (i < 5 == frame < 5)));
69+
}
70+
analogDelay(50);
71+
}
72+
}
73+
74+
int mittig(int led) {
75+
//gegen Uhrzeigersinn, rechts neben USB beginnend
76+
return (led + 8) % 10 + 1;
77+
}
78+
79+
void analogDelay(unsigned int faktor) {
80+
delay(faktor * 10 / map(Chaser.poti(), 0, 1024, 30, 1));
81+
}

keywords.txt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
LD1 KEYWORD1
2+
LD2 KEYWORD1
3+
LD3 KEYWORD1
4+
LD4 KEYWORD1
5+
LD5 KEYWORD1
6+
LD6 KEYWORD1
7+
LD7 KEYWORD1
8+
LD8 KEYWORD1
9+
LD9 KEYWORD1
10+
LD10 KEYWORD1
11+
AN KEYWORD1
12+
AUS KEYWORD1
13+
P1A KEYWORD1
14+
P1D KEYWORD1
15+
P1 KEYWORD1
16+
S1 KEYWORD1
17+
18+
Chaser KEYWORD1
19+
LEDan KEYWORD2
20+
LEDaus KEYWORD2
21+
LED KEYWORD2
22+
entprellen KEYWORD2
23+
taster KEYWORD2
24+
poti KEYWORD2
25+
LEDpin KEYWORD2

0 commit comments

Comments
 (0)