In this lesson we’re going to show numbers on a 7-Segment display.
For that do we need:
- 1 Arduino
- 1 Breadboard
- 1 7-Segment display
- 8 220Ω Resistors
- 18 Wires
An array with content will be defined like this:
var_type var_name[size] = {val_0, val_1, val_2, val_n};
e.g.: byte segment[10] = {B100,B010,B0110};
The „B“ before the numbers in the array means, that this number is a byte number, so it only contains 1 and 0.
You use the for-loop like this:
for(init counter; test counter; increment OR decrease counter)
{
//program code
}
For example (do things eight times, from zero to eight):
for(int i = 0; i < 8; i++)
{
//program code
}
That for-loop in a sentence means:
For an int i with 0, while i < 8, increase i plus one, do the program code.
Now we combine these methods in order to show numbers on the 7-Segment display.
//Number coding 0. 1 2. 3 4. 5 6. 7 8. 9
byte segment[10]={B11111101, B01100000, B11011011, B11110010, B01100111, B10110110, B10111111, B11100000, B11111111, B11110110};
void setup()
{
for (int i=2; i <= 9; i++){ // 2-9 sind Ausgänge
pinMode(i,OUTPUT);
}
}
void segmente(byte n) {
// control all 7 segments
for(int k=2; k <= 9; k++) {
if((n & B10000000) > 0)
digitalWrite(k, HIGH);
else
digitalWrite(k, LOW);
n = n << 1;
}
}
void loop()
{
for(int j=0; j <= 9; j++) {
segmente(segment[j]);
delay(1000);
}
}
To see, what your code is doing, you have to build your circuit. Do it according to the following scheme:
| ⇐ Lesson #3 | Lesson #5 ⇒ |

