找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3838|回復(fù): 2
收起左側(cè)

stm32F4+lcd1602實(shí)現(xiàn)采集兩路adc并顯示

[復(fù)制鏈接]
ID:727366 發(fā)表于 2020-7-12 16:15 | 顯示全部樓層 |閱讀模式
以STM32F403為控制核心,設(shè)計(jì)一種基于STM32的智能照明控制系統(tǒng),使用光敏電阻作為光照信息來源,使用GP2D12作為人物信息來源,當(dāng)光照強(qiáng)度改變時(shí),光敏電阻的阻值改變,從而改變STM32的采樣電壓。當(dāng)人物移動(dòng)時(shí),紅外傳感器的電壓改變從而改變采樣電壓。當(dāng)光照強(qiáng)度小于一定值,且感應(yīng)到有人時(shí),LED亮。


通過光敏電阻和GP2D12傳感器獲取光照和紅外信息,作為模擬量,傳入STM32F4的采集端口。STM32F4進(jìn)行模數(shù)轉(zhuǎn)換后,在LCD1602上進(jìn)行顯示。

采用了HAL庫進(jìn)行配置STM32F4,一直有個(gè)問題就是proteus仿真DS18B20和DHT11這種帶有時(shí)序要求的傳感器,同STM32通信時(shí)出現(xiàn)時(shí)序錯(cuò)誤,有經(jīng)驗(yàn)的師兄可以告知一下怎么操作。

  1. int main(void)
  2. {
  3.         uint16_t time=0;
  4.     HAL_Init();

  5.     SystemClock_Config();

  6.     MX_GPIO_Init();
  7.     MX_ADC1_Init();
  8.     MX_USART1_UART_Init();

  9.     while (1)
  10.     {

  11.                 Get_Adc();
  12.                
  13.                 if(adc1_in1_voltage<0.5)                                // 表示 沒人
  14.                 {
  15.                         printf("no people\r\n");
  16.                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 1);
  17.                 }
  18.                 else                                                                        // 表示 有人
  19.                 {
  20.                         printf("people here\r\n");
  21.                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_2, 0);
  22.                         if(adc1_in0_voltage<1)
  23.                         {
  24.                                 for(time=0; time<5; time++)
  25.                                 {
  26.                                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 0);
  27.                                         HAL_Delay(100);
  28.                                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
  29.                                         HAL_Delay(900);
  30.                                 }
  31.                         }
  32.                         else if(adc1_in0_voltage>=1 && adc1_in0_voltage<2)
  33.                         {
  34.                                 for(time=0; time<5; time++)
  35.                                 {
  36.                                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 0);
  37.                                         HAL_Delay(500);
  38.                                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
  39.                                         HAL_Delay(500);
  40.                                 }
  41.                         }
  42.                         else if(adc1_in0_voltage>=2)
  43.                         {
  44.                                 for(time=0; time<5; time++)
  45.                                 {
  46.                                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 0);
  47.                                         HAL_Delay(900);
  48.                                         HAL_GPIO_WritePin(GPIOA, GPIO_PIN_3, 1);
  49.                                         HAL_Delay(100);
  50.                                 }
  51.                         }
  52.                 }
  53.     }

  54. }
復(fù)制代碼

當(dāng)沒有感應(yīng)到人的時(shí)候

當(dāng)沒有感應(yīng)到人的時(shí)候



當(dāng)感應(yīng)到人的時(shí)候

當(dāng)感應(yīng)到人的時(shí)候
回復(fù)

使用道具 舉報(bào)

ID:96313 發(fā)表于 2020-7-20 08:29 | 顯示全部樓層
傳感器出來加一個(gè)200歐的電阻耦合信號,單片機(jī)那頭上面加上拉電阻,試試呢!有實(shí)物可以用示波器看看
回復(fù)

使用道具 舉報(bào)

ID:166552 發(fā)表于 2023-10-29 21:24 | 顯示全部樓層
源碼呢
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表