|
11.02.2016, 11:30 | #1 |
Silber-Mitglied Name: Johannes
Registriert seit: 21.10.2011
Ort: Bad Krozingen
Beiträge: 1.219
|
Selbstbau Fahrradblaulicht aus Hänsch Movia mit Arduino nano
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.
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. Code:
//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: ; } } } |
Schau mal vorbei: Meine Sammlung Viele Klangcodierungen als Hörprobe.
Suche weitere MP3-Dateien von noch nicht eingefügten Sondersignalen. Bitte via PN melden. DANKE |
|
11.02.2016, 21:24 | #2 |
Silber-Mitglied Name: Matthias
Registriert seit: 25.02.2013
Beiträge: 1.254
|
Coole Sache!
Hab ein bisschen an deinem Code herumgebastelt und eine Memory-Funktion eingebunden, d.h. das zuletzt eingestellte Blitzmuster bleibt nach Abschalten erhalten. Nötige Änderungen im Code: Code:
//Fahrrad-Blaulicht by Doc112 //Blitzmuster von Hella K-LED FO und RTK7 #include < EEPROM.h > Hoffentlich hat das Forum alles übernommen, denn interessanterweise kann ich "#include < EEPROM.h >" ohne die Leerzeichen zwischen den eckigen Klammern nicht schreiben, es verschwindet warum auch immer... |
11.02.2016, 22:31 | #3 | |
Gold-Mitglied Name: Lars
Registriert seit: 07.09.2012
Ort: Erlangen
Beiträge: 2.261
|
Zitat:
Hast du das Projekt schon einmal vorgestellt? Das kommt mir bekannt vor. Aber sonst, sehr tolle Sache, gefällt mir! Eine technische Frage hätte ich allerdings: Wie steuerst du die LED's an? | |
|
||
11.02.2016, 22:59 | #4 | |||
Silber-Mitglied Name: Matthias
Registriert seit: 25.02.2013
Beiträge: 1.254
|
Zitat:
Zitat:
Zitat:
Bei einer VF von ca. 3,3 pro LED und dem internen Widerstand der Batterie hält sich der Strom in erträglichen Grenzen | |||
11.02.2016, 23:12 | #5 | ||
Gold-Mitglied Name: Lars
Registriert seit: 07.09.2012
Ort: Erlangen
Beiträge: 2.261
|
Zitat:
https://de.wikipedia.org/wiki/BBCode Das habe ich nicht gesehen, aber dann bilde ich mir dass doch nicht ein. Zitat:
| ||
|
|||
|
|
Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. |