Hello, i have written this simple Arduino program where a 4 digit 7 segment led display is used to count the numbers dow

Business, Finance, Economics, Accounting, Operations Management, Computer Science, Electrical Engineering, Mechanical Engineering, Civil Engineering, Chemical Engineering, Algebra, Precalculus, Statistics and Probabilty, Advanced Math, Physics, Chemistry, Biology, Nursing, Psychology, Certifications, Tests, Prep, and more.
Post Reply
answerhappygod
Site Admin
Posts: 899604
Joined: Mon Aug 02, 2021 8:13 am

Hello, i have written this simple Arduino program where a 4 digit 7 segment led display is used to count the numbers dow

Post by answerhappygod »

Hello, i have written this simple Arduino program where a 4
digit 7 segment led display is used to count the numbers down from
10 to 0.
but I need to light up the Green LED when the number gets to 0
and i need to do this using Raspberry pi and preferably using a
database like Mysql would even be better but not necessarily.
i just need help with the raspberry Pi part thank you very
much
Hello I Have Written This Simple Arduino Program Where A 4 Digit 7 Segment Led Display Is Used To Count The Numbers Dow 1
Hello I Have Written This Simple Arduino Program Where A 4 Digit 7 Segment Led Display Is Used To Count The Numbers Dow 1 (135.39 KiB) Viewed 17 times
#include <math.h>
int digit_pin[] = {6, 9, 10, 11};
int speakerPin = 15;
#define DIGIT_ON LOW
#define DIGIT_OFF HIGH
int segA = 2;
int segB = 3;
int segC = 4;
int segD = 5;
int segE = A0;
int segF = 7;
int segG = 8;
//int segPD = ;
int button1=13;
int button2=12;
int countdown_time = 10;
struct struct_digits {
int digit[4];
};
void setup() {

pinMode(segA, OUTPUT);
pinMode(segB, OUTPUT);
pinMode(segC, OUTPUT);
pinMode(segD, OUTPUT);
pinMode(segE, OUTPUT);
pinMode(segF, OUTPUT);
pinMode(segG, OUTPUT);
for (int i=0; i<4; i++) {
pinMode(digit_pin, OUTPUT);
}
pinMode(speakerPin, OUTPUT);
pinMode(button1,INPUT_PULLUP);
pinMode(button2,INPUT_PULLUP);

}
void lightNumber(int numberToDisplay) {
#define SEGMENT_ON HIGH
#define SEGMENT_OFF LOW
switch (numberToDisplay){
case 0:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_OFF);
break;
case 1:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
case 2:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;
case 3:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_ON);
break;
case 4:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 5:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 6:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 7:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
case 8:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_ON);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 9:
digitalWrite(segA, SEGMENT_ON);
digitalWrite(segB, SEGMENT_ON);
digitalWrite(segC, SEGMENT_ON);
digitalWrite(segD, SEGMENT_ON);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_ON);
digitalWrite(segG, SEGMENT_ON);
break;
case 10:
digitalWrite(segA, SEGMENT_OFF);
digitalWrite(segB, SEGMENT_OFF);
digitalWrite(segC, SEGMENT_OFF);
digitalWrite(segD, SEGMENT_OFF);
digitalWrite(segE, SEGMENT_OFF);
digitalWrite(segF, SEGMENT_OFF);
digitalWrite(segG, SEGMENT_OFF);
break;
}

}
void SwitchDigit(int digit) {
for (int i=0; i<4; i++) {
if (i == digit) {
digitalWrite(digit_pin, DIGIT_ON);
} else {
digitalWrite(digit_pin, DIGIT_OFF);
}
}
}
struct struct_digits IntToDigits(int n){
struct struct_digits dig;
int zeros=0;
int d;
for (int i=0; i<4; i++) {
d=n/pow(10,3-i);
zeros += d;
n = n - d*pow(10,3-i);
if (zeros!=0 || i==3) {
dig.digit=d;
} else {
dig.digit=10;
}
}
return dig;
}
void PrintNumber(int n, int time) {
struct struct_digits dig;
dig = IntToDigits(n);

for (int i=0; i<= time/20; i++) {
if (digitalRead(button2)==LOW) {
return;
}
for (int j=0; j<4; j++) {
SwitchDigit(j);
lightNumber(dig.digit[j]);
delay(5);
}
}
}
bool Countdown(int n, int del){
for (int q=n; q>0; q--){
PrintNumber(q,del);
if (digitalRead(button2)==LOW) {
return false;
}
}
PrintNumber(0,0);

return true;
}
void reset() {
int m, zeros, d, pressed3 = 0, pressed4 = 0;
m=countdown_time;
struct struct_digits dig;
dig = IntToDigits(countdown_time);

while (digitalRead(button1)==HIGH) {
for (int j=0; j<4; j++) {
SwitchDigit(j);
lightNumber(dig.digit[j]);
delay(5);
}

dig =
IntToDigits(countdown_time);
}
pressed3 += 1;
}
void loop(){
reset();
while (!Countdown(countdown_time,962)) {
reset();
}
while (digitalRead(button2)==1){};
}
3461 S
OEB ΙΠΠΠΠ
Join a community of subject matter experts. Register for FREE to view solutions, replies, and use search function. Request answer by replying!
Post Reply