Einzelnen Beitrag anzeigen
Alt 11.02.2016, 11:30   #1
Doc112

Silber-Mitglied
 
Benutzerbild von Doc112
 
Name: Johannes
Registriert seit: 21.10.2011
Ort: Bad Krozingen
Beiträge: 1.219
Standard 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
Doc112 ist offline   Privat Nachricht senden Mit Zitat antworten