Advertisement
ArduinoCz

32 - LED bez masakru

Jul 29th, 2014
26,911
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.88 KB | None | 0 0
  1. // připravené proměné pro uložení času
  2. // kdy byly jednotlivé bloky v programu vykonány
  3. // jsou tu 3, Vy můžete nastavit kolik chcete
  4. long lastJob1, lastJob2 = 0, lastJob3 = 0;
  5.  
  6. int LED1 = 9;
  7. int LED2 = 10;
  8. int LED3 = 11;
  9.  
  10. void setup() {
  11.  
  12.   pinMode( 9, OUTPUT);
  13.   pinMode(10, OUTPUT);
  14.   pinMode(11, OUTPUT);
  15.  
  16.   digitalWrite(LED1, HIGH);
  17.   digitalWrite(LED2, HIGH);
  18.   digitalWrite(LED3, HIGH);
  19.  
  20.  
  21. }
  22. void loop() {
  23.  
  24. // když celkový počet milisekund od startu Arduina
  25. // je větší jak poslední uložená hodnota, kdy byla část
  26. // programu vykonána s přičtením intervalu 1000ms
  27. if (millis() > (1000 + lastJob1))
  28.    {
  29.     // zde bude kód programu, který se v mém případě
  30.     // vykoná každou 1 vteřinu (1000 ms)
  31.      
  32.    
  33.    
  34.     // když je digitální pin 0 tak na něj zapiš 1
  35.     if (digitalRead(LED1) == 0) digitalWrite(LED1, HIGH);
  36.     // jinak zapiš 0
  37.     else digitalWrite(LED1, LOW);
  38.    
  39.    
  40.    
  41.    
  42.     // toto je důležité, musíme uložit čas
  43.     // kdy byla vykonána tato část programu
  44.     lastJob1 = millis();
  45.    }  
  46.  
  47.  
  48.  
  49. // tyto další části programu jsou stejné
  50. // v předchozím případě pouze s jiným intervalem
  51.  
  52. // část programu, která se vykoná každé 2 sekundy
  53. if (millis() > (3000 + lastJob2))
  54.    {
  55.     if (digitalRead(LED2) == 0) digitalWrite(LED2, HIGH);
  56.     else digitalWrite(LED2, LOW);
  57.     lastJob2 = millis();
  58.    }    
  59.  
  60. // část programu, která se vykoná každé 3 sekundy
  61. if (millis() > (5000 + lastJob3))
  62.    {
  63.     if (digitalRead(LED3) == 0) digitalWrite(LED3, HIGH);
  64.     else digitalWrite(LED3, LOW);
  65.     lastJob3 = millis();
  66.    }    
  67.  
  68.  
  69.  
  70. // zde napišeme část programu, která se bude vykonávat bez ohledu
  71. // na čas vždy, kdy k němu program dojde ve cyklu loop()
  72. // ja jsem si to otestoval a sem se program dostane
  73. // každých 1,136 ms
  74.  
  75.  
  76.  
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement