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

標(biāo)題: STM32單片機(jī)智能窗簾控制系統(tǒng)程序Proteus仿真圖 [打印本頁]

作者: adas打算    時(shí)間: 2021-12-5 06:19
標(biāo)題: STM32單片機(jī)智能窗簾控制系統(tǒng)程序Proteus仿真圖
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


液晶顯示High,表示光強(qiáng)太強(qiáng)
液晶顯示OK,表示光強(qiáng)合適
液晶顯示Low,表示光強(qiáng)太弱

備注:通過ARM內(nèi)部的ADC采集光敏電阻電壓,判斷電壓值
電壓值低于設(shè)定的值,表示光強(qiáng)太弱,打開窗簾
電壓大于設(shè)定的參考電壓值,表示光強(qiáng)太強(qiáng),關(guān)閉窗簾
光強(qiáng)合適,顯示OK,電機(jī)不轉(zhuǎn),表示窗簾不動(dòng)

光強(qiáng)太弱,表示光線不好,應(yīng)該開窗
光強(qiáng)太強(qiáng),表示光線強(qiáng),關(guān)窗
光敏電阻,對(duì)光照強(qiáng)度不同,阻值不同
電壓是模擬量,所以使用AD采集,AD值模擬量轉(zhuǎn)數(shù)字量,這樣ARM就可以知道當(dāng)前電壓值


單片機(jī)源程序如下:
  1. #include "stm32f10x.h"
  2. #include "bsp-lcd1602.h"
  3. #include "delay.h"
  4. #include "sys.h"
  5. #include "adc.h"


  6. void L298_GPIO( void )
  7. {
  8.         GPIO_InitTypeDef GPIO_InitStructure;         
  9.         
  10.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
  11.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
  12.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  13.         GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
  14.         GPIO_Init(GPIOC, &GPIO_InitStructure);        
  15. }

  16. void OPEN(void)        //left moto is runing, but right moto is brake
  17. {
  18.         GPIO_SetBits(GPIOC,GPIO_Pin_5);
  19.         GPIO_ResetBits(GPIOC,GPIO_Pin_4);
  20.         GPIO_ResetBits(GPIOC,GPIO_Pin_3);
  21.         GPIO_ResetBits(GPIOC,GPIO_Pin_2);
  22.         GPIO_SetBits(GPIOC,GPIO_Pin_1);        
  23.         GPIO_SetBits(GPIOC,GPIO_Pin_0);
  24. }
  25. void CLOSE(void)        //right moto is runing, but left moto is brake
  26. {
  27.         GPIO_ResetBits(GPIOC,GPIO_Pin_5);
  28.         GPIO_ResetBits(GPIOC,GPIO_Pin_4);
  29.         GPIO_SetBits(GPIOC,GPIO_Pin_3);
  30.         GPIO_ResetBits(GPIOC,GPIO_Pin_2);
  31.         GPIO_SetBits(GPIOC,GPIO_Pin_1);        
  32.         GPIO_SetBits(GPIOC,GPIO_Pin_0);
  33. }

  34. void STOP(void)        //right moto is runing, but left moto is brake
  35. {
  36.         GPIO_SetBits(GPIOC,GPIO_Pin_5);
  37.         GPIO_SetBits(GPIOC,GPIO_Pin_4);
  38.         GPIO_SetBits(GPIOC,GPIO_Pin_3);
  39.         GPIO_SetBits(GPIOC,GPIO_Pin_2);
  40.         GPIO_SetBits(GPIOC,GPIO_Pin_1);        
  41.         GPIO_SetBits(GPIOC,GPIO_Pin_0);
  42. }


  43. int main(void)
  44. {
  45. int a,b,c,d;
  46.         float temp;
  47.         
  48.         delay_init();                     //延時(shí)函數(shù)初始化                  
  49.         LCD1602_Init();
  50.     ADC1_GPIO_Config();
  51.         L298_GPIO();
  52.     ADC_Config();  
  53.         LCD1602_ShowStr(0,0,"  Auto curtain ",15);
  54.         LCD1602_ShowStr(0,1,"Light:",6);
  55.         
  56.         while(1)
  57.         {
  58.                 b=ADC_GetConversionValue(ADC1);
  59.                 temp=b*(3.4/4096)*10;
  60.                 //表示光線太弱
  61.                 if( temp < 8 )
  62.                 {
  63.                         LCD1602_ShowStr(7,1,"open ",4);
  64.                         OPEN();
  65.                 }
  66.                 else
  67.                 {
  68.                         if( temp < 25)                                //光線合適
  69.                         {
  70.                                 LCD1602_ShowStr(7,1,"OK  ",4);
  71.                                 STOP();
  72.                         }
  73.                         else                                                //光線太強(qiáng)
  74.                         {
  75.                                 LCD1602_ShowStr(7,1,"close",4);
  76.                                 CLOSE();
  77.                         }
  78.                 }
  79. //                a=temp/1;
  80. //                c=temp*10;
  81. //                d=c%10;
  82. //                LCD_ShowNum(11,0,a);
  83. //                LCD_ShowNum(13,0,d);
  84.         }
  85. }
