![]()  | 
		
			
  | 
	|||||||
| Keinen vollen Zugriff auf das Forum? Noch kein Mitglied? Kein Problem... Hier klicken! | Alle Foren als gelesen markieren | 
![]()  | 
	
	
| 
		 | 
	Themen-Optionen | Ansicht | 
| 
			
			 | 
		#1 | 
			
			![]() Silber-Mitglied Name: Johannes 
				Registriert seit: 21.10.2011 
				Ort: Bad Krozingen 
				
				
					Beiträge: 1.219
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			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  | 
|
| 
		 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#2 | 
			
			![]() Silber-Mitglied Name: Matthias 
				Registriert seit: 25.02.2013 
				
				
				
					Beiträge: 1.277
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			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... ![]()  | 
| 
		
 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#3 | |
			
			![]() Gold-Mitglied Name: Lars 
				Registriert seit: 07.09.2012 
				Ort: Erlangen 
				
				
					Beiträge: 2.268
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 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?  | |
| 
		
		
				
 | 
||
| 
		 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#4 | |||
			
			![]() Silber-Mitglied Name: Matthias 
				Registriert seit: 25.02.2013 
				
				
				
					Beiträge: 1.277
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 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  
		 | |||
| 
		
 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#5 | ||
			
			![]() Gold-Mitglied Name: Lars 
				Registriert seit: 07.09.2012 
				Ort: Erlangen 
				
				
					Beiträge: 2.268
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 Zitat: 
	
 ![]() https://de.wikipedia.org/wiki/BBCode Das habe ich nicht gesehen, aber dann bilde ich mir dass doch nicht ein. Zitat: 
	 
		 | ||
| 
		
		
				
 | 
|||
| 
		 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#7 | |
			
			![]() Silber-Mitglied Name: Matthias 
				Registriert seit: 25.02.2013 
				
				
				
					Beiträge: 1.277
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 Zitat: 
	
 - Man kann sogar bis zu 20 LEDs ansteuern, du würdest pro LED noch einen Vorwiderstand oder bei Leistungsstarken LED eine Treiberstufe benötigen. Ist aber alles halb so wild und relativ schnell erledigt  
		 | |
| 
		
 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#8 | 
			
			![]() Bronze-Mitglied Name: Abudun 
				Registriert seit: 30.09.2010 
				Ort: Bayern 
				
				
					Beiträge: 327
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Vielen Dank für die Inspiration! Ich würde eventuell noch eine Funktion für die EEPROM schreiben, die prüft ob das aktuelle Programm schon gespeichert ist und erst nach etwas Zeit das Blitzprogramm in den EEPROM speichert. So wird auch ermöglicht, dass die EEPROM nach 20 Jahren noch speichern kann 
		
		
		
		
  (es können bis zu 100 000 Zyklen geschrieben werden). Ansonsten ist die Arduino-Reihe eine riesen Bereicherung für Selbstbauprojekte. Man kann damit ja auch kleinere Chips wie die Attinys programmieren. 
		 | 
| 
		 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 
			
			 | 
		#9 | 
			
			![]() Bronze-Mitglied Name: Stefan 
				Registriert seit: 19.09.2014 
				Ort: Landkreis Leipzig 
				
				
					Beiträge: 140
				 
				
				
				
				
				 | 
	
	
	
		
		
			
			 
			
			Hier mal mein code auf den anderen Aufbauend mit dem Blitzmuster der Movia D LED (zumindest versucht) und einer Rundumsimulation. 
		
		
		
		
Verbaut war das ganze bei mir in einer Warnleuchte von "GLORIA". Um Platz zu sparren wechselt man zwischen den Mustern durch das erneute einschalten des Arduinos (sprich von Stromquelle trennen und wiederverbinden) Code: 
	#include  | 
| 
		 | 
	
	
	
		
                 		
                
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
| Themen-Optionen | |
| Ansicht | |
		
  | 
	
		 | 
![]()  | 
 
	
	Powered by vBulletin® Version 3.8.11 (Deutsch) 
	
	Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.  | 
![]()  |