国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

這篇具有很好參考價(jià)值的文章主要介紹了基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

作品嗶哩嗶哩視頻:https://www.bilibili.com/video/BV1Yb4y1a7AQ#reply5536921990
資料鏈接:
藍(lán)牙彩燈v1.01資料鏈接:
CSDN:
https://download.csdn.net/download/mbs520/25149435
百度網(wǎng)盤:
https://pan.baidu.com/s/14Vout7Q2P6JBDZCCd8Gm6w
提取碼:b7it

藍(lán)牙彩燈v1.03資料鏈接:
https://download.csdn.net/download/mbs520/25150035
取走記得點(diǎn)贊~
有問題可以在評(píng)論區(qū)發(fā)表或者私信
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

實(shí)物鏈接:https://m.tb.cn/h.56p8Lt8?tk=jLixWYHUq6z CZ0001

一、作品背景

在智能的2021年代,年輕的小伙伴都患上了懶惰的癥狀,我也一樣。
有一個(gè)難以入眠的夜晚,我打開了王者榮耀,我習(xí)慣了玩手機(jī)都要開著燈打,這樣可以減少對(duì)眼睛的損傷,終于,贏了好幾把,時(shí)間已經(jīng)到了凌晨2點(diǎn)半,我也開始有了睡意,當(dāng)我放下手機(jī),準(zhǔn)備閉眼入睡時(shí),發(fā)現(xiàn)燈光格外耀眼,心煩意亂,實(shí)在不想按下那下床走好幾步才能觸碰到的開關(guān),但是房間的設(shè)計(jì)就是這樣,無法改變。無奈的我還是掙扎地下床按下了開關(guān),這才安心入睡。
作為學(xué)電子專業(yè)的我并不妥協(xié),我一定要設(shè)計(jì)一個(gè)不下床就可以關(guān)掉的燈。

二、功能設(shè)計(jì)與實(shí)現(xiàn)過程

(一)功能設(shè)計(jì)
1、可以用按鍵控制燈的亮滅、亮度以及切換顏色
2、可以用按鍵控制燈的6種以上顯示樣式
4、設(shè)計(jì)一個(gè)外殼,讓它更加美觀
5、設(shè)計(jì)一個(gè)手機(jī)APP,實(shí)現(xiàn)按鍵的所有功能以及能夠調(diào)節(jié)燈的任意顏色
6、設(shè)計(jì)一個(gè)手機(jī)APP升級(jí)單片機(jī)程序功能,能夠把單片機(jī)程序保存到某個(gè)版本的手機(jī)APP中,手機(jī)APP點(diǎn)擊升級(jí),就可以完成對(duì)單片機(jī)程序的升級(jí)。
(二)實(shí)現(xiàn)的過程
1、設(shè)計(jì)一個(gè)按鍵與單片機(jī)連接,編寫多功能按鍵(單擊、雙擊、長(zhǎng)按)來控制燈的亮滅、亮度以及切換顏色以及6種以上顯示樣式

2、用CAD繪制一個(gè)與PCB大小合適的外殼,交給淘寶定制

3、用QT編寫一個(gè)安卓APP,利用藍(lán)牙模塊與單片機(jī)進(jìn)行通信,完成控制與升級(jí)的功能

三、實(shí)現(xiàn)基礎(chǔ)功能

(一)、首先是要選材

1、LED選擇:WS2812
既然是想做任意顏色的燈,那么毫無疑問選擇最普遍的WS2812,24位全彩RGB彩燈,可以發(fā)出2^24=16777215種顏色。
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

2、單片機(jī)選擇:STM32G0
在當(dāng)今MCU那么稀貴的情況下,當(dāng)然是要為自己的腰包考慮,WS2812的驅(qū)動(dòng)時(shí)鐘大概需要800KHZ,速度要求很高,首先選擇stm32,看了一下價(jià)格,選擇了和藹可親的stm32g030c8t6,6元還包郵
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序
3、通信模塊選擇:藍(lán)牙模塊JDY-31
要手機(jī)控制燈,首先想到用藍(lán)牙模塊,價(jià)格考慮,選擇全網(wǎng)最便宜的藍(lán)牙模塊JDY-31,比起HC-05,它更加小巧,就是連接速度不是很快
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

