0% found this document useful (0 votes)
19 views4 pages

Arduino Den Giao Thong

Uploaded by

ptt532004
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views4 pages

Arduino Den Giao Thong

Uploaded by

ptt532004
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

#define x1 8

#define v1 9
#define d1 10

#define x2 11
#define v2 12
#define d2 13

#define t1 10
unsigned char LED_0F[] =
{// 0 1 2 3 4 5 6 7 8 9 A b C d E F -
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x8C,0xBF,0xC6,0xA1,0x86,
0xFF,0xbf
};
unsigned char LED[4];

unsigned long previousMillis = 0; // Khai báo biến previousMillis = 0


const long interval = 1000; // Khái báo biến interval = 1000 mili giây = 1s

int SCLK = 2;//PD2


int RCLK = 1;//PD1
int DIO = 0;//RXD
int t = 0, t_den1, t_den2;

void setup() {
pinMode(x1,OUTPUT);
pinMode(v1,OUTPUT);
pinMode(d1,OUTPUT);
pinMode(x2,OUTPUT);
pinMode(v2,OUTPUT);
pinMode(d2,OUTPUT);
pinMode(SCLK,OUTPUT);
pinMode(RCLK,OUTPUT);
pinMode(DIO,OUTPUT);

void loop() {
if(t == 0){
digitalWrite(x1,HIGH);
digitalWrite(v1,LOW);
digitalWrite(d1,LOW);
digitalWrite(x2,LOW);
digitalWrite(v2,LOW);
digitalWrite(d2,HIGH);
t_den1 = 15;
t_den2 = 18;
}
if(t == 15){
digitalWrite(v1,HIGH);
digitalWrite(x1,LOW);
digitalWrite(d1,LOW);
digitalWrite(x2,LOW);
digitalWrite(v2,LOW);
digitalWrite(d2,HIGH);
t_den1 = 3;
t_den2 = 3;
}
if(t == 18){
digitalWrite(d1,HIGH);
digitalWrite(v1,LOW);
digitalWrite(x1,LOW);
digitalWrite(d2,LOW);
digitalWrite(v2,LOW);
digitalWrite(x2,HIGH);
t_den1 = 18;
t_den2 = 15;
}
if(t == 33){
digitalWrite(d1,HIGH);
digitalWrite(v1,LOW);
digitalWrite(x1,LOW);
digitalWrite(d2,LOW);
digitalWrite(x2,LOW);
digitalWrite(v2,HIGH);
t_den1 = 3;
t_den2 = 3;
}
if(t == 36){
t = 0;
}
unsigned long currentMillis = millis(); // Khai báo biến cutrrentMillis = millis
// Nếu hàm millis() đếm được 1000 milli giây = 1s thì sẽ thay đổi trạng thái LED
if (currentMillis - previousMillis >= interval)
{
previousMillis = currentMillis; //thời gian trước đó sẽ bằng thời gian hiện tại
t++;
t_den1--;
t_den2--;
}
hienthi(t_den1,t_den2);
}
void hienthi(int so1, int so2)//biến số hiển thị trên 2 led 7 đoạn
{
shiftOut(DIO, SCLK, MSBFIRST , LED_0F[(so1/10)%10]);
shiftOut(DIO, SCLK, MSBFIRST , 0x01);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(t);
shiftOut(DIO, SCLK, MSBFIRST , LED_0F[so1%10]);
shiftOut(DIO, SCLK, MSBFIRST , 0x01<<1);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(t);
shiftOut(DIO, SCLK, MSBFIRST , LED_0F[so2/10%10]);
shiftOut(DIO, SCLK, MSBFIRST , 0x01<<2);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(t);
shiftOut(DIO, SCLK, MSBFIRST , LED_0F[so2%10]);
shiftOut(DIO, SCLK, MSBFIRST , 0x01<<3);
digitalWrite(RCLK,LOW);
digitalWrite(RCLK,HIGH);
delay(t);
}

You might also like