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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于stm32的智能節(jié)能風(fēng)扇設(shè)計

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:328161 發(fā)表于 2018-5-14 09:50 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
節(jié)能風(fēng)扇可實現(xiàn)的功能
(1)智能風(fēng)扇可通過溫度檢測到即時室溫,然后根據(jù)室溫的高低以及設(shè)定的溫度對扇葉的轉(zhuǎn)速進行自我調(diào)節(jié)。比如設(shè)定的溫度為20度,則室溫為21度時,風(fēng)扇轉(zhuǎn)速慢,室溫為22度時,風(fēng)扇轉(zhuǎn)速變快,室溫為23度時,風(fēng)扇轉(zhuǎn)速更快,以此類推。
(2)智能風(fēng)扇可通過紅外傳感器感受人的存在,無人時可自動關(guān)閉,節(jié)省能源。
(3)通過設(shè)定時間,定時關(guān)閉風(fēng)扇
(4)風(fēng)扇有普通模式,可以設(shè)置為快檔,中檔,慢檔,跟普通風(fēng)扇一樣,不受溫度影響。
(5)本系統(tǒng)裝配安卓客戶端,可以進行一些相關(guān)功能的控制,簡單方便。

方案框圖如下:


藍牙采用HC-06,如下圖:

溫度傳感器DS18B20與時鐘芯片DS1302如下:

智能模式下,沒人的時候,液晶顯示nobody,風(fēng)扇不轉(zhuǎn)。

智能模式下:當(dāng)count計時達到00:10:00時,風(fēng)扇停止轉(zhuǎn)動。

普通模式下:快檔,中檔,停止檔

DS18B20和DS1302說明:
工程采用STM32CubeMx軟件產(chǎn)生,引腳配置如下:其他配置默認(rèn)。


DS1302接線說明:
SCLK-----------------------PC0
DATA-----------------------PC1
RST-------------------------PC2
函數(shù)使用方法說明:
1.ds1302初始化。
函數(shù)如下:
void Init_DS1302(char year,char month,charday,char hour,char minute,char second,char flag);
注意:年year輸入后兩位;最后一個flag指的是:如果ds1302沒有外接鋰電池,程序每次都初始化,那么flag=0;如果有外接鋰電池,程序只需第一次上電初始化,那么flag=1;
比如Init_DS1302(15,2,12,17,4,34,0);
則表示初始化時間為:15年2月12日17點4分34秒,程序每次上電都將ds1302時間初始化。
2.獲取時間
char year, month, day, hour, minute, second;
year= getDS1302_year();//獲取年的后兩位
month = getDS1302_ month ();//獲取月
day = getDS1302_ day ();//獲取日
hour = getDS1302_ hour ();//獲取小時
minute = getDS1302_ minute ();//獲取分鐘
second = getDS1302_ second ();//獲取秒
DS18B20說明:
DATA---------------------PC3
函數(shù)使用說明:
flaot Temperature;
Temperature= DS18B20_GetTemp();//獲取溫度

參考程序見附件
現(xiàn)象如下:

串口說明:
采用串口2
STM32CubeMx配置如下:

只需要將Nucleo板子通過usb插在電腦上即可,無需其他硬件。
本程序?qū)崿F(xiàn):電腦串口助手將字符串(固定長,如需改變長度,可在程序中更改)發(fā)給STM32F411板子,然后STM32F411板子將接收到的字符串發(fā)給定腦的串口助手。
測試程序如下:
uint8_t Rdata[20];
while (1)
{
         if(HAL_UART_Receive(&huart2,Rdata, 13, 1000)==HAL_OK)
         {
                   HAL_UART_Transmit(&huart2,Rdata, 13, 1000);
         }
}
函數(shù)的說明可以查看頭文件stm32f4xx_hal_uart.h中的函數(shù)聲明。

結(jié)果如下:

參考程序見附件

風(fēng)扇轉(zhuǎn)速控制采用PWM調(diào)速。
有關(guān)PWM部分示例代碼:以按鍵控制PWM占空比為例:
首先用STM32CubeMx軟件配置定時器PWM模式與按鍵輸入IO口。

定時器PWM模式配置

按鍵IO配置

然后生成Keil工程。
用Keil打開。
         首先修改有關(guān)PWM方面的代碼。
PWM初始化代碼如下:
/* TIM10 init function */
void MX_TIM10_Init(void)
{
  TIM_OC_InitTypeDef sConfigOC;

  htim10.Instance = TIM10;
  htim10.Init.Prescaler = 0;
  htim10.Init.CounterMode = TIM_COUNTERMODE_UP;
  htim10.Init.Period = 0;
  htim10.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
  HAL_TIM_Base_Init(&htim10);

  HAL_TIM_PWM_Init(&htim10);

  sConfigOC.OCMode = TIM_OCMODE_PWM1;
  sConfigOC.Pulse = 0;
  sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
  sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
  HAL_TIM_PWM_ConfigChannel(&htim10, &sConfigOC, TIM_CHANNEL_1);
}


