Advertisement
Maderdash

led driver

Jan 27th, 2022
239
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. Drive a seven segment display using HCF4511
  3.  
  4.  
  5. */
  6.  
  7. //Declaration of Arduino pins used as HCF4511 inputs
  8. const int A = 2;
  9. const int B = 3;
  10. const int C = 4;
  11. const int D = 5;
  12.  
  13. void setup() {
  14.   pinMode(A0, INPUT);
  15.   pinMode(A, OUTPUT); //LSB
  16.   pinMode(B, OUTPUT);
  17.   pinMode(C, OUTPUT);
  18.   pinMode(D, OUTPUT); //MSB
  19.  
  20. }
  21.  
  22. int count = 0; //the variable used to show the number
  23.  
  24. void loop() {
  25.   if (digitalRead(A0) == LOW) //if button is pressed
  26.   {
  27.     count++;
  28.     delay(200); //the delay prevent from button bouncing
  29.     if (count == 10) //we want to count from 0 to 9!
  30.       count = 0;
  31.     to_BCD(); //convert to binary
  32.   }
  33.  
  34.   if (count == 10)
  35.     count = 0;
  36.  
  37. }
  38.  
  39. void to_BCD()
  40. {
  41.   if (count == 0) //write 0000
  42.   {
  43.     digitalWrite(A, LOW);
  44.     digitalWrite(B, LOW);
  45.     digitalWrite(C, LOW);
  46.     digitalWrite(D, LOW);
  47.   }
  48.  
  49.   if (count == 1) //write 0001
  50.   {
  51.     digitalWrite(A, HIGH);
  52.     digitalWrite(B, LOW);
  53.     digitalWrite(C, LOW);
  54.     digitalWrite(D, LOW);
  55.   }
  56.  
  57.   if (count == 2) //write 0010
  58.   {
  59.     digitalWrite(A, LOW);
  60.     digitalWrite(B, HIGH);
  61.     digitalWrite(C, LOW);
  62.     digitalWrite(D, LOW);
  63.   }
  64.  
  65.   if (count == 3) //write 0011
  66.   {
  67.     digitalWrite(A, HIGH);
  68.     digitalWrite(B, HIGH);
  69.     digitalWrite(C, LOW);
  70.     digitalWrite(D, LOW);
  71.   }
  72.  
  73.   if (count == 4) //write 0100
  74.   {
  75.     digitalWrite(A, LOW);
  76.     digitalWrite(B, LOW);
  77.     digitalWrite(C, HIGH);
  78.     digitalWrite(D, LOW);
  79.   }
  80.  
  81.   if (count == 5) //write 0101
  82.   {
  83.     digitalWrite(A, HIGH);
  84.     digitalWrite(B, LOW);
  85.     digitalWrite(C, HIGH);
  86.     digitalWrite(D, LOW);
  87.   }
  88.  
  89.   if (count == 6) //write 0110
  90.   {
  91.     digitalWrite(A, LOW);
  92.     digitalWrite(B, HIGH);
  93.     digitalWrite(C, HIGH);
  94.     digitalWrite(D, LOW);
  95.   }
  96.  
  97.   if (count == 7) //write 0111
  98.   {
  99.     digitalWrite(A, HIGH);
  100.     digitalWrite(B, HIGH);
  101.     digitalWrite(C, HIGH);
  102.     digitalWrite(D, LOW);
  103.   }
  104.  
  105.   if (count == 8) //write 1000
  106.   {
  107.     digitalWrite(A, LOW);
  108.     digitalWrite(B, LOW);
  109.     digitalWrite(C, LOW);
  110.     digitalWrite(D, HIGH);
  111.   }
  112.  
  113.   if (count == 9) //write 1001
  114.   {
  115.     digitalWrite(A, HIGH);
  116.     digitalWrite(B, LOW);
  117.     digitalWrite(C, LOW);
  118.     digitalWrite(D, HIGH);
  119.   }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement