Arduino - 4-Digit 7-Segment Display (EN)

preview_player
Показать описание
In this video, I will show you how to use a 4-Digit 7--Segment Display and guide you step by step on how to write the code. I will also show you how to display information coming from an analog input.
Рекомендации по теме
Комментарии
Автор

6 years later this video still helps... I cant finish my project without this. You are a LEGEND

subtaxi
Автор

If there's an award for the best arduino tutorial on YouTube, you deserve it... Many many thanks for this awesome video... Great way of explanation and your step by step approach made things really easy to understand.... Learned a lot today... 👍

rahulfromkerala
Автор

Thank you man, this is only tutorial that actually helped me understand multiplexing the easy way. You were crystal clear. Keep the good work.

VPme
Автор

One of the best video on YouTube. Thanks

mouseminer
Автор

Best explaination of programming of 4 digit seven segment display, l never seen on any website or YouTube.

dhanrajmhatre
Автор

I spent hours looking for a video I can learn from it
finally by chance I found yours
IT IS SUPER GOOD
your explanation is VERY CLEAR
BRAVO 👌👍👏👏👏👏👏👏

AliAbbas-tzhh
Автор

That is the proper way to teach arduino, the best tutorial ever! Thank you so much 😅😊😊😊

elwafi
Автор

Thank you. I've looked through about a dozen different presenters and you aced it.

joegoetz
Автор

this is one of the best tutorials I have come across

emmanuelmbira
Автор

I knew literally everything except the mathematics of splitting digits
Thanks man:)

mohammadaqdas
Автор

Great tutorial. However, I noticed you are did not use the 2N222 NPN transistors in the schematic. I would like to add that if anyone is trying to use the 2N222 NPN transistor, a HIGH logic at the base would actually drive the common pins to ground! :)

johnwalsh
Автор

nicely explained, explaination was to the you sir

prathameshmestry
Автор

/**** Code ****/
// 5461AS
int time = 5;

int pinA = 9;
int pinB = 8;
int pinC = 7;
int pinD = 6;
int pinE = 5;
int pinF = 4;
int pinG = 3;
int pinDP = 2;

int DIG1 = 13;
int DIG2 = 12;
int DIG3 = 11;
int DIG4 = 10;

void choose_digit(char num) {
switch(num) { default: // 0 default value digitalWrite(pinA, HIGH); digitalWrite(pinB, HIGH); digitalWrite(pinC, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, HIGH); digitalWrite(pinF, HIGH); digitalWrite(pinG, LOW); digitalWrite(pinDP, LOW); break; case 1: digitalWrite(pinA, LOW); digitalWrite(pinB, HIGH); digitalWrite(pinC, HIGH); digitalWrite(pinD, LOW); digitalWrite(pinE, LOW); digitalWrite(pinF, LOW); digitalWrite(pinG, LOW); digitalWrite(pinDP, LOW); break; case 2: digitalWrite(pinA, HIGH); digitalWrite(pinB, HIGH); digitalWrite(pinC, LOW); digitalWrite(pinD, HIGH); digitalWrite(pinE, HIGH); digitalWrite(pinF, LOW); digitalWrite(pinG, HIGH); digitalWrite(pinDP, LOW); break; case 3: digitalWrite(pinA, HIGH); digitalWrite(pinB, HIGH); digitalWrite(pinC, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, LOW); digitalWrite(pinF, LOW); digitalWrite(pinG, HIGH); digitalWrite(pinDP, LOW); break; case 4: digitalWrite(pinA, LOW); digitalWrite(pinB, HIGH); digitalWrite(pinC, HIGH); digitalWrite(pinD, LOW); digitalWrite(pinE, LOW); digitalWrite(pinF, HIGH); digitalWrite(pinG, HIGH); digitalWrite(pinDP, LOW); break; case 5: digitalWrite(pinA, HIGH); digitalWrite(pinB, LOW); digitalWrite(pinC, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, LOW); digitalWrite(pinF, HIGH); digitalWrite(pinG, HIGH); digitalWrite(pinDP, LOW); break; case 6: digitalWrite(pinA, HIGH); digitalWrite(pinB, LOW); digitalWrite(pinC, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, HIGH); digitalWrite(pinF, HIGH); digitalWrite(pinG, HIGH); digitalWrite(pinDP, LOW); break; case 7: digitalWrite(pinA, HIGH); digitalWrite(pinB, HIGH); digitalWrite(pinC, HIGH); digitalWrite(pinD, LOW); digitalWrite(pinE, LOW); digitalWrite(pinF, LOW); digitalWrite(pinG, LOW); digitalWrite(pinDP, LOW); break; case 8: digitalWrite(pinA, HIGH); digitalWrite(pinB, HIGH); digitalWrite(pinC, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, HIGH); digitalWrite(pinF, HIGH); digitalWrite(pinG, HIGH); digitalWrite(pinDP, LOW); break; case 9: digitalWrite(pinA, HIGH); digitalWrite(pinB, HIGH); digitalWrite(pinC, HIGH); digitalWrite(pinD, HIGH); digitalWrite(pinE, LOW); digitalWrite(pinF, HIGH); digitalWrite(pinG, HIGH); digitalWrite(pinDP, LOW); break;

}

}

void pick_digit(int digit) {
digitalWrite(DIG1, HIGH);
digitalWrite(DIG2, HIGH);
digitalWrite(DIG3, HIGH);
digitalWrite(DIG4, HIGH); switch(digit) { case 1: digitalWrite(DIG1, LOW); break; case 2: digitalWrite(DIG2, LOW); break; case 3: digitalWrite(DIG3, LOW); break; default:digitalWrite(DIG4, LOW); break;
}

}

void decimal_place() {
digitalWrite(pinDP, HIGH);
}

void seven_segment(int number) { unsigned char thousands = int (number/1000);
unsigned char hundreds = int ((number/100)%10);
unsigned char tens = int ((number/10)%10);
unsigned char ones = int (number%10); //1234
choose_digit(thousands);
pick_digit(1);
delay(time); choose_digit(hundreds);
pick_digit(2);
delay(time); choose_digit(tens);
pick_digit(3);
decimal_place(); // add decimal point
delay(time); choose_digit(ones);
pick_digit(4);
delay(time);

}

void setup() { pinMode(DIG1, OUTPUT);
pinMode(DIG2, OUTPUT);
pinMode(DIG3, OUTPUT);
pinMode(DIG4, OUTPUT); pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
pinMode(pinC, OUTPUT);
pinMode(pinD, OUTPUT);
pinMode(pinE, OUTPUT);
pinMode(pinF, OUTPUT);
pinMode(pinG, OUTPUT);
pinMode(pinDP, OUTPUT); Serial.begin(9600);

}

void loop() { int sensor_value = analogRead(A0);
Serial.println(sensor_value); seven_segment(sensor_value); delay(1);

}

caporalelectric
Автор

Best video on SSD, It can be extrapolated to great extent.

rohitrai
Автор

very nice! im wondering now how can i display a float number with decimal place, like 14.65 ?? i only get INT number on my readings with analog input! Thanks

sentindodavida
Автор

Nice explanation, Hope you provide explanation of common Cathode display, can you describe the differences in code while using Common anode display

muhammedrashid
Автор

many many thanks you .Very useful teaching.

bhushancomputer
Автор

Best 7 segment Ever
Thank you Bery much

farooghahsan
Автор

Thank you so much for sharing this tutorial. I built a current meter using your code to show the value on 7 Segments.
P.S. Please take an air rifle and dispatch those annoying crows.

Tirdad
Автор

Really very informative. Keep up the good work 👍👍

rifatahmed