Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ReedSwitchPin A4 //Input Pin für den Reset der analogen Uhr
- int LedOutputPin=1; //Outputpin startpunk (pin 2)
- unsigned long PeriodLength =900000; //in Milliseconds
- int LedAmount = 16; //Anzahl der LEDs
- int ReedSwitchInput; //Variable um den button input zu speichern
- unsigned long PreviousMillis=0;
- unsigned long Millis; //Momentane interne Zeit.
- int LauflichtGeschwindigkeit=100; //in Millisenconds
- int Counter =0; //Counter des Lauflichts
- unsigned long PreviousMillisLL =0; // PreviousMillisLauflicht;
- int LauflichtCounter=0;
- int LauflichtWiederholungen= 3;
- int LauflichtStartpunkt = 4;
- void setup() {
- Serial.begin(9600);
- Serial.println("Init...");
- for(int i=0;i<=LedAmount; i++){
- LedOutputPin++;
- //Serial.println(LedOutputPin);
- pinMode(LedOutputPin, OUTPUT);
- }
- pinMode(ReedSwitchPin, INPUT);
- LedOutputPin=2;
- }
- void loop() {
- Millis = millis();
- digitalWrite(LedOutputPin, HIGH);
- if(Millis-PreviousMillis >= PeriodLength/LedAmount){
- digitalWrite(LedOutputPin, LOW);
- if(LedOutputPin >= LedAmount+1){ //reset bei 16
- LedOutputPin=2;
- }
- else{
- LedOutputPin++; //nächste LED
- LauflichtCounter=LauflichtWiederholungen; //Lauflicht starten
- }
- PreviousMillis = Millis;
- /*Serial.print("LED: ");
- Serial.println(LedOutputPin);*/
- }
- else{
- if(LedOutputPin>=LauflichtStartpunkt){
- if(LauflichtCounter<=LauflichtWiederholungen && LauflichtCounter >0){
- Lauflicht();
- }
- }
- ReedSwitchInput = digitalRead(ReedSwitchPin);
- if(ReedSwitchInput==HIGH){
- for(int i=0;i<LedAmount+1; i++){
- digitalWrite(i,LOW);
- }
- LedOutputPin =2;
- digitalWrite(LedOutputPin, HIGH);
- ReedSwitchInput =0;
- }
- }
- }
- void Lauflicht(){
- if(Millis-PreviousMillisLL >= LauflichtGeschwindigkeit){
- //Serial.println(PreviousMillisLL);
- Counter ++;
- /*Serial.print("Counter: ");
- Serial.println(Counter);*/
- digitalWrite(Counter,HIGH);
- if(Counter >= LedOutputPin){
- Counter = 0;
- LauflichtCounter--;
- for(int i=0;i<LedOutputPin; i++){
- digitalWrite(i,LOW);
- }
- if(LedOutputPin==2){ //notwendig um beim reset alle LEDs aus zu machen
- for(int i=0;i<LedAmount; i++){
- digitalWrite(i,LOW);
- }
- }
- }
- PreviousMillisLL = Millis;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement