Devices & Components
Arduino Uno Rev3
Rotary Encoder with Push-Button
Breadboard (generic)
SparkFun 7-Segment Serial Display - Red
470 ohm resistor
Resistor 10k ohm
HCF4511
Jumper wires (generic)
Project description
Code
Code snippet #1
arduino
1/* 2 Example of how to drive a seven segment display using HCF4511 or similar 3 4 This sketch drive the display in order to show a number from 0 to 9 everytime a button connected to A0 is pressed. 5 6*/ 7 8//Declaration of Arduino pins used as HCF4511 inputs 9const int A=2; 10const int B=3; 11const int C=4; 12const int D=5; 13 14void setup() { 15 pinMode(A0, INPUT); 16 pinMode(A, OUTPUT); //LSB 17 pinMode(B, OUTPUT); 18 pinMode(C, OUTPUT); 19 pinMode(D, OUTPUT); //MSB 20 21} 22 23int count = 0; //the variable used to show the number 24 25void loop() { 26 if (digitalRead(A0) == LOW) //if button is pressed 27 { 28 count++; 29 delay(200); //the delay prevent from button bouncing 30 if (count == 10) //we want to count from 0 to 9! 31 count = 0; 32 to_BCD(); //convert to binary 33 } 34 35 if (count == 10) 36 count = 0; 37 38} 39 40void to_BCD() 41{ 42 if (count == 0) //write 0000 43 { 44 digitalWrite(A, LOW); 45 digitalWrite(B, LOW); 46 digitalWrite(C, LOW); 47 digitalWrite(D, LOW); 48 } 49 50 if (count == 1) //write 0001 51 { 52 digitalWrite(A, HIGH); 53 digitalWrite(B, LOW); 54 digitalWrite(C, LOW); 55 digitalWrite(D, LOW); 56 } 57 58 if (count == 2) //write 0010 59 { 60 digitalWrite(A, LOW); 61 digitalWrite(B, HIGH); 62 digitalWrite(C, LOW); 63 digitalWrite(D, LOW); 64 } 65 66 if (count == 3) //write 0011 67 { 68 digitalWrite(A, HIGH); 69 digitalWrite(B, HIGH); 70 digitalWrite(C, LOW); 71 digitalWrite(D, LOW); 72 } 73 74 if (count == 4) //write 0100 75 { 76 digitalWrite(A, LOW); 77 digitalWrite(B, LOW); 78 digitalWrite(C, HIGH); 79 digitalWrite(D, LOW); 80 } 81 82 if (count == 5) //write 0101 83 { 84 digitalWrite(A, HIGH); 85 digitalWrite(B, LOW); 86 digitalWrite(C, HIGH); 87 digitalWrite(D, LOW); 88 } 89 90 if (count == 6) //write 0110 91 { 92 digitalWrite(A, LOW); 93 digitalWrite(B, HIGH); 94 digitalWrite(C, HIGH); 95 digitalWrite(D, LOW); 96 } 97 98 if (count == 7) //write 0111 99 { 100 digitalWrite(A, HIGH); 101 digitalWrite(B, HIGH); 102 digitalWrite(C, HIGH); 103 digitalWrite(D, LOW); 104 } 105 106 if (count == 8) //write 1000 107 { 108 digitalWrite(A, LOW); 109 digitalWrite(B, LOW); 110 digitalWrite(C, LOW); 111 digitalWrite(D, HIGH); 112 } 113 114 if (count == 9) //write 1001 115 { 116 digitalWrite(A, HIGH); 117 digitalWrite(B, LOW); 118 digitalWrite(C, LOW); 119 digitalWrite(D, HIGH); 120 } 121} 122
Comments
Only logged in users can leave comments