Keil5涉及多个传感器程序使用

keil5涉及多个传感器程序使用

1. 实现功能举例

光照传感器控制RGB亮绿灯

RFID卡读取后控制RGB亮红灯

温湿度传感器控制风扇转动

2. 实现流程

a)导包:导入传感器模块所需.c文件

1)光照传感器:

2)RFID读卡

3)温湿度

在这里插入图片描述

b)添加所需源文件的.h头文件

#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "CTEled.h"
#include "rc522.h"
#include "dht11.h"
#include "i2c.h"
#include "bh1750.h"
#include "lcd.h"

c)风扇及RGB管脚初始化

void FAN_Init(void)//风扇初始化
{
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE);
	GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_15;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; 
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	GPIO_ResetBits (GPIOA, GPIO_Pin_15);
	
}

void RGB_Init(void)//RGB初始化
{
 
	GPIO_InitTypeDef  GPIO_InitStructure;
 	
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);	 //ʹÄÜPCʱÖÓ
	
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;				 
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 //ÍÆÍìÊä³ö
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 //IO¿ÚËÙ¶ÈΪ50MHz
  GPIO_Init(GPIOC, &GPIO_InitStructure);					 //¸ù¾ÝÉ趨²ÎÊý³õʼ»¯GPIOC.8 
	//GPIO_SetBits(GPIOC,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);						 //PC.8/7/6 Êä³ö¸

}

3. 控制逻辑代码

3.1 光照传感器控制RGB亮绿灯

	//光照传感器控制RGB绿——>PC15
		BH1750_test();
		if(result_lx>=1000){
			GPIO_SetBits(GPIOC,GPIO_Pin_15);	//green
			delay_ms(10000);
			GPIO_ResetBits(GPIOC,GPIO_Pin_15);	
			delay_ms(10000);
		}

3.2 RFID卡读取后控制RGB亮红灯

//RFID卡读取后控制RGB亮红灯——>PC14 文件rc522.c 函数名RC522_Handel();

if (status == MI_OK) { // 验证成功
    status = MI_ERR;
    status = PcdWrite(shi,RFID1);
		PcdRead(shi,RFID);
    if (status == MI_OK) { // 读卡成功
      printf("xuehao: ");
			GPIO_SetBits(GPIOC,GPIO_Pin_14);	//red
	
      for ( i = 0; i < 9; i++) {
        printf("%u ", RFID[i]);
      }
      printf("\r\n");
    }
    status = MI_ERR;
    delay_ms(100);
  }
	else{
			GPIO_ResetBits(GPIOC,GPIO_Pin_14);	
		}

3.3 温湿度传感器控制风扇转动

		//温湿度传感器控制风扇转动 ——>PA15
		delay_ms(500);
		FAN_Init();
		if ((Standard_Humi == 0) && (humidity>40) )
			{
				Standard_Humi = humidity;
			}
			USART1_Send_BUF((u8*)msg1,16);
			delay_ms (500);
			if ( (humidity > Standard_Humi) && (Standard_Humi != 0) )
			{ 
				data = humidity - Standard_Humi;
			if (data > 10)
			{
				data = 0;
				GPIO_SetBits (GPIOA, GPIO_Pin_15);
			}

4.实现功能展示

1)光照传感器控制RGB亮绿灯在这里插入图片描述

2RFID卡读取后控制RGB亮红灯在这里插入图片描述

3)温湿度传感器控制风扇转动在这里插入图片描述

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值