查看頭文件stm32f4xx_hal_tim.h,可以知道定時器初始化參數(shù)的含義如下:


從頭文件中可以看出,要想簡單配置PWM很簡單,只要改變PWM周期的值與脈沖值就好。
比如將改變一下兩個語句:
htim10.Init.Period = 1000;
sConfigOC.Pulse = 200;
便將PWM配置為周期為1000個定時器周期,高電平持續(xù)時間為200個定時器時鐘周期,占空比為200/1000=20%。
要想用按鍵控制PWM占空比,我們只需要修改一下PWM初始化函數(shù),修改如下:

修改此函數(shù)之后,前面的函數(shù)聲明也要改。改為:static void MX_TIM10_Init(int period,intpulse);

要想PWM工作,需要啟動PWM。查看頭文件stm32f4xx_hal_tim.h,可以看到如下函數(shù):

這是PWM啟動與停止的函數(shù)。
最后看看按鍵,只需要把按鍵配置為上拉模式就好。
在按鍵初始化中,將
GPIO_InitStruct.Pull= GPIO_NOPULL;
改為
GPIO_InitStruct.Pull= GPIO_PULLUP;

接下來便可以寫主函數(shù)。

int main(void)
{

  /* USER CODE BEGIN 1 */
        int i=100;
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* System interrupt init*/
  /* Sets the priority grouping field */
  HAL_NVIC_SetPriorityGrouping(NVIC_PRIORITYGROUP_0);
  HAL_NVIC_SetPriority(SysTick_IRQn, 0, 0);

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_TIM10_Init(1000,100);//PWM初始化

  /* USER CODE BEGIN 2 */
        HAL_TIM_PWM_Start(&htim10,TIM_CHANNEL_1);//啟動PWM
  /* USER CODE END 2 */

  /* USER CODE BEGIN 3 */
  /* Infinite loop */
  while (1)
  {
                if(!HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13))//如果按鍵按下
                {
  i=i+100;
if(i==1000) i=100;
  HAL_TIM_PWM_Stop(&htim10, TIM_CHANNEL_1);//停止PWM
  MX_TIM10_Init(1000,i);//PWM重新配置,周期為1000,高電平持續(xù)時間為i
                        HAL_TIM_PWM_Start(&htim10,TIM_CHANNEL_1);//啟動PWM
                        while(!HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13));//等待按鍵釋放
                }
  }
  /* USER CODE END 3 */

}

編譯程序,下載程序,可以看到現(xiàn)象:



以上圖文的Word格式文檔下載(內(nèi)容和本網(wǎng)頁上的一模一樣,方便大家保存):
采用STM32的智能節(jié)能風(fēng)扇設(shè)計.doc (1.93 MB, 下載次數(shù): 97)
本設(shè)計源碼下載:http://www.zg4o1577.cn/bbs/dpj-117901-1.html

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

使用道具 舉報

沙發(fā)
ID:281465 發(fā)表于 2018-5-16 15:31 | 只看該作者
厲害了,準(zhǔn)備做一個試試
回復(fù)

使用道具 舉報

板凳
ID:400794 發(fā)表于 2018-9-21 10:39 | 只看該作者
有材料清單嗎
回復(fù)

使用道具 舉報

地板
ID:634486 發(fā)表于 2019-11-7 11:12 來自手機
有材料清單嗎?樓主有償

5#
ID:509948 發(fā)表于 2020-1-9 20:56 | 只看該作者
引腳PB13-15連接的是風(fēng)扇嗎,還需要繼電器嗎
回復(fù)

使用道具 舉報

6#
ID:479957 發(fā)表于 2020-5-11 21:25 來自手機 | 只看該作者
不錯,請問樓主有原理圖繼續(xù)分享一下嗎?
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 久久亚洲一区 | 碰碰视频 | 日本色高清 | 精品免费在线 | 亚洲国产成人精品久久久国产成人一区 | 99久久婷婷国产综合精品电影 | 国产精品一区二区电影 | 亚洲国产成人精品女人久久久 | 国产精品免费在线 | 在线观看三级av | 成人黄在线观看 | jvid精品资源在线观看 | 亚洲狠狠爱一区二区三区 | 成人日b视频 | 国产毛片视频 | 在线播放国产一区二区三区 | 亚洲一区二区国产 | 亚洲国产91 | 亚洲国产精久久久久久久 | 男女精品久久 | 男人的天堂久久 | 男人电影天堂 | 日本福利在线观看 | 久久中文网 | 在线成人 | 日韩免费1区二区电影 | 国产精品精品视频一区二区三区 | 国产精品美女久久久久aⅴ国产馆 | 国产欧美在线观看 | 国产人成精品一区二区三 | 欧美 日韩 国产 成人 在线 | 日韩免费在线视频 | 婷婷精品| 在线观看中文字幕av | 久久久久久国产精品免费免费狐狸 | 免费午夜电影 | 精品久久久久久亚洲精品 | 亚洲免费在线 | 成人小视频在线免费观看 | 亚洲精品久久嫩草网站秘色 | 亚洲精品一级 |