有了這3個(gè)主要材料,我們就可以開始設(shè)計(jì)一下原理圖

(二)、原理圖設(shè)計(jì)

1、單片機(jī)需要3.3V供電,首先設(shè)計(jì)一個(gè)電源部分,先用usb進(jìn)行供電5V給ws2812,再用降壓芯片降壓到3.3V供給MCU,
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

2、設(shè)計(jì)一個(gè)單片機(jī)最小系統(tǒng),以及預(yù)留一個(gè)下載接口,方便使用ST-LINK進(jìn)行下載程序
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序
3、然后要連接一個(gè)藍(lán)牙和一個(gè)按鍵作為控制,再預(yù)留一個(gè)LED作為指示燈
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序
4、RGB燈的電路設(shè)計(jì),這里兩組LED,用兩個(gè)IO口控制,防止LED過多導(dǎo)致信號(hào)失真
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序
這樣一張?jiān)韴D就設(shè)計(jì)好啦

(二)、第一版本PCB設(shè)計(jì)

1、根據(jù)原理圖給定相應(yīng)的封裝導(dǎo)入PCB,再進(jìn)行布局與布線,設(shè)計(jì)好一塊給淘寶客服能夠打印出來的PCB圖紙
2D:
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

3D:
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序
然后交給淘寶,這里推薦嘉立創(chuàng),便宜,質(zhì)量也高。
這是打印出來的第一板PCB:
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

(三)、焊接PCB板

1、打印出PCB之后,當(dāng)然是要把元器件焊接到PCB板上,第一塊板焊接的時(shí)候先不用一次性全部焊接上去,先焊接電源部分,看看電源芯片是否能夠正常工作,比如我畫的這塊板子USB母座封裝與原理圖不對(duì)應(yīng),導(dǎo)致正負(fù)極直接反向,就很容易導(dǎo)致元器件損壞,檢測(cè)完電壓正常之后,再焊接其他元器件

基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

(四)編寫單片機(jī)程序

單片機(jī)程序包含了很多知識(shí)
1、輕量級(jí)多任務(wù)系統(tǒng)
2、藍(lán)牙數(shù)據(jù)自定義控制協(xié)議、藍(lán)牙無線升級(jí)單片機(jī)
3、多種控制方式按鍵+藍(lán)牙
4、多功能按鍵,單擊、雙擊、長(zhǎng)按
5、ws2812串聯(lián)控制
6、呼吸燈算法
7、顏色漸變算法

/****************************************
* 函數(shù)名稱: DIS_TASK()
* 輸入?yún)?shù): 無
* 輸出參數(shù): 無
* 功    能: 顯示任務(wù)
*
*****************************************/

