Guest User

Untitled

a guest
Mar 16th, 2020
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.98 KB | None | 0 0
  1. #include <Arduino.h>
  2.  
  3. //Arduino Pins for Segments
  4. int A=2; //BCD pin 11
  5. int B=3; //BCD pin 7
  6. int C=4; //BCD pin 4
  7. int D=5; //BCD pin 2
  8. int E=6; //BCD pin 1
  9. int F=7; //BCD pin 10
  10. int G=8; //BCD pin 5
  11. int DP=9; //BCD pin 3
  12.  
  13. //Arduino Digit Pins
  14. double D1=10; //BCD pin 12
  15. double D2=11;//BCD pin 9
  16. double D3=12;//BCD pin 8
  17. double D4=13; //BCD pin 6
  18.  
  19. double digitsarray[4]={0,0,0,0};
  20.  
  21.  
  22. unsigned long time_now = 0;
  23.  
  24. double start_time=1234;
  25. double current_time=start_time;
  26.  
  27. double end_time=9999;
  28.  
  29. void mydelay(int y);
  30. void displaynumber(double num);
  31. void displayoff();
  32. void selectdigit(double d);
  33.  
  34.  
  35. void setup() {
  36.  
  37. Serial.begin(9600);
  38. //Pin Set up
  39. pinMode(A,OUTPUT);
  40. pinMode(B,OUTPUT);
  41. pinMode(C,OUTPUT);
  42. pinMode(D,OUTPUT);
  43. pinMode(E,OUTPUT);
  44. pinMode(F,OUTPUT);
  45. pinMode(G,OUTPUT);
  46. pinMode(DP,OUTPUT);
  47.  
  48. pinMode(D1,OUTPUT);
  49. pinMode(D2,OUTPUT);
  50. pinMode(D3,OUTPUT);
  51. pinMode(D4,OUTPUT);
  52.  
  53.  
  54. }
  55.  
  56.  
  57.  
  58. void loop() {
  59.   //digits
  60. digitalWrite(D1,HIGH);
  61. digitalWrite(D2,HIGH);
  62. digitalWrite(D3,HIGH);
  63. digitalWrite(D4,HIGH);
  64.  
  65. //variables for storing individual digits of current time/value
  66. int value;
  67. int firstdigit;
  68. int seconddigit;
  69. int thirddigit;
  70. int fourthdigit;
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81. Serial.print("Current Time:\n");
  82. Serial.print(current_time);
  83.  
  84.  
  85.  
  86.     value=current_time;
  87.  
  88.   //divides number into individual digits
  89.     fourthdigit=value%10;
  90.     value=value/10;
  91.     thirddigit=value%10;
  92.     value=value/10;
  93.     seconddigit=value%10;
  94.     value=value/10;
  95.     firstdigit=value%10;
  96.  
  97.     digitsarray[0]=firstdigit;
  98.     digitsarray[1]=seconddigit;
  99.     digitsarray[2]=thirddigit;
  100.     digitsarray[3]=fourthdigit;
  101.  
  102.  
  103.  
  104.  
  105.  
  106.  displayoff();
  107.  selectdigit(1);
  108.  displaynumber(digitsarray[0]);
  109.  
  110.  mydelay(100);
  111.  
  112.  
  113.  displayoff();
  114.  selectdigit(2);
  115.  displaynumber(digitsarray[1]);
  116.  
  117.  mydelay(100);
  118.  
  119.  
  120.  displayoff();
  121.  selectdigit(3);
  122.  displaynumber(digitsarray[2]);
  123.  
  124.  mydelay(100);
  125.  
  126.  
  127. displayoff();
  128. selectdigit(4);
  129. displaynumber(digitsarray[3]);
  130.  
  131. mydelay(100);
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138. mydelay(600);
  139.  current_time=current_time+1;
  140.    
  141. }
  142.  
  143.  
  144. void mydelay(int y)
  145. {
  146.   time_now = millis();
  147.    
  148.    
  149.    
  150.     while(millis() < time_now + y){
  151.        
  152.     }
  153. }
  154.  
  155. void displaynumber(double num)
  156. {
  157.   //mumbers 0-9
  158.  
  159.   if(num==0)
  160.   {
  161.    
  162.    
  163.  
  164.     digitalWrite(A,HIGH);
  165.     digitalWrite(B,HIGH);
  166.     digitalWrite(C,HIGH);
  167.     digitalWrite(D,HIGH);  
  168.     digitalWrite(E,HIGH);
  169.     digitalWrite(F,HIGH);
  170.     digitalWrite(G,LOW);
  171.  
  172.   }
  173.  
  174.   if(num==1)
  175.   {
  176.     digitalWrite(A,LOW);
  177.     digitalWrite(B,HIGH);
  178.     digitalWrite(C,HIGH);
  179.     digitalWrite(D,LOW);  
  180.     digitalWrite(E,LOW);
  181.     digitalWrite(F,LOW);
  182.     digitalWrite(G,LOW);
  183.   }
  184.  
  185.   if(num==2)
  186.   {
  187.   digitalWrite(A,HIGH);
  188.   digitalWrite(B,HIGH);
  189.   digitalWrite(C,LOW);
  190.   digitalWrite(D,HIGH);  
  191.   digitalWrite(E,HIGH);
  192.   digitalWrite(F,LOW);
  193.   digitalWrite(G,HIGH);
  194.   }
  195.  
  196.   if(num==3)
  197.   {
  198.   digitalWrite(A,HIGH);
  199.   digitalWrite(B,HIGH);
  200.   digitalWrite(C,HIGH);
  201.   digitalWrite(D,HIGH);  
  202.   digitalWrite(E,LOW);
  203.   digitalWrite(F,LOW);
  204.   digitalWrite(G,HIGH);
  205.   }
  206.  
  207.  if(num==4)
  208.   {
  209.   digitalWrite(A,LOW);
  210.   digitalWrite(B,HIGH);
  211.   digitalWrite(C,HIGH);
  212.   digitalWrite(D,LOW);  
  213.   digitalWrite(E,LOW);
  214.   digitalWrite(F, HIGH);
  215.   digitalWrite(G,HIGH);
  216.   }
  217.  
  218.   if(num==5)
  219.   {
  220.     digitalWrite(A,HIGH);
  221.     digitalWrite(B,LOW);
  222.     digitalWrite(C,HIGH);
  223.     digitalWrite(D,HIGH);  
  224.     digitalWrite(E,LOW);
  225.     digitalWrite(F,HIGH);
  226.     digitalWrite(G,HIGH);
  227.   }
  228.  
  229.    if(num==6)
  230.   {
  231.     digitalWrite(A,HIGH);
  232.     digitalWrite(B,LOW);
  233.     digitalWrite(C,HIGH);
  234.     digitalWrite(D,HIGH);  
  235.     digitalWrite(E,HIGH);
  236.     digitalWrite(F,HIGH);
  237.     digitalWrite(G,HIGH);
  238.   }
  239.  
  240.    if(num==7)
  241.   {
  242.     digitalWrite(A,HIGH);
  243.     digitalWrite(B,HIGH);
  244.     digitalWrite(C,HIGH);
  245.     digitalWrite(D,LOW);  
  246.     digitalWrite(E,LOW);
  247.     digitalWrite(F,HIGH);
  248.     digitalWrite(G,LOW);
  249.   }
  250.  
  251.    if(num==8)
  252.   {
  253.     digitalWrite(A,HIGH);
  254.     digitalWrite(B,HIGH);
  255.     digitalWrite(C,HIGH);
  256.     digitalWrite(D,HIGH);  
  257.     digitalWrite(E,HIGH);
  258.     digitalWrite(F,HIGH);
  259.     digitalWrite(G,HIGH);
  260.   }
  261.  
  262.    if(num==9)
  263.   {
  264.     digitalWrite(A,HIGH);
  265.     digitalWrite(B,HIGH);
  266.     digitalWrite(C,HIGH);
  267.     digitalWrite(D,HIGH);  
  268.     digitalWrite(E,LOW);
  269.     digitalWrite(F,HIGH);
  270.     digitalWrite(G,HIGH);
  271.   }
  272.  
  273.  
  274. }
  275.  
  276. void displayoff()
  277. {
  278.     //turns all segments off
  279.     digitalWrite(A,LOW);
  280.     digitalWrite(B,LOW);
  281.     digitalWrite(C,LOW);
  282.     digitalWrite(D,LOW);  
  283.     digitalWrite(E,LOW);
  284.     digitalWrite(F,LOW);
  285.     digitalWrite(G,LOW);
  286.  
  287.    
  288. }
  289.  
  290. void selectdigit(double d)
  291. {
  292. digitalWrite(D1,HIGH);
  293. digitalWrite(D2,HIGH);
  294. digitalWrite(D3,HIGH);
  295. digitalWrite(D4,HIGH);
  296.  
  297. //switches the selected digit to turn on
  298. switch((int) d)
  299. {
  300.     case 1:
  301.     digitalWrite(D1, LOW);
  302.     break;
  303.     case 2:
  304.     digitalWrite(D2, LOW);
  305.     break;
  306.     case 3:
  307.     digitalWrite(D3, LOW);
  308.     break;
  309.     case 4:
  310.     digitalWrite(D4, LOW);
  311.     break;
  312.    
  313. }
  314.  
  315. }
Add Comment
Please, Sign In to add comment