Alx09

Tema Flori

Nov 11th, 2021
1,075
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.53 KB | None | 0 0
  1. #define segA 2
  2. #define segB 3
  3. #define segC 4
  4. #define segD 5
  5. #define segE 6
  6. #define segF 7
  7. #define segG 8
  8. #define tranzUnit 12
  9. #define tranzZeci 11
  10. #define tranzSute 10
  11. #define tranzMii 9
  12. #define contact 0
  13. #define buton  13
  14.  
  15. void setup()
  16. {
  17.   for(int i = segA; i <= tranzUnit; ++i){
  18.          pinMode(i, OUTPUT);
  19.          digitalWrite(i, HIGH);
  20.   }
  21. }
  22. void setTranzOn(int tranz){
  23.   for( int i = tranzMii;i <= tranzUnit; ++i)
  24.     if(tranz == i)
  25.          digitalWrite(i, LOW);
  26.     else
  27.         digitalWrite(i, HIGH);
  28. }
  29. void printCifra(int cifra){
  30.   switch(cifra){
  31.     case 0:
  32.      digitalWrite(segG, HIGH);
  33.     for(int i = segA; i < segG; ++i)
  34.       digitalWrite(i, LOW);
  35.     break;
  36.     case 1:
  37.      digitalWrite(segA, HIGH);
  38.      for(int i = segB; i < segD; ++i)
  39.          digitalWrite(i, LOW);
  40.      for(int i = segD; i <= segG; ++i)
  41.          digitalWrite(i, HIGH);
  42.     break;
  43.     case 2:
  44.       for(int i = segA; i <= segG; ++i)
  45.         if( i == segC || i == segF)
  46.            digitalWrite(i, HIGH);
  47.         else
  48.          digitalWrite(i, LOW);
  49.         break;
  50.     case 3:
  51.         for(int i = segA; i <= segG; ++i)
  52.         if( i == segE || i == segF)
  53.            digitalWrite(i, HIGH);
  54.         else
  55.          digitalWrite(i, LOW);
  56.           break;
  57.     case 4:
  58.     for(int i = segA; i <= segG; ++i)
  59.         if( i == segA || i == segD || i == segE)
  60.            digitalWrite(i, HIGH);
  61.         else
  62.          digitalWrite(i, LOW);
  63.       break;
  64.     case 5:
  65.     for(int i = segA; i <= segG; ++i)
  66.         if( i == segB || i == segE)
  67.            digitalWrite(i, HIGH);
  68.         else
  69.          digitalWrite(i, LOW);
  70.           break;
  71.     case 6:
  72.     for(int i = segA; i <= segG; ++i)
  73.         if( i == segB)
  74.            digitalWrite(i, HIGH);
  75.         else
  76.          digitalWrite(i, LOW);
  77.           break;
  78.     case 7:
  79.       for(int i = segA; i < segD; ++i)
  80.          digitalWrite(i, LOW);
  81.      for(int i = segD; i <= segG; ++i)
  82.          digitalWrite(i, HIGH);
  83.     break;
  84.     case 8:
  85.     for(int i = segA; i <= segG; ++i)
  86.          digitalWrite(i, LOW);
  87.           break;
  88.     case 9:
  89.     for(int i = segA; i <= segG; ++i)
  90.         if( i == segD || i == segE)
  91.            digitalWrite(i, HIGH);
  92.         else
  93.          digitalWrite(i, LOW);
  94.           break;
  95.   }
  96. }
  97.  
  98. void loop()
  99. {
  100.   if(digitalRead(buton) == HIGH){
  101.     if(digitalRead(contact) == LOW)
  102.       setTranzOn(tranzUnit);
  103.     else
  104.       setTranzOn(tranzZeci);
  105.     for(int i = 0; i < 10; ++i){
  106.        printCifra(i);
  107.       delay(1000);
  108.     }
  109.     delay(100);
  110.   }
  111. }
Advertisement
Add Comment
Please, Sign In to add comment