STM32自动光控窗帘程序+Proteus仿真图 H桥L298驱动电机

目录

1、前言

2、仿真图

3、源程序 

资料下载地址:STM32自动光控窗帘程序+Proteus仿真图 H桥L298驱动电机

1、前言

基于STM32F103设计的智能光控窗帘,包含STM32芯片、光敏电阻、LCD1602显示屏、电机驱动控制模块等。
备注:通过ARM内部的ADC采集光敏电阻电压,判断电压值

光强检测模块:光敏电阻,对光照强度不同,阻值不同。并通过ARM内部的ADC采集光敏电阻电压,判断电压值。电压值低于设定的值,表示光强太弱,打开窗帘;电压大于设定的参考电压值,表示光强太强,关闭窗帘;光强合适,显示OK,电机不转,表示窗帘不动。
液晶显示模块:液晶显示High,表示光强太强;液晶显示OK,表示光强合适;液晶显示Low,表示光强太弱LCD1602显示光强度。
资料内部包含STM32程序和Proteus仿真。

2、仿真图

液晶显示High,表示光强太强
液晶显示OK,表示光强合适
液晶显示Low,表示光强太弱

L298  H桥,电机驱动芯片
光强太弱,表示光线不好,应该开窗
光强太强,表示光线强,关窗
光敏电阻,对光照强度不同,阻值不同
电压是模拟量,所以使用AD采集,AD值模拟量转数字量,这样ARM就可以知道当前电压值

3、源程序 

#include "stm32f10x.h"
#include "bsp-lcd1602.h"
#include "delay.h"
#include "sys.h"
#include "adc.h"


void L298_GPIO( void )
{
        GPIO_InitTypeDef GPIO_InitStructure;         
        
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
        GPIO_Init(GPIOC, &GPIO_InitStructure);        
}

void OPEN(void)        //left moto is runing, but right moto is brake
{
        GPIO_SetBits(GPIOC,GPIO_Pin_5);
        GPIO_ResetBits(GPIOC,GPIO_Pin_4);
        GPIO_ResetBits(GPIOC,GPIO_Pin_3);
        GPIO_ResetBits(GPIOC,GPIO_Pin_2);
        GPIO_SetBits(GPIOC,GPIO_Pin_1);        
        GPIO_SetBits(GPIOC,GPIO_Pin_0);
}
void CLOSE(void)        //right moto is runing, but left moto is brake
{
        GPIO_ResetBits(GPIOC,GPIO_Pin_5);
        GPIO_ResetBits(GPIOC,GPIO_Pin_4);
        GPIO_SetBits(GPIOC,GPIO_Pin_3);
        GPIO_ResetBits(GPIOC,GPIO_Pin_2);
        GPIO_SetBits(GPIOC,GPIO_Pin_1);        
        GPIO_SetBits(GPIOC,GPIO_Pin_0);
}

void STOP(void)        //right moto is runing, but left moto is brake
{
        GPIO_SetBits(GPIOC,GPIO_Pin_5);
        GPIO_SetBits(GPIOC,GPIO_Pin_4);
        GPIO_SetBits(GPIOC,GPIO_Pin_3);
        GPIO_SetBits(GPIOC,GPIO_Pin_2);
        GPIO_SetBits(GPIOC,GPIO_Pin_1);        
        GPIO_SetBits(GPIOC,GPIO_Pin_0);
}


int main(void)
{
int a,b,c,d;
        float temp;
        
        delay_init();                     //延时函数初始化                  
        LCD1602_Init();
    ADC1_GPIO_Config();
        L298_GPIO();
    ADC_Config();  
        LCD1602_ShowStr(0,0,"  Auto curtain ",15);
        LCD1602_ShowStr(0,1,"Light:",6);
        
        while(1)
        {
                b=ADC_GetConversionValue(ADC1);
                temp=b*(3.4/4096)*10;
                //表示光线太弱
                if( temp < 8 )
                {
                        LCD1602_ShowStr(7,1,"open ",4);
                        OPEN();
                }
                else
                {
                        if( temp < 25)                                //光线合适
                        {
                                LCD1602_ShowStr(7,1,"OK  ",4);
                                STOP();
                        }
                        else                                                //光线太强 
                        {
                                LCD1602_ShowStr(7,1,"close",4);
                                CLOSE();
                        }
                }
//                a=temp/1;
//                c=temp*10;
//                d=c%10;
//                LCD_ShowNum(11,0,a);
//                LCD_ShowNum(13,0,d);
        }
}

最近更新

  1. TCP协议是安全的吗?

    2024-04-23 08:42:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-23 08:42:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-23 08:42:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-23 08:42:03       18 阅读

热门阅读

  1. GEE:直方图匹配

    2024-04-23 08:42:03       13 阅读
  2. 游戏帧数低怎么解决?

    2024-04-23 08:42:03       40 阅读
  3. uniApp设置和清除定时器

    2024-04-23 08:42:03       19 阅读
  4. NTP授时服务器(GPS授时器)在DCS系统应用

    2024-04-23 08:42:03       35 阅读
  5. 话是开心锁

    2024-04-23 08:42:03       15 阅读
  6. nginx中的哈夫曼编码算法

    2024-04-23 08:42:03       15 阅读
  7. 压力与平衡

    2024-04-23 08:42:03       16 阅读
  8. 随便记录点

    2024-04-23 08:42:03       14 阅读
  9. PAT 1097 Deduplication on a Linked List(25分)

    2024-04-23 08:42:03       17 阅读
  10. ospf的工作过程和特点

    2024-04-23 08:42:03       15 阅读
  11. vue 实现级联选择器功能

    2024-04-23 08:42:03       13 阅读