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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于stm32的LED控制程序、原理圖、PCB

[復制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:524923 發(fā)表于 2022-1-25 05:57 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
使用stm32控制8個LED的亮度,并通過四位數(shù)碼管顯示輸出的PWM(控制亮度)和相應被編輯的位數(shù),通過四個按鍵選擇和編輯,按鍵1,2左右切換選擇LED燈,按鍵3,4上下改變PWM數(shù)值(亮度),并且可以通過串口發(fā)送和接收。
按鍵1,2可以左右切換編輯哪一個LED的亮度,按鍵3,4可以上下調(diào)節(jié)PWM的值,相關信息會通過數(shù)碼管顯示,而且相應信息也會發(fā)送到串口,也可以通過串口發(fā)送控制命令控制某一位的亮度
由于這個項目是幫別人做的,我雖然畫了PCB,但并沒有打板,只使用最小系統(tǒng)通過杜邦線連接對應的IO做了測試。但PCB可用。


控制主要程序

void Key_Control(void)
{
        if(key2_Fallingflag&&key2_Risingflag)
        {
                key2_Fallingflag=0;
                key2_Risingflag=0;
               
                if(LED_Num<8)
                {
                        key_flag=1;
                        LED_Num++;
                }
        }
        else if(key3_Fallingflag&&key3_Risingflag)
        {
                key3_Fallingflag=0;
                key3_Risingflag=0;
               
                if(LED_Num>0)
                {
                        key_flag=1;
                        LED_Num--;
                }
        }
        else if(key0_Fallingflag&&key0_Risingflag)
        {
                key0_Fallingflag=0;
                key0_Risingflag=0;
               
                if(key_flag)
                {
                        switch(LED_Num-1)
                        {
                                case 0:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                case 1:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                case 2:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                case 3:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                case 4:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                case 5:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                case 6:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                case 7:if(PWM_OUT[LED_Num-1]<60) PWM_OUT[LED_Num-1]+=10;break;
                                default:break;
                        }
                }
        }
        else if(key1_Fallingflag&&key1_Risingflag)
        {
                key1_Fallingflag=0;
                key1_Risingflag=0;
               
                if(key_flag)
                {
                        switch(LED_Num-1)
                        {
                                case 0:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                case 1:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                case 2:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                case 3:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                case 4:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                case 5:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                case 6:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                case 7:if(PWM_OUT[LED_Num-1]>0) PWM_OUT[LED_Num-1]-=10;break;
                                default:break;
                        }
                }
        }
        else if(USART_Flag)
        {
                USART_Flag=0;
                if(USART_RX_TEMP[3]!='0' && (u8)(USART_RX_TEMP[3]-'0')<=8)
                {
                        LED_Num=(u8)(USART_RX_TEMP[3]-'0');
                       
                        if((u8)(USART_RX_TEMP[0]-'0')<=6)
                        {
                                key_flag=1;
                                PWM_OUT[LED_Num-1]=((u8)(USART_RX_TEMP[0]-'0')*10+(u8)(USART_RX_TEMP[1]-'0'));               
                        }
                }
        }
}

stm32控制LED原理圖.png (243.02 KB, 下載次數(shù): 139)

stm32控制LED原理圖

stm32控制LED原理圖

stm32控制LEDPCB2.png (238.76 KB, 下載次數(shù): 127)

stm32控制LEDPCB-2D

stm32控制LEDPCB-2D

stm32控制LEDPCB3.png (250.43 KB, 下載次數(shù): 118)

stm32控制LEDPCB-3D

stm32控制LEDPCB-3D

第一個LED亮度.jpg (2.84 MB, 下載次數(shù): 119)

第一個LED亮度

第一個LED亮度

第二個LED亮度.jpg (2.91 MB, 下載次數(shù): 130)

第二個LED亮度

第二個LED亮度

第三個LED亮度.jpg (2.57 MB, 下載次數(shù): 117)

第三個LED亮度

第三個LED亮度

串口顯示.png (38.23 KB, 下載次數(shù): 129)

串口顯示每次LED改變

串口顯示每次LED改變

串口發(fā)送.png (47.73 KB, 下載次數(shù): 114)

通過串口發(fā)送控制命令

通過串口發(fā)送控制命令

通過串口發(fā)送控制命令.jpg (2.75 MB, 下載次數(shù): 109)

串口控制的LED信息顯示

串口控制的LED信息顯示

程序.rar

2.75 MB, 下載次數(shù): 23, 下載積分: 黑幣 -5

電路圖.rar

2.78 MB, 下載次數(shù): 27, 下載積分: 黑幣 -5

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

使用道具 舉報

沙發(fā)
ID:914666 發(fā)表于 2022-2-9 10:01 | 只看該作者
51hei有你更精彩
回復

使用道具 舉報

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

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

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

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日日日日干 | www.午夜| 黑人巨大精品欧美一区二区 | 视频在线观看一区 | 亚洲视频在线播放 | 免费一级黄色片 | 亚洲天堂免费 | 香蕉在线观看视频 | 精品一二三区 | 日韩精品在线播放 | 日韩国产精品视频 | 国产一区在线观看视频 | 97久久久久 | 久久免费网 | 伊人精品久久 | 久久亚洲免费视频 | 波多野结衣一区二区三区在线观看 | 久久久网| 久久一级片 | 一级黄色性生活片 | 成人欧美视频 | 91日韩在线 | 一级毛片黄色 | 操操操av| 国产黄色免费网站 | 天天干夜夜艹 | 91久久综合亚洲鲁鲁五月天 | 国产香蕉av | 国产欧美日韩一区 | 久久99精品久久久久久 | 毛片中文字幕 | 激情久久久 | 天天色小说| 日韩国产在线 | 日韩久久精品 | 中国久久久 | 九九久久免费视频 | 欧美激情在线播放 | 日韩久久久| 亚洲第一区视频 | 波多野结衣一区二区三区 |