mirror of
https://github.com/KevinMidboe/Arduino.git
synced 2025-10-29 09:30:12 +00:00
289 lines
4.7 KiB
C++
Executable File
289 lines
4.7 KiB
C++
Executable File
/*
|
|
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();
|
|
|
|
}
|