Doc112
11.02.2016, 11:30
Hier möchte ich euch meinen Selbstbau eines Fahrradblaulichtes vorstellen. Ich hab es aus Lagerteilen als Geburtstagsgeschenk für meine 7-jähriges Partenkind gebaut. Kosten: 3 Euro für Ardoino pro min, 1,99 Euro für die Rohrschelle.
<iframe src="https://www.youtube.com/embed/Re-ZJQxNveo?rel=0" allowfullscreen="" width="853" frameborder="0" height="480"></iframe>
Teileliste:
- Arduino nano bzw. pro mini
- Hänsch Movia Haube blau
- 3x Hochleistungs LEDs
- 3x Metallwinkel
- NPN Transistor
- 9V Blockbaterie mit Kontaktkabel
- Schiebeschalter und Taster
- Sperholzplatte
- Rohrschelle
Über den Taster können die 11 unterschiedlichen Blitzmodi gewählt werden.
//Fahrrad-Blaulicht by Doc112
//Blitzmuster von Hella K-LED FO und RTK7
const int buttonPin = 2;
int rate= 1;
int reset= 100;
int timer = 0;
int buttonState = 0;
int counter = 1;
int buttonStateHIGH = 0;
int blau = 13; //PWN
int sensorPin = A7;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(blau, OUTPUT);
}
void loop(){
timer++; //timer erhöhen
delay(rate); //Geschwindigkeit timer
if (timer == reset) //Reset
timer = 0;
// sensorValue = analogRead(sensorPin); //Poti auslesen
// rate = map(sensorValue, 0, 1023, 0, 100); //Bereich Sensor u Rate festlegen
// analogWrite(gelb, rate); //Ausgabe zur Kontrolle
buttonState = digitalRead(buttonPin); //Modiwahl durch Taster
if (buttonState == HIGH)
{
buttonStateHIGH = 1;
}
if (buttonState == LOW && buttonStateHIGH == 1)
{
counter++; //Modi hochzählen
buttonStateHIGH = 0;
}
if (counter == 12) //Modi zurücksetzen (letzter Modi + 1)
{
counter = 0;
}
Serial.print("ti= " ); //Ausgabe timer-Wert
Serial.println(timer);
Serial.print("\t mo= "); //Ausgabe modi-Wert
Serial.println(counter);
if (counter == 0) //Modus 0
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 20:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 1) //Modus 1
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 11:
digitalWrite(blau, LOW);
break;
case 14:
digitalWrite(blau, HIGH);
break;
case 17:
digitalWrite(blau, LOW);
break;
case 20:
digitalWrite(blau, HIGH);
break;
case 23:
digitalWrite(blau, LOW);
break;
case 26:
digitalWrite(blau, HIGH);
break;
case 29:
digitalWrite(blau, LOW);
break;
case 40:
timer = 0;
default:
;
}
}
if (counter == 2) //Modus 2 RTK7 Tag
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 17:
digitalWrite(blau, LOW);
break;
case 22:
digitalWrite(blau, HIGH);
break;
case 38:
digitalWrite(blau, LOW);
break;
case 97:
timer = 0;
default:
;
}
}
if (counter == 3) //Modus 3 RTK7 Nacht
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 5:
digitalWrite(blau, LOW);
break;
case 12:
digitalWrite(blau, HIGH);
break;
case 16:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 4) //Modus 4
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 20:
digitalWrite(blau, LOW);
break;
case 27:
digitalWrite(blau, HIGH);
break;
case 32:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 5) //Modus 5
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 7:
digitalWrite(blau, LOW);
break;
case 14:
digitalWrite(blau, HIGH);
break;
case 21:
digitalWrite(blau, LOW);
break;
case 28:
digitalWrite(blau, HIGH);
break;
case 35:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 6) //Modus 6
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 5:
digitalWrite(blau, LOW);
break;
case 8:
digitalWrite(blau, HIGH);
break;
case 13:
digitalWrite(blau, LOW);
break;
case 16:
digitalWrite(blau, HIGH);
break;
case 21:
digitalWrite(blau, LOW);
break;
case 24:
digitalWrite(blau, HIGH);
break;
case 29:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 7) //Modus 7
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 55:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 6) //Modus 6
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 25:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 8) //Modus 8
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 13:
digitalWrite(blau, LOW);
break;
case 25:
digitalWrite(blau, HIGH);
break;
case 75:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 9) //Modus 9
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 13:
digitalWrite(blau, LOW);
break;
case 25:
digitalWrite(blau, HIGH);
break;
case 75:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 10) //Modus 10
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 11:
digitalWrite(blau, LOW);
break;
case 18:
digitalWrite(blau, HIGH);
break;
case 25:
digitalWrite(blau, LOW);
break;
case 32:
digitalWrite(blau, HIGH);
break;
case 39:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 11) //Modus 11
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 6:
digitalWrite(blau, LOW);
break;
case 12:
digitalWrite(blau, HIGH);
break;
case 18:
digitalWrite(blau, LOW);
break;
case 24:
digitalWrite(blau, HIGH);
break;
case 30:
digitalWrite(blau, LOW);
break;
case 36:
digitalWrite(blau, HIGH);
break;
case 42:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
}
<iframe src="https://www.youtube.com/embed/Re-ZJQxNveo?rel=0" allowfullscreen="" width="853" frameborder="0" height="480"></iframe>
Teileliste:
- Arduino nano bzw. pro mini
- Hänsch Movia Haube blau
- 3x Hochleistungs LEDs
- 3x Metallwinkel
- NPN Transistor
- 9V Blockbaterie mit Kontaktkabel
- Schiebeschalter und Taster
- Sperholzplatte
- Rohrschelle
Über den Taster können die 11 unterschiedlichen Blitzmodi gewählt werden.
//Fahrrad-Blaulicht by Doc112
//Blitzmuster von Hella K-LED FO und RTK7
const int buttonPin = 2;
int rate= 1;
int reset= 100;
int timer = 0;
int buttonState = 0;
int counter = 1;
int buttonStateHIGH = 0;
int blau = 13; //PWN
int sensorPin = A7;
int sensorValue = 0;
void setup() {
Serial.begin(9600);
pinMode(buttonPin, INPUT_PULLUP);
pinMode(blau, OUTPUT);
}
void loop(){
timer++; //timer erhöhen
delay(rate); //Geschwindigkeit timer
if (timer == reset) //Reset
timer = 0;
// sensorValue = analogRead(sensorPin); //Poti auslesen
// rate = map(sensorValue, 0, 1023, 0, 100); //Bereich Sensor u Rate festlegen
// analogWrite(gelb, rate); //Ausgabe zur Kontrolle
buttonState = digitalRead(buttonPin); //Modiwahl durch Taster
if (buttonState == HIGH)
{
buttonStateHIGH = 1;
}
if (buttonState == LOW && buttonStateHIGH == 1)
{
counter++; //Modi hochzählen
buttonStateHIGH = 0;
}
if (counter == 12) //Modi zurücksetzen (letzter Modi + 1)
{
counter = 0;
}
Serial.print("ti= " ); //Ausgabe timer-Wert
Serial.println(timer);
Serial.print("\t mo= "); //Ausgabe modi-Wert
Serial.println(counter);
if (counter == 0) //Modus 0
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 20:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 1) //Modus 1
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 11:
digitalWrite(blau, LOW);
break;
case 14:
digitalWrite(blau, HIGH);
break;
case 17:
digitalWrite(blau, LOW);
break;
case 20:
digitalWrite(blau, HIGH);
break;
case 23:
digitalWrite(blau, LOW);
break;
case 26:
digitalWrite(blau, HIGH);
break;
case 29:
digitalWrite(blau, LOW);
break;
case 40:
timer = 0;
default:
;
}
}
if (counter == 2) //Modus 2 RTK7 Tag
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 17:
digitalWrite(blau, LOW);
break;
case 22:
digitalWrite(blau, HIGH);
break;
case 38:
digitalWrite(blau, LOW);
break;
case 97:
timer = 0;
default:
;
}
}
if (counter == 3) //Modus 3 RTK7 Nacht
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 5:
digitalWrite(blau, LOW);
break;
case 12:
digitalWrite(blau, HIGH);
break;
case 16:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 4) //Modus 4
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 20:
digitalWrite(blau, LOW);
break;
case 27:
digitalWrite(blau, HIGH);
break;
case 32:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 5) //Modus 5
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 7:
digitalWrite(blau, LOW);
break;
case 14:
digitalWrite(blau, HIGH);
break;
case 21:
digitalWrite(blau, LOW);
break;
case 28:
digitalWrite(blau, HIGH);
break;
case 35:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 6) //Modus 6
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 5:
digitalWrite(blau, LOW);
break;
case 8:
digitalWrite(blau, HIGH);
break;
case 13:
digitalWrite(blau, LOW);
break;
case 16:
digitalWrite(blau, HIGH);
break;
case 21:
digitalWrite(blau, LOW);
break;
case 24:
digitalWrite(blau, HIGH);
break;
case 29:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 7) //Modus 7
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 55:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 6) //Modus 6
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 25:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 8) //Modus 8
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 13:
digitalWrite(blau, LOW);
break;
case 25:
digitalWrite(blau, HIGH);
break;
case 75:
digitalWrite(blau, LOW);
break;
case 55:
timer = 0;
default:
;
}
}
if (counter == 9) //Modus 9
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 13:
digitalWrite(blau, LOW);
break;
case 25:
digitalWrite(blau, HIGH);
break;
case 75:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 10) //Modus 10
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 11:
digitalWrite(blau, LOW);
break;
case 18:
digitalWrite(blau, HIGH);
break;
case 25:
digitalWrite(blau, LOW);
break;
case 32:
digitalWrite(blau, HIGH);
break;
case 39:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
if (counter == 11) //Modus 11
{
switch (timer) {
case 1:
digitalWrite(blau, HIGH);
break;
case 6:
digitalWrite(blau, LOW);
break;
case 12:
digitalWrite(blau, HIGH);
break;
case 18:
digitalWrite(blau, LOW);
break;
case 24:
digitalWrite(blau, HIGH);
break;
case 30:
digitalWrite(blau, LOW);
break;
case 36:
digitalWrite(blau, HIGH);
break;
case 42:
digitalWrite(blau, LOW);
break;
case 100:
timer = 0;
default:
;
}
}
}