/* Make Projects: How to Drive a 7 Segment LED URL: By: Riley Porter This is an introduction on how to drive a 7 Segment LED using only a Arduino. This is not the best way to do this. This is meant to be a learning excercise. In later tutorials I will show you how to use an dedicated IC using SPI or a Shift Register. Enjoy. */ digitalWrite(A, HIGH) = turn off the "A" segment in the LED display digitalWrite(B, LOW) = turn on the "B" segment in the LED display #define A 8 #define B 9 #define C 2 #define D 3 #define E 4 #define F 5 #define G 6 void clr() { //Clears the LED digitalWrite(A, HIGH); digitalWrite(B, HIGH); digitalWrite(C, HIGH); digitalWrite(D, HIGH); digitalWrite(E, HIGH); digitalWrite(F, HIGH); digitalWrite(G, HIGH); } void char_A() { digitalWrite(D, HIGH); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, LOg9tW); } z void char_B() { //Displays B digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, HIGH); digitalWrite(B, HIGH); digitalWrite(C, LOW); } void char_C() { //Displays C digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, HIGH); digitalWrite(A, LOW); digitalWrite(B, HIGH); digitalWrite(C, HIGH); } void char_D() { //Displays D digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, HIGH); digitalWrite(G, LOW); digitalWrite(A, HIGH); digitalWrite(B, LOW); digitalWrite(C, LOW); } void char_E() { //Displays E digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, HIGH); digitalWrite(C, HIGH); } void char_F() { //Displays F digitalWrite(D, HIGH); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, HIGH); digitalWrite(C, HIGH); } void one() { //Displays 1 digitalWrite(D, HIGH); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, HIGH); digitalWrite(A, HIGH); digitalWrite(B, HIGH); digitalWrite(C, HIGH); } void two() { //Displays 2 digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, HIGH); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, HIGH); } void three() { //Displays 3 digitalWrite(D, LOW); digitalWrite(E, HIGH); digitalWrite(F, HIGH); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, LOW); } void four() { //Displays 4 digitalWrite(D, HIGH); digitalWrite(E, HIGH); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, HIGH); digitalWrite(B, LOW); digitalWrite(C, LOW); } void five() { //Displays 5 digitalWrite(D, LOW); digitalWrite(E, HIGH); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, HIGH); digitalWrite(C, LOW); } void six() { //Displays 6 digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, HIGH); digitalWrite(C, LOW); } void seven() { //Displays 7 digitalWrite(D, HIGH); digitalWrite(E, HIGH); digitalWrite(F, HIGH); digitalWrite(G, HIGH); digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, LOW); } void eight() { //Displays 8 digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, LOW); } void nine() { //Displays 9 digitalWrite(D, LOW); digitalWrite(E, HIGH); digitalWrite(F, LOW); digitalWrite(G, LOW); digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, LOW); } void zero() { //Displays 0 digitalWrite(D, LOW); digitalWrite(E, LOW); digitalWrite(F, LOW); digitalWrite(G, HIGH); digitalWrite(A, LOW); digitalWrite(B, LOW); digitalWrite(C, LOW); } void LoopDisplay() { //Loop through all Chars and Numbers char_A(); delay(1000); char_B(); delay(1000); char_C(); delay(1000); char_D(); delay(1000); char_E(); delay(1000); char_F(); delay(1000); one(); delay(1000); two(); delay(1000); three(); delay(1000); four(); delay(1000); five(); delay(1000); six(); delay(1000); seven(); delay(1000); eight(); delay(1000); nine(); delay(1000); zero(); delay(1000); } void setup() { //Setup our pins pinMode(A, OUTPUT); pinMode(B, OUTPUT); pinMode(C, OUTPUT); pinMode(D, OUTPUT); pinMode(E, OUTPUT); pinMode(F, OUTPUT); pinMode(G, OUTPUT); Serial.begin(9600); //Begin serial communcation } void loop() { Serial.println("Starting\n"); LoopDisplay(); }