久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3537|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

四位共陰數(shù)碼管模擬交通燈 Arduino程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:849478 發(fā)表于 2020-12-26 10:34 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
hello大家好,今天早上過馬路時等紅綠燈時,也想自己做一個玩玩,代碼如下,由于作者水平有限,以下代碼僅供參考,使用開發(fā)板為arduino uno



#define redLed A2
#define greeLed A0
#define yelloLed A1
int redDS=15;
int greenDS=15;
int yellowDS=5;
char signal;

int a = 9;
int b = 8;
int c = 7;
int d = 6;
int e = 5;
int f = 4;
int g = 3;
int dp = 2;

int d4 = 13;
int d3 = 12;
int d2 = 11;
int d1 = 10;

long n = 12030;
int x = 100;
int del = 55;
void setup()
{
   Serial.begin(9600);
   for(int a=2;a<=13;a++)
   {
    pinMode(a,OUTPUT);
   }
     for(int A0=2;A0<=A2;A0++)
   {
    pinMode(A0,OUTPUT);
   }
}
void loop()
{
  jiaotongdeng();
}

void WX(unsigned char x)//數(shù)碼管位選
{
    switch(x)
    {
    case 1:
          digitalWrite(d1,LOW);
          digitalWrite(d2,HIGH);
          digitalWrite(d3,HIGH);
          digitalWrite(d4,HIGH);
     break;
     case 2:
          digitalWrite(d1,HIGH);
          digitalWrite(d2,LOW);
          digitalWrite(d3,HIGH);
          digitalWrite(d4,HIGH);
     break;
     case 3:
          digitalWrite(d1,HIGH);
          digitalWrite(d2,HIGH);
          digitalWrite(d3,LOW);
          digitalWrite(d4,HIGH);
     break;
      case 4:
          digitalWrite(d1,HIGH);
          digitalWrite(d2,HIGH);
          digitalWrite(d3,HIGH);
          digitalWrite(d4,LOW);
     break;
        default:
          digitalWrite(d1,HIGH);
          digitalWrite(d2,HIGH);
          digitalWrite(d3,HIGH);
          digitalWrite(d4,HIGH);
            break;
    }
}
unsigned char number[10][8] =               
{   //a b c d e f g dp
    {1, 1,  1,  1,  1,  1,  0,  0},   
    {0, 1,  1,  0,  0,  0,  0,  0},   
    {1, 1,  0,  1,  1,  0,  1,  0},         
    {1, 1,  1,  1,  0,  0,  1,  0},        
    {0, 1,  1,  0,  0,  1,  1,  0},         
    {1, 0,  1,  1,  0,  1,  1,  0},         
    {1, 0,  1,  1,  1,  1,  1,  0},      
    {1, 1,  1,  0,  0,  0,  0,  0},      
    {1, 1,  1,  1,  1,  1,  1,  0},        
    {1, 1,  1,  0,  0,  1,  1,  0}         
};
void Clear()//清屏函數(shù)
{
  digitalWrite(a,LOW);
  digitalWrite(b,LOW);
  digitalWrite(c,LOW);
  digitalWrite(d,LOW);
  digitalWrite(e,LOW);
  digitalWrite(f,LOW);
  digitalWrite(g,LOW);
  digitalWrite(dp,LOW);
}
void DX(unsigned char x)//數(shù)碼管段選
{
    digitalWrite(a,number[x][0]);          //a查詢碼值表
    digitalWrite(b,number[x][1]);
    digitalWrite(c,number[x][2]);
    digitalWrite(d,number[x][3]);
    digitalWrite(e,number[x][4]);
    digitalWrite(f,number[x][5]);
    digitalWrite(g,number[x][6]);
    digitalWrite(dp,number[x][7]);
}
void display(unsigned char y,unsigned char Number)
{
  WX(y);
  DX(Number);
  Clear();
}
void jiaotongdeng()
{
   if(Serial.available()>0){
    signal=Serial.read();
    Serial.print(signal);
    if(signal=='A'){//修改紅燈定時時間0~99s
      if(Serial.available()>0){
        redDS=Serial.read()-48;
        if(Serial.available()>0){

        int zifu=Serial.read()-48;
        redDS=redDS*10+zifu;
        Serial.print("-->");
        Serial.println(redDS);
      }
    }
    }
    if(signal=='B'){//修改綠燈定時時間0~99s
      if(Serial.available()>0){
        greenDS=Serial.read()-48;
        Serial.println(greenDS);
        if(Serial.available()>0){

        int zifu=Serial.read()-48;
        greenDS=greenDS*10+zifu;
        Serial.println(greenDS);
      }
    }
    }
    if(signal=='C'){//修改黃燈定時時間0~99s
      if(Serial.available()>0){
        yellowDS=Serial.read()-48;
        Serial.println(yellowDS);
        if(Serial.available()>0){

        int zifu=Serial.read()-48;
        yellowDS=yellowDS*10+zifu;
        Serial.println(yellowDS);
      }
     }
    }
  }
  digitalWrite(redLed,HIGH);
  for(int i=redDS;i>=0;i--){
    for(int k=5000;k>0;k--){
    display(1,i/10);
    display(2, i%10);  
    }     
  }
  digitalWrite(redLed,LOW);
  digitalWrite(yelloLed,HIGH);
  for(int i=yellowDS;i>=0;i--){
    for(int k=5000;k>0;k--){
    display(2,i/10);
    display(3, i%10);  
    }
  }
  digitalWrite(yelloLed,LOW);
  digitalWrite(greeLed,HIGH);
  for(int i=greenDS;i>=0;i--){
    for(int k=5000;k>0;k--){
    display(3,i/10);
    display(4, i%10);  
    }
  }
  digitalWrite(greeLed,LOW);
}最后有個不情之請,如果您會使用0x..十六進(jìn)制寫法改進(jìn)我的代碼,請發(fā)到評論區(qū)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:138707 發(fā)表于 2023-7-30 12:24 | 只看該作者
很有創(chuàng)意,我喜歡
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 成人美女免费网站视频 | 波多野结衣二区 | 中文字幕av色 | 久久国产高清 | 国产精品视频久久久久久 | 免费看片在线播放 | 久久久久一区二区三区四区 | 欧美xxxx色视频在线观看免费 | 成人欧美一区二区三区在线播放 | 亚洲成人精品国产 | 情侣酒店偷拍一区二区在线播放 | 91大神在线资源观看无广告 | 午夜免费在线观看 | 亚洲欧美日韩久久 | 精品国产黄色片 | 亚洲三区视频 | 成年免费在线观看 | 日韩午夜精品 | 亚洲成人av | 色综合天天天天做夜夜夜夜做 | 91精品国产综合久久香蕉麻豆 | 国产一级在线视频 | 黄视频免费 | 久久亚洲国产精品 | 欧美日韩国产在线 | 国产精品久久久亚洲 | 国产ts人妖系列高潮 | 国产精品亚洲成在人线 | 国产精品免费一区二区三区四区 | 一区免费观看 | 日韩欧美中文字幕在线观看 | 国产情侣激情 | 成人av网站在线观看 | 成人在线视频一区 | 午夜精品一区二区三区在线视频 | 久草www| 亚洲黄色一级毛片 | 久在线| 成人性视频免费网站 | 中文av电影 | 成人免费看片 |