Advertisement
B-Matt

Arduino - Timer (7 segment)

Dec 9th, 2016
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.09 KB | None | 0 0
  1. #include "Timer.h"
  2. Timer t;
  3.  
  4. void setup() {
  5.  
  6.   for(int i=2;i<14;i++){
  7.     pinMode(i,OUTPUT);
  8.   }
  9.   t.every(1,upali);
  10.   t.every(500,broji);
  11.  
  12.   digitalWrite(2,HIGH);
  13.   digitalWrite(3,HIGH);
  14.   digitalWrite(4,HIGH);
  15.   digitalWrite(5,HIGH);
  16. }
  17.  
  18. byte znamenka [4];
  19.  
  20. void loop() {
  21.   t.update();
  22. }
  23.  
  24. int br;
  25. void broji(){
  26.   int temp = br;
  27.   for(int i=0; i<4; i++){
  28.     znamenka[i] = (temp)%10;
  29.     temp = temp/10;
  30.   }  
  31.   br++;
  32. }
  33.  
  34. int d=0;
  35. void upali(){
  36.   digitalWrite(d+2,HIGH);
  37.   d--;
  38.   if(d<0){
  39.     d=3;
  40.   }
  41.   switch(znamenka[3 - d]){
  42.     case 0: ispis (0b11000000); break;
  43.     case 1: ispis (0b11111001); break;
  44.     case 2: ispis (0b10100100); break;
  45.     case 3: ispis (0b10110000); break;
  46.     case 4: ispis (0b10011001); break;
  47.     case 5: ispis (0b10010010); break;
  48.     case 6: ispis (0b10000010); break;
  49.     case 7: ispis (0b11111000); break;
  50.     case 8: ispis (0b10000000); break;
  51.     case 9: ispis (0b10010000); break;
  52.     default: break;
  53.   }
  54.   digitalWrite(d+2,LOW);
  55. }
  56.  
  57. void ispis(byte x){
  58.   for(int i=0; i<8; i++){
  59.     digitalWrite(i+6, x&(1<<i)  );
  60.   }
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement