Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.37 KB | None | 0 0
  1.  
  2. #define ReedSwitchPin A4  //Input Pin für den Reset der analogen Uhr
  3. int LedOutputPin=1; //Outputpin startpunk (pin 2)
  4. unsigned long PeriodLength =900000;  //in Milliseconds
  5. int LedAmount = 16;   //Anzahl der LEDs
  6. int ReedSwitchInput;  //Variable um den button input zu speichern
  7. unsigned long PreviousMillis=0;
  8. unsigned long Millis; //Momentane interne Zeit.
  9. int LauflichtGeschwindigkeit=100; //in Millisenconds
  10. int Counter =0; //Counter des Lauflichts
  11. unsigned long PreviousMillisLL =0; // PreviousMillisLauflicht;
  12. int LauflichtCounter=0;
  13. int LauflichtWiederholungen= 3;
  14. int LauflichtStartpunkt = 4;
  15.  
  16. void setup() {
  17.   Serial.begin(9600);
  18.   Serial.println("Init...");
  19.   for(int i=0;i<=LedAmount; i++){
  20.     LedOutputPin++;
  21.     //Serial.println(LedOutputPin);
  22.     pinMode(LedOutputPin, OUTPUT);
  23.   }
  24.   pinMode(ReedSwitchPin, INPUT);
  25.   LedOutputPin=2;
  26. }
  27.  
  28. void loop() {
  29.   Millis = millis();
  30.   digitalWrite(LedOutputPin, HIGH);
  31.   if(Millis-PreviousMillis >= PeriodLength/LedAmount){
  32.     digitalWrite(LedOutputPin, LOW);
  33.     if(LedOutputPin >= LedAmount+1){ //reset bei 16
  34.       LedOutputPin=2;
  35.     }
  36.     else{
  37.       LedOutputPin++;     //nächste LED
  38.       LauflichtCounter=LauflichtWiederholungen; //Lauflicht starten
  39.     }
  40.     PreviousMillis = Millis;
  41.     /*Serial.print("LED: ");
  42.     Serial.println(LedOutputPin);*/
  43.   }
  44.   else{
  45.     if(LedOutputPin>=LauflichtStartpunkt){
  46.       if(LauflichtCounter<=LauflichtWiederholungen && LauflichtCounter >0){
  47.         Lauflicht();
  48.       }
  49.     }
  50.     ReedSwitchInput = digitalRead(ReedSwitchPin);
  51.     if(ReedSwitchInput==HIGH){
  52.       for(int i=0;i<LedAmount+1; i++){
  53.         digitalWrite(i,LOW);
  54.         }
  55.       LedOutputPin =2;
  56.       digitalWrite(LedOutputPin, HIGH);
  57.       ReedSwitchInput =0;
  58.     }  
  59.   }
  60. }
  61.  
  62. void Lauflicht(){
  63.   if(Millis-PreviousMillisLL >= LauflichtGeschwindigkeit){
  64.     //Serial.println(PreviousMillisLL);
  65.     Counter ++;
  66.     /*Serial.print("Counter: ");
  67.     Serial.println(Counter);*/
  68.     digitalWrite(Counter,HIGH);
  69.     if(Counter >= LedOutputPin){
  70.       Counter = 0;
  71.       LauflichtCounter--;
  72.      
  73.       for(int i=0;i<LedOutputPin; i++){
  74.         digitalWrite(i,LOW);
  75.       }
  76.       if(LedOutputPin==2){ //notwendig um beim reset alle LEDs aus zu machen
  77.         for(int i=0;i<LedAmount; i++){
  78.         digitalWrite(i,LOW);
  79.         }
  80.       }
  81.     }
  82.     PreviousMillisLL = Millis;
  83.   }
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement