找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

一款智能養(yǎng)花系統(tǒng)單片機(jī)控制源碼

[復(fù)制鏈接]
ID:345619 發(fā)表于 2018-6-5 19:45 | 顯示全部樓層 |閱讀模式
一個比較簡單的課程設(shè)計:智能澆花系統(tǒng)
用的是STM32
// ADC 單通道采集
#include "stm32f10x.h"
#include "./usart/bsp_usart.h"        
#include "bsp_adc.h"
#include "bsp_pwm_output.h"
#include "./lcd/bsp_ili9341_lcd.h"
#include "./flash/bsp_spi_flash.h"

// ADC1轉(zhuǎn)換的電壓值通過MDA方式傳到SRAM
extern __IO uint16_t ADC_ConvertedValue;
int get_YL_value_percent(float a);
int b;

// 局部變量,用于保存轉(zhuǎn)換計算后的電壓值         
float ADC_ConvertedValueLocal;        
int humi;
char humiBuff[10];
// 軟件延時
void Delay(__IO uint32_t nCount)
{
  for(; nCount != 0; nCount--);
}
/**
  * @brief  主函數(shù)
  * @param  無
  * @retval 無
  */
int main(void)
{        
        //LCD初始化
        ILI9341_Init();
        // 配置串口
        USART_Config();
        // ADC 初始化
        ADCx_Init();
        //pwm配置
        TIMx_PWM_Init();

        printf("\r\n ----土壤濕度讀出數(shù)據(jù)----\r\n");

        LCD_SetColors(RED,BLACK);

        ILI9341_Clear(0,0,LCD_X_LENGTH,LCD_Y_LENGTH);        /* 清屏,顯示全黑 */

        while (1)
        {         
                ADC_ConvertedValueLocal =(float) ADC_ConvertedValue/4096*3.3; // 讀取轉(zhuǎn)換的AD值

                //換算成對應(yīng)的濕度值
                b=get_YL_value_percent(ADC_ConvertedValueLocal);
                humi=100-b;        

                printf("\r\n 轉(zhuǎn)換到的電壓值 = %04fV \r\n", ADC_ConvertedValueLocal);
          printf("\r\n 獲取濕度 = %d %RH  \r\n",humi);

                //把整形轉(zhuǎn)換成字符串
                //LCD顯示當(dāng)前濕度
                LCD_SetFont(&Font8x16);
                LCD_SetTextColor(RED);
                ILI9341_DispStringLine_EN(LINE(5),"The new humi is");
                sprintf(humiBuff,"  %dRH ",humi);
                LCD_SetTextColor(GREEN);
                LCD_SetFont(&Font24x32);
                ILI9341_DispString_EN(50,180,humiBuff);

                if((humi>0)&&(humi<5))  //正轉(zhuǎn)
                {
                        Delay(0xff);

                        TIM_SetCompare1(TIM3,900); //設(shè)置定時器3通道1 新的占空比
                        TIM_SetCompare2(TIM3,0);
                        Delay(0xfffe);
                }
                else                   //不轉(zhuǎn)
                {
                        Delay(0xff);

                        TIM_SetCompare1(TIM3,0);
                        TIM_SetCompare2(TIM3,0);
                  Delay(0xfffe);
                }

                Delay(0xffffe);
        }
}

/*********************************************END OF FILE**********************/


回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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