復(fù)制代碼

Keil5代碼,仿真用Proteus8.8版本,附件下載:
仿真程序.7z (286.8 KB, 下載次數(shù): 197)


作者: 13118302007    時(shí)間: 2021-12-5 21:57
不錯(cuò),優(yōu)化部分:應(yīng)該由一個(gè)電機(jī)控制正反轉(zhuǎn)
作者: shuaike    時(shí)間: 2021-12-7 18:36
為啥我打開之后液晶不顯示呢
作者: heicad    時(shí)間: 2021-12-7 20:12
shuaike 發(fā)表于 2021-12-7 18:36
為啥我打開之后液晶不顯示呢

用Proteus8.8 親測(cè)ok
作者: liuyiyi    時(shí)間: 2021-12-30 14:58
再加上個(gè)雨水感應(yīng)會(huì)更好一些
作者: sankin    時(shí)間: 2022-4-6 15:51
heicad 發(fā)表于 2021-12-7 20:12
用Proteus8.8 親測(cè)ok

我用8.9運(yùn)行之后只顯示高,不變化
作者: sen666    時(shí)間: 2022-4-20 17:24
Proteus8.11 打開后完全沒反應(yīng),想問一下可能是啥情況
作者: heicad    時(shí)間: 2022-4-21 04:39
sen666 發(fā)表于 2022-4-20 17:24
Proteus8.11 打開后完全沒反應(yīng),想問一下可能是啥情況

8.11不行的 要8.8
作者: mick32    時(shí)間: 2022-4-21 18:55
8.12 sp0 can't work too




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 欧美国产一区二区 | 天天射天天操天天干 | 亚洲欧美一区二区三区在线 | 精品黄色 | 日韩亚洲欧美在线 | 日本精品国产 | 国产黄色av | 精品人伦一区二区三区 | 日韩激情网站 | 亚洲一级片 | 五月婷色| 日日干日日 | 国产高清一区二区 | 99热精品在线观看 | 免费黄色一级 | 夫妻av| 国产一区二区三区在线看 | 久久国产精品视频 | 国产精品国产三级国产aⅴ浪潮 | 色网站在线观看 | 久久久久久亚洲精品 | 成人性生活免费视频 | 日本视频在线播放 | 日韩高清一区 | av色在线| 69免费视频| 日韩精品大片 | 欧美伦理一区二区 | 久久精品国产一区二区 | 国产精品久久久久永久免费看 | 欧美黄色一级视频 | 中文字幕免费视频 | 欧美激情视频一区二区 | 免费毛片在线播放 | 欧美日韩亚洲一区二区三区 | 午夜精品视频在线 | xxxxx国产| 欧美一级黄色片 | 日韩在线播放视频 | 中文字幕一区二 | 日本韩国欧美中文字幕 |