void DIS_TASK(void)
{
	static u8 r=0,g=0,b=0,a=0,dir=0;
	static int i,cnt=0;
	static int color_rgb;
    SCHTaskBegin(); //開始固定格式一定要的
    while (1)
    {
		if(SysState.Dis_flag == 1)//可以更新顯示
		{
					/***********************靜態(tài)*******************************/
					if(SysState.Dismode == DisMode_Static)//靜態(tài)
					{
						SysState.Dis_flag = 0;
						RGB_Refresh(SysState.StaticRgb,LED_NUM);//顯示
						RGB2_Refresh(SysState.StaticRgb,LED_NUM);//顯示
					}
					
					/***********************呼吸*******************************/
					else if(SysState.Dismode == DisMode_Breathe)//呼吸
					{
						SysState.Dedlay_Time=20;
						if(dir==0)
						{
							a += (1+a*10/0xff);
							if(a > 0xf0)dir = 1;
						}else if(dir)
						{
							a -= (1+a*10/0xff);
							if(a <= 4)dir = 0;
						}
						
						r = ((SysState.StaticRgb>>16)%0x100)*a/0xff;
						g = ((SysState.StaticRgb>>8)%0x100)*a/0xff;
						b = ((SysState.StaticRgb>>0)%0x100)*a/0xff;
						color_rgb = (r<<16) + (g<<8) + b;
						printf("%d %d %d %d\r\n",r,g,b,a);
						RGB_Refresh(color_rgb,LED_NUM);//顯示
						RGB2_Refresh(color_rgb,LED_NUM);//顯示
						SCHCurTaskDly(SysState.Dedlay_Time);
					}
					
					/***********************閃爍*******************************/
					else if(SysState.Dismode ==DisMode_Twinkle)//閃爍
					{
						SysState.Dedlay_Time=200;//*SysState.Dedlay_Ratio/0x0f;;
						RGB_Refresh(SysState.StaticRgb,LED_NUM);
						RGB2_Refresh(SysState.StaticRgb,LED_NUM);
						SCHCurTaskDly(SysState.Dedlay_Time);
						RGB_Refresh(0,LED_NUM);
						RGB2_Refresh(0,LED_NUM);
						SCHCurTaskDly(SysState.Dedlay_Time);
					}
					
					/***********************漸變*******************************/
					else if(SysState.Dismode ==DisMode_GraChange)//漸變
					{
						extern u8 GraChange_flag;
						SysState.Dedlay_Time=100;//*SysState.Dedlay_Ratio/0x0f;
						RgbAlg(&SysState.StaticRgb,&GraChange_flag);//漸變算法
						RGB_Refresh(SysState.StaticRgb,LED_NUM);//顯示
						RGB2_Refresh(SysState.StaticRgb,LED_NUM);//顯示
						SCHCurTaskDly(SysState.Dedlay_Time);
					}
					
					/***********************蹦迪*******************************/
					else if(SysState.Dismode == DisMode_DiscoDance)//蹦迪
					{
						SysState.Dedlay_Time=20;//*SysState.Dedlay_Ratio/0x0f;
						RGB_Refresh(Static_DisColor[cnt],LED_NUM);
						RGB2_Refresh(Static_DisColor[cnt],LED_NUM);
						SCHCurTaskDly(SysState.Dedlay_Time);
						RGB_Refresh(0,LED_NUM);
						RGB2_Refresh(0,LED_NUM);
						SCHCurTaskDly(SysState.Dedlay_Time*50);
					}
					
					/***********************流水*******************************/
					else if(SysState.Dismode == DisMode_RunWater)//流水
					{
						static int i=0,flag=0;
						SysState.Dedlay_Time=100;
						i++;
						if(i == LED_NUM)
						{
							i=0;flag=!flag;
						}
						if(flag){		//設(shè)置顏色		
							RGB_Refresh(SysState.StaticRgb,i+1);
							RGB2_Refresh(SysState.StaticRgb,i+1);
							SysState.Dedlay_Time=50;//*SysState.Dedlay_Ratio/0x0f;
							SCHCurTaskDly(SysState.Dedlay_Time);
						}
						else{		//滅
							RGB_Refresh(0,i+1);
							RGB2_Refresh(0,i+1);
							SysState.Dedlay_Time=50;//*SysState.Dedlay_Ratio/0x0f;
							SCHCurTaskDly(SysState.Dedlay_Time);
						}
						
					}
					
					/***********************用戶*******************************/
					else if(SysState.Dismode ==DisMode_User1)  //用戶
					{
						SysState.Dedlay_Time=1000;
						RGB_Refresh(SysState.StaticRgb,1);
						RGB2_Refresh(0,1);
						SCHCurTaskDly(SysState.Dedlay_Time);
						RGB2_Refresh(SysState.StaticRgb,1);
						RGB_Refresh(0,1);
						SCHCurTaskDly(SysState.Dedlay_Time);
					}
		}
		SCHCurTaskDly(10);
    }
    SCHTaskEnd();  //結(jié)束固定格式一定要的
}

(五)下載程序驗(yàn)證

下載程序后測(cè)試ws2812是否正常工作

四、外殼設(shè)計(jì)

(一)CAD圖紙?jiān)O(shè)計(jì)

感覺沒有一個(gè)外殼會(huì)很難看,添加一個(gè)外殼,讓世界變得美麗
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

這中間的洞尺寸有誤:5乘7改7乘7

基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

(二)磨砂亞克力板

淘寶搜磨砂亞克力板定制,發(fā)送CAD圖紙給師傅,就可以給你做了
這是做好的亞克力板,是按照PCB板尺寸量身定做的
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

五、重新設(shè)計(jì)PCB

重新布局設(shè)計(jì)出來第3版本成品板:PCBV1.3
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序
這是打樣后焊接好的樣子:
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

六、QT安卓APP設(shè)計(jì)

(一)界面設(shè)計(jì)

基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

(二)QT程序設(shè)計(jì)

展示部分代碼:


MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    this->Start_Init();
    this->File_Init();
    this->BuleTooth_Init();
    this->Label_Init();
    this->PushButton_Init();
    this->ColorSlider_Init();
    this->setFocus();
}

MainWindow::~MainWindow()
{
    bin_save(FileInfo);
    delete ui;
}

//起始代碼
void MainWindow::Start_Init()
{
    //設(shè)置背景圖片
    this->setStyleSheet("QMainWindow{border-image: url(:/pic/btmenuv2.jpg);}");
    //獲取屏幕大小
    QScreen *screen = QApplication::screens().at(0);
    src_w = screen->size().width();
    src_h = screen->size().height();
    if(src_w <= 0  || src_h <= 0)
    {
        src_h = 2267;src_w = 1080;
        this->setGeometry(0,0,src_w,src_h);//1080   2267
        qDebug() << "src get err ======== "<< src_w <<src_h << endl;
    }
    else
    {
        this->setGeometry(0,0,src_w,src_h);//1080   2267
        qDebug() << "src get ok ======== "  << src_w <<src_h << endl;
    }

}

//藍(lán)牙初始化
void MainWindow::BuleTooth_Init(void)
{
    //藍(lán)牙連接初始化代碼
    timer_conflag = new QTimer;
    ptimer = new QTimer;
    //QBluetoothDeviceDiscoveryAgent 這個(gè)是指掃描周圍藍(lán)牙設(shè)備!
    discoveryAgent = new QBluetoothDeviceDiscoveryAgent();
    //QBluetoothLocalDevice 是指配置獲取設(shè)備的藍(lán)牙狀態(tài)信息等!
    localDevice = new QBluetoothLocalDevice();
    //QBluetoothSocket指進(jìn)行鏈接藍(lán)牙設(shè)備,讀寫信息!
    socket = new QBluetoothSocket(QBluetoothServiceInfo::RfcommProtocol);

    //多窗口初始化
    btcwindow = new BTMainWindow(this);
    btcwindow->hide();
    aboutwindow = new AboutMainWindow(this);
    aboutwindow->hide();

    connect(socket,
           SIGNAL(readyRead()),
           this,
           SLOT(readBluetoothDataEvent())
           );
    connect(socket,
           SIGNAL(connected()),
           this,
           SLOT(bluetoothConnectedEvent())
           );
    connect(socket,
           SIGNAL(disconnected()),
           this,
           SLOT(bluetoothDisconnectedEvent())
           );

    localDevice->powerOn();//打開藍(lán)牙
    discoveryAgent->start();//開始掃描
}




//顏色條初始化
void MainWindow::ColorSlider_Init(void)
{
    QColor color;
    color.setRgb(0x00,0x00,0x00);
    colorslider_R = new ColorSlider(this);
    colorslider_G = new ColorSlider(this);
    colorslider_B = new ColorSlider(this);
    colorslider_A = new ColorSlider(this);

    colorslider_R->init(ColorSlider::RGB,ColorSlider::RED,color,0x00,0xFF);qDebug() << color << endl;
    colorslider_G->init(ColorSlider::RGB,ColorSlider::GREEN,color,0x00,0xff);qDebug() << color << endl;
    colorslider_B->init(ColorSlider::RGB,ColorSlider::BLUE,color,0x00,0xff);qDebug() << color << endl;
    colorslider_A->init(ColorSlider::RGB,ColorSlider::ALPHA,color,0x00,0xff);qDebug() << color << endl;

    colorslider_R->setGeometry(100,200,880,60);
    colorslider_G->setGeometry(100,400,880,60);
    colorslider_B->setGeometry(100,600,880,60);
    colorslider_A->setGeometry(100,800,880,60);
}
//按鈕初始化
void MainWindow::PushButton_Init(void)
{
    //刷新定時(shí)器
    static QColor last_Color;
    time1= new QTimer(this);
    time1->start(1000);
    connect(time1,&QTimer::timeout,[=](){

       time1->start(100);
       if(Connect_Flag == 1)//連接指示
       {
           Connect_Flag = 0;
           btcwindow->hide();
           this->show();
           QMessageBox::information(this,tr("提示"),tr("藍(lán)牙連接成功!"));

           QByteArray arrayData;    //發(fā)送空指令
           QString s = QString("NONE\r\n");
           qDebug() << s << endl;
           arrayData = s.toUtf8();
           socket->write(arrayData);
           s.clear();
           arrayData.clear();
       }
       if(last_Color != Color_sum)//發(fā)送指令
       {
           update();//更新
           unsigned int color_d =   ((Color_sum.alpha()/16)<<24)+(Color_sum.red()<<16) + (Color_sum.green()<<8)
                         + (Color_sum.blue()<<0) ;
           QByteArray arrayData;
           QString s = QString("COLOR:%1\r\n").arg(color_d);
           qDebug() << s << endl;
           arrayData = s.toUtf8();
           socket->write(arrayData);
           s.clear();
           arrayData.clear();
       }
       last_Color = Color_sum;

    });
    //色塊按鈕
    // QPushButton *phbutton[10];
    for(int i=0; i<10; i++)
    {
        int r,g,b;
        r = FileInfo->color_tab[i]>>16;
        g = (FileInfo->color_tab[i]>>8)%256;
        b = FileInfo->color_tab[i]%256;
        phbutton[i] = new QPushButton(this);
        if(i<5)phbutton[i]->setGeometry(90+i*200*src_w/1080,1600*src_h/2267,100*src_w/1080,100*src_h/2267);
        else if(i>=5)phbutton[i]->setGeometry(90+(i-5)*200*src_w/1080,1800*src_h/2267,100*src_w/1080,100*src_h/2267);
        QString s = QString("background-color: rgb(%1, %2, %3);").arg(r).arg(g).arg(b);
        phbutton[i]->setStyleSheet(s);
        phbutton[i]->setWindowFlags(Qt::WindowStaysOnTopHint);
        connect( phbutton[i],&myPushButton::clicked,[=](){
            int r,g,b;
            if(SaveColorFlag != 0)
            {
                r = Color_sum.red();
                g = Color_sum.green();
                b = Color_sum.blue();
                SaveColorFlag = 0;
                update();
                FileInfo->color_tab[i] = (r<<16)+(g<<8)+b;
                QString s = QString("background-color: rgb(%1, %2, %3);").arg(r).arg(g).arg(b);
                phbutton[i]->setStyleSheet(s);
            }
            else
            {
                r = FileInfo->color_tab[i]>>16;
                g = (FileInfo->color_tab[i]>>8)%256;
                b = FileInfo->color_tab[i]%256;
                Color_sum.setRgb(r,g,b,Color_sum.alpha());
                ColorSlider_paint_Flag = 2;
            }
        });
    }

(三)APP功能設(shè)計(jì)

1、主界面功能

按鈕 功能說明
連接按鈕 進(jìn)入藍(lán)牙連接界面/雙擊連接設(shè)備
關(guān)于按鈕 進(jìn)入軟件介紹/升級(jí)MCU界面
紅色滑動(dòng)條 調(diào)節(jié)紅色色彩
綠色滑動(dòng)條 調(diào)節(jié)綠色色彩
藍(lán)色滑動(dòng)條 調(diào)節(jié)藍(lán)色色彩
灰白滑動(dòng)條 調(diào)節(jié)總體亮度
顏色預(yù)覽球 預(yù)覽當(dāng)前顯示顏色
顏色快捷顯示 單擊可以顯示按鈕顏色
顯示模式 顯示模式切換
底部信息顯示 顯示接收到的信息/歡迎信息
連接信息顯示 顯示當(dāng)前連接狀態(tài)

先點(diǎn)顏色預(yù)覽球,會(huì)出現(xiàn)保存選擇框,
再點(diǎn)擊顏色選擇按鈕,即可保存當(dāng)前調(diào)節(jié)好的顏色基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

2、藍(lán)牙連接界面

按鈕 功能說明
設(shè)備連接選擇 雙擊連接設(shè)備
返回按鈕 返回主界面

1、連接成功自動(dòng)返回主界面
2、自動(dòng)連接功能:打開APP無需動(dòng)作,自動(dòng)找尋藍(lán)牙彩燈設(shè)備自動(dòng)連接,無需手動(dòng)連接
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

3、關(guān)于界面

按鈕 功能說明
作者信息顯示 只讀
返回按鈕 返回主界面
顯示版本 藍(lán)牙彩燈應(yīng)答信號(hào) 例如1.2版本閃紅燈1次,綠燈兩次
升級(jí)MCU 連接好藍(lán)牙,點(diǎn)擊升級(jí),可以使單片機(jī)軟件升到當(dāng)前版本,軟件版本一樣切勿反復(fù)升級(jí),可能升級(jí)失敗
升級(jí)進(jìn)度條 顯示升級(jí)進(jìn)度 單片機(jī)升級(jí)失敗后需要進(jìn)入升級(jí)模式重新升級(jí),否則將無法正常使用。
基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序

4、升級(jí)代碼提示

顯示類型 顯示內(nèi)容
升級(jí)失敗 藍(lán)牙彩燈顯示紅色
升級(jí)成功 藍(lán)牙彩燈顯示綠色
升級(jí)過程 藍(lán)牙彩燈顯示淡藍(lán)色進(jìn)度

基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序文章來源地址http://www.zghlxwxcb.cn/news/detail-486738.html

到了這里,關(guān)于基于stm32作品設(shè)計(jì):多功能氛圍燈、手機(jī)APP無線控制ws2812,MCU無線升級(jí)程序的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 基于STM32的多功能門禁系統(tǒng)(AS608指紋識(shí)別、密碼解鎖、刷卡解鎖)

    基于STM32的多功能門禁系統(tǒng)(AS608指紋識(shí)別、密碼解鎖、刷卡解鎖)

    目錄 一、項(xiàng)目功能 二、視頻 三、原理圖 4、材料選擇 5、部分程序 1、AS608指紋解鎖;可以錄入、刪除、驗(yàn)證指紋; 2、密碼解鎖;可以密碼驗(yàn)證、修改密碼和保存密碼; 3、刷卡解鎖; 4、OLED液晶顯示; 基于STM32的多功能門禁系統(tǒng)(AS608指紋識(shí)別、密碼解鎖、刷卡解鎖) AS608指紋

    2024年02月12日
    瀏覽(24)
  • 【Proteus仿真】【STM32單片機(jī)】多功能智能臺(tái)燈

    【Proteus仿真】【STM32單片機(jī)】多功能智能臺(tái)燈

    本項(xiàng)目使用Proteus8仿真STM32單片機(jī)控制器,使用LCD1604液晶、按鍵、蜂鳴器、語音識(shí)別模塊、PCF8591 ADC模塊、DHT11溫濕度傳感器、光線傳感器、臺(tái)燈、人體紅外傳感器等。 主要功能: 系統(tǒng)運(yùn)行后,LCD1604液晶顯示溫濕度和光線強(qiáng)度、時(shí)間日期,系統(tǒng)工作模式;系統(tǒng)默認(rèn)為自動(dòng)模式

    2024年02月07日
    瀏覽(27)
  • STM32超級(jí)藍(lán)牙小車——基于STM32F103C8T6的多功能藍(lán)牙小車(PID循跡、跟蹤、有源蜂鳴器播放音樂、藍(lán)牙遙控、AD采集+DMA轉(zhuǎn)運(yùn)等超多元素小車)

    STM32超級(jí)藍(lán)牙小車——基于STM32F103C8T6的多功能藍(lán)牙小車(PID循跡、跟蹤、有源蜂鳴器播放音樂、藍(lán)牙遙控、AD采集+DMA轉(zhuǎn)運(yùn)等超多元素小車)

    一、項(xiàng)目時(shí)間:2023.7.24~11.26 二、實(shí)現(xiàn)效果:通過藍(lán)牙控制小車運(yùn)動(dòng)與模式轉(zhuǎn)換 ? ? ? ? ? ? ? ? ? ? ? ? 模式一:循跡模式 ? ? ? ? ? ? ? ? ? ? ? ? 模式二:跟蹤模式 ? ? ? ? ? ? ? ? ? ? ? ? 模式三:音樂模式 ? ? ? ? ? ? ? ? ? ? ? ? 模式四:控制運(yùn)動(dòng)模式 三、使

    2024年02月04日
    瀏覽(24)
  • 【基于FPGA的芯片設(shè)計(jì)】多功能ALU

    【基于FPGA的芯片設(shè)計(jì)】多功能ALU

    目錄 一、實(shí)驗(yàn)要求 二、源代碼 1. 頂層模塊 2. 數(shù)據(jù)輸入模塊 3. ALU運(yùn)算模塊 4. 結(jié)果處理模塊 5. 掃描數(shù)碼管模塊 5.1 掃描數(shù)碼管頂層 5.2 分頻器 5.3 數(shù)碼管顯示 三、仿真代碼 四、結(jié)構(gòu)層圖 五、管腳配置 實(shí)驗(yàn)板卡:xc7a100tlc sg324-2L,共20個(gè)開關(guān) 通過高低位控制,實(shí)現(xiàn)32位數(shù)據(jù)A、

    2024年02月05日
    瀏覽(27)
  • 基于VHDL的多功能電子鐘設(shè)計(jì)

    基于VHDL的多功能電子鐘設(shè)計(jì)

    一、目的任務(wù) 熟悉Quartus II的使用方法和步驟,掌握使用Quartus II來進(jìn)行FPGA編程和仿真的方法和技巧。熟悉FPGA硬件的調(diào)試方法,掌握初步的FPGA 和周邊硬件的調(diào)試和故障診斷的能力。 掌握用 VHDL 語言進(jìn)行數(shù)字系統(tǒng)設(shè)計(jì)的基本方法和流程,加深對(duì) EDA 課程內(nèi)容的理解,提高工程設(shè)

    2024年02月03日
    瀏覽(25)
  • 基于FPGA的多功能數(shù)字時(shí)鐘設(shè)計(jì)報(bào)告

    基于FPGA的多功能數(shù)字時(shí)鐘設(shè)計(jì)報(bào)告

    作品基于intel Cyclone IV E EP4CE10F17C8 FPGA板卡,主要開發(fā)環(huán)境為Quartus Ⅱ,編程并實(shí)現(xiàn)了多功能溫濕度電子鐘。本作品在實(shí)現(xiàn)顯示實(shí)時(shí)時(shí)間的基礎(chǔ)上,設(shè)計(jì)并完成了設(shè)置鬧鐘、改變鬧鐘鈴聲、顯示實(shí)時(shí)溫度和實(shí)時(shí)濕度、基于以太網(wǎng)通信協(xié)議的實(shí)時(shí)視頻傳輸?shù)裙δ?。在未設(shè)置鬧鐘時(shí)

    2024年02月05日
    瀏覽(26)
  • 基于FPGA的多功能數(shù)字鐘的設(shè)計(jì)

    摘要 數(shù)字鐘是采用數(shù)字電路實(shí)現(xiàn)對(duì)時(shí)、分、秒數(shù)字顯示的計(jì)時(shí)裝置,是人們?nèi)粘?生活中不可少的必需品。本文介紹了應(yīng)用FPGA芯片設(shè)計(jì)多功能數(shù)字鐘的?種方 案,并討討論了有關(guān)使用FPGA芯片和VHDL語言實(shí)現(xiàn)數(shù)字鐘設(shè)計(jì)的技術(shù)問題。 數(shù)字鐘、分頻器、譯碼器、計(jì)數(shù)器、校

    2024年02月07日
    瀏覽(33)
  • 基于SpringBoot多功能智能手機(jī)閱讀APP的設(shè)計(jì)與實(shí)現(xiàn)

    基于SpringBoot多功能智能手機(jī)閱讀APP的設(shè)計(jì)與實(shí)現(xiàn)

    博主主頁: 一點(diǎn)源碼 博主簡(jiǎn)介: 專注Java技術(shù)領(lǐng)域和畢業(yè)設(shè)計(jì)項(xiàng)目實(shí)戰(zhàn)、Java、微信小程序、安卓等技術(shù)開發(fā),遠(yuǎn)程調(diào)試部署、代碼講解、文檔指導(dǎo)、ppt制作等技術(shù)指導(dǎo)。 主要內(nèi)容: SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、小程序、安卓app、大數(shù)據(jù)等設(shè)計(jì)與開發(fā)。 感興

    2024年02月20日
    瀏覽(25)
  • 5—基于FPGA(ZYNQ-Z2)的多功能小車—軟件設(shè)計(jì)—藍(lán)牙串口

    5—基于FPGA(ZYNQ-Z2)的多功能小車—軟件設(shè)計(jì)—藍(lán)牙串口

    目錄 1.藍(lán)牙模塊介紹 2.UART介紹 3.Verilog代碼: 3.1Uart_RX模塊: 3.2 分頻模塊: 3.3 Uart驅(qū)動(dòng)模塊 3.4 Uart控制模塊 4. 總覽 ? 我使用的是JDY-31藍(lán)牙模塊,在連線中,要注意RX-TX,TX-RX。 ? 即FPGA約束的TX對(duì)應(yīng)藍(lán)牙模塊的RX,約束的RX對(duì)應(yīng)藍(lán)牙模塊的TX。 藍(lán)牙模塊使用UART串口通信協(xié)議,具體

    2024年02月05日
    瀏覽(32)
  • 基于AT89C52單片機(jī)的多功能萬年歷設(shè)計(jì)

    基于AT89C52單片機(jī)的多功能萬年歷設(shè)計(jì)

    點(diǎn)擊鏈接獲取Keil源碼與Project Backups仿真圖: https://download.csdn.net/download/qq_64505944/87853675 源碼獲取 目 錄 摘 要 1 1 方案論證 2 1.1 單片機(jī)芯片的選擇方案和論證 2 1.2 顯示模塊選擇方案和論證 2 1.3 時(shí)鐘芯片的選擇方案和論證 3 1.4 電路設(shè)計(jì)最終方案決定 3 2 系統(tǒng)的硬件設(shè)計(jì)與實(shí)現(xiàn)

    2024年02月07日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包