找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3986|回复: 1
打印 上一主题 下一主题
收起左侧

stm32智能电灯控制程序(亮度、色温以及 RGB颜色)

[复制链接]
跳转到指定楼层
楼主
ID:312779 发表于 2019-3-22 10:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用 TLink 远程控制开发板灯光的亮度、色温以及 RGB 颜色。主程序如下:

#include "stdio.h"
#include "string.h"
#include "DELAY/Delay.h"
#include "ADC/ADC.h"
#include "LED/LED.h"
#include "NVIC/NVIC.h"
#include "IIC/IIC.h"
#include "OLED/OLED.h"
#include "DHT11/DHT11.h"
#include "UART/uart.h"
#include "NetWork.h"
#include "LIGHT/Light.h"
#include "TIMx/TIMx.h"
#include "DMA/DMA.h"
#include "TLink.h"

extern u16 RGB_buffer[69];
DeviceSta_Strcture device = {0};

int main(void)
{
    u8 i = 0;

        u16 DHT11_data; //存储DHT11传感器采集数据

        /*初始化各外设*/
    initSysTick();  
        initADC();
    initUART();
    initUART2();
        initLED();
    initDHT11();
        initIIC();
    initOLED();
        initNVIC(NVIC_PriorityGroup_2);//开启UART2的接收和空闲中断

        /*设置定时器2时钟为10us,1KHz*/
        initTIMx(TIM2,719,100,TIM_IT_Update,DISABLE);
        initTIM2OC1(50);
        initTIM2OC2(50);

        initTIMx(TIM4,0,89,TIM_IT_Update,DISABLE);
        initTIM4OC1(0);               

        initDMA(DMA1_Channel1, (u32)(&TIM4->CCR1), (u32)RGB_buffer,sizeof(RGB_buffer));
               
        /*亮度10%,色温50%,RGB红光*/
        initLight(0,0,0,0,0);

        formatScreen(0x00);//清屏

    /*打印ESP8266启动信息到OLED*/
    if(initESP8266()!=0)
    {
        showString(0,0,"init ok!",FONT_16_EN);
    }else
    {
        showString(0,0,"init error!",FONT_16_EN);
    }
    if(connectAP(SSID,PWD)!=0)
    {
        showString(0,2,"conn ap ok!",FONT_16_EN);
    }else
    {
        showString(0,2,"con ap error!",FONT_16_EN);
    }
    if(connectTlink()!=0)
    {
        showString(0,4,"conn TLink ok!",FONT_16_EN);
    }else
    {
        showString(0,4,"conn TLink no!",FONT_16_EN);
    }

    Delay_ms(1000);//让数据保持一段时间
    formatScreen(0x00);
    showCNString(32,0,"   ",FONT_16_CN);
    showString(0,2,"Hum :",FONT_16_EN);
    showString(0,4,"Temp:",FONT_16_EN);
    showString(0,6,"Lux :",FONT_16_EN);
    while (1)
    {
        /*数据采集显示*/
        if(++i>30)
        {
            i = 0;
            DHT11_data = readDHT11();

            device.Humidity = DHT11_data>>8;
            device.Temperature = DHT11_data&0x00FF;
            device.Lux = getConvValueAve(10,1000);
                        showNumber(40,2,device.Humidity,DEC,3,FONT_16_EN);
            showNumber(40,4,device.Temperature,DEC,3,FONT_16_EN);
            showNumber(40,6,device.Lux,DEC,4,FONT_16_EN);
            sendDeviceStatus(&device);
        }

                toggleLED();
                Delay_ms(100);
    }
}


智能灯泡.7z

193.07 KB, 下载次数: 48, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:1 发表于 2019-3-23 03:23 | 只看该作者
本帖需要重新编辑补全电路原理图,源码,详细说明与图片即可获得100+黑币(帖子下方有编辑按钮)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表