蓝桥杯嵌入式国赛 ---- TRDO TRAO 光敏电阻
文章目录
- 前言
- 一、原理图
- 二、由原理图得到的信息
- 三、光敏电阻初始化
- 四、光敏电阻应用函数
- 五、光敏电阻在主函数的应用方法
前言
本文是基于嵌入式开发板CT117E,stm32f103RBT6。
一、原理图
二、由原理图得到的信息
- 一个数字信号线DO和一个模拟信号线AO。
- DO与PA3连接,AO与PA4连接。
- 电路方程(VDD - AO(化成以V为单位)) / 10K = (AO(化成以V为单位) - GDN) / R47。
- VDD=3.3,GDN=0,代进方程,求解R47 = AO*10 / (3.3-AO) K。
三、光敏电阻初始化
tr_ao_do.c
void trao_do_init(void)
{ADC_InitTypeDef ADC_InitStructure;GPIO_InitTypeDef GPIO_InitStructure;RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 | RCC_APB2Periph_GPIOA, ENABLE);/* Configure PC.01, PC.02 and PC.04 (ADC Channel11, Channel12 and Channel14)as analog input ----------------------------------------------------------*/GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;GPIO_Init(GPIOA, &GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3;GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPD;GPIO_Init(GPIOA, &GPIO_InitStructure);/* ADC1 configuration ------------------------------------------------------*/ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;ADC_InitStructure.ADC_ScanConvMode = DISABLE;ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;ADC_InitStructure.ADC_NbrOfChannel = 1;ADC_Init(ADC1, &ADC_InitStructure);/* ADC1 regular channels configuration */ ADC_RegularChannelConfig(ADC1, ADC_Channel_4, 1, ADC_SampleTime_239Cycles5); ADC_Cmd(ADC1, ENABLE);/* Enable ADC1 reset calibration register */ ADC_ResetCalibration(ADC1);/* Check the end of ADC1 reset calibration register */while(ADC_GetResetCalibrationStatus(ADC1));/* Start ADC1 calibration */ADC_StartCalibration(ADC1);/* Check the end of ADC1 calibration */while(ADC_GetCalibrationStatus(ADC1));
}
tr_ao_do.h
#ifndef TRAO_DO_H
#define TRAO_DO_H
#include "stm32f10x.h"
void trao_do_init(void);
u16 get_adcval(void);
u8 get_status(void);#endif
四、光敏电阻应用函数
u16 get_adcval(void) //AO
{u8 i;u16 t[10];ADC_SoftwareStartConvCmd(ADC1, ENABLE); for(i=0;i<10;i++){t[i]=ADC_GetConversionValue (ADC1);}for(i=1;i<10;i++){t[0] +=t[i];} ADC_SoftwareStartConvCmd(ADC1, DISABLE); return t[0]/10;
}
u8 get_status(void) //DO 1:灯关太暗 0:灯关太亮 ,这个暗和亮的程度主要靠RP7来调节
{u8 t;t=GPIO_ReadInputDataBit (GPIOA,GPIO_Pin_3);return t;
}
五、光敏电阻在主函数的应用方法
while(1)
{tr_val=get_adcval();sprintf((char *)buff," V: %2.2fV ",(float)tr_val*3.3/0xfff); //输出光敏电阻的电压值LCD_DisplayStringLine(Line4,buff);sprintf((char *)buff," R: %2.2fK ",(10*(float)tr_val/(4096-tr_val))); //输出光敏电阻的电阻值LCD_DisplayStringLine(Line5,buff);if(get_status()==0){LCD_DisplayStringLine(Line1," The light is hight! ");}else{LCD_DisplayStringLine(Line1," The light is low! ");}Delay_Ms(500);
}
蓝桥杯嵌入式国赛 ---- TRDO TRAO 光敏电阻相关推荐
- 蓝桥杯嵌入式——第十二届蓝桥杯嵌入式国赛
蓝桥杯嵌入式--第十二届蓝桥杯嵌入式国赛 之前准备省赛的时候用的是旧版的STM32F103,从准备国赛开始就用新版STM32G431平台了,主要是想经过新版的准备学习一下HAL库以及CubeMX的使用 ...
- 蓝桥杯嵌入式国赛模块训练之数码管
文章目录 前言 一.电路原理图 1.共阴极数码管 2.SN74LS595N 3. 扩展板跳线帽连接 二.驱动代码 1.seg.h 2.seg.c 总结 前言 数码管是蓝桥杯嵌入式国赛需准备的第一个模块 ...
- 蓝桥杯嵌入式——第十一届蓝桥杯嵌入式国赛
蓝桥杯嵌入式--第十一届蓝桥杯嵌入式国赛 之前准备省赛的时候用的是旧版的STM32F103,从准备国赛开始就用新版STM32G431平台了,主要是想经过新版的准备学习一下HAL库以及CubeMX的使用 ...
- 【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式国赛程序设计试题以及详细题解
文章目录 原题展示 原题分析 详细题解 LED模块 按键模块 串口 LCD模块 模拟电压读取(ADC) 脉冲输入输出 文章福利 原题展示 原题分析 本届国赛试题主要包含LCD.LED.按键.EEP ...
- 【蓝桥杯嵌入式】第十三届蓝桥杯嵌入式国赛客观题以及详细题解
题1 概念题. USRAT:异步串口通信,常用于数据传输: SW-DP:SWD 的全称应该是 The Serial Wire Debug Port (SW-DP),也就是串行调试端口,是 ARM 目前 ...
- 捉迷藏之二-第10届蓝桥杯Scratch国赛真题第6题程序2
本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第15 ...
- 跑酷游戏-第13届蓝桥杯Scratch国赛真题第3题
[导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第27讲. 第13届蓝桥杯青少年组国赛于2022年5月29日举行,形式为在线考试.Scrat ...
- 蓝桥杯 2015国赛 穿越雷区
蓝桥杯 2015国赛 穿越雷区 题目链接 X星的坦克战车很奇怪,它必须交替地穿越正能量辐射区和负能量辐射区才能保持正常运转,否则将报废. 某坦克需要从A区到B区去(A,B区本身是安全区,没有正能量或负 ...
- 魔法师盖城墙-第11届蓝桥杯Scratch国赛真题第4题
本文同步发表于"超平的编程课"公众号,更多教程,可移步至公众号. [导读]:超平老师计划推出Scratch蓝桥杯真题解析100讲,这是超平老师解读Scratch蓝桥真题系列的第10 ...
最新文章
- 菜菜sklearn——XGBoost(1)
- pycharm更改模板_pycharm怎样给文件编辑统一的模板?
- 深入了解java虚拟机(JVM) 第六章 垃圾回收算法
- SpringBoot 中 @RequestBody的正确使用方法
- Cloudera maneger登录页面后的操作是什么?
- 最大尺寸分辨率_未来就在眼前——视涯科技推出最高分辨率硅基OLED显示屏幕...
- 什么是无监督学习(监督学习,半监督学习,无监督聚类)?
- 判断字符串是否为正整数 浮点小数
- C语言 const 和 define 区别 - C语言零基础入门教程
- MediaRecorder录像怎么旋转呀?
- 不同公式等号对齐_数学公式编辑器“制作amp;套用公式模板”和“文本对齐问题”的完美解决方案...
- Android图像办理组件
- 5个提高效率的编程工作环境
- Atitit tomcat在linux服务器的启动与其他
- Python——Pycharm基本设置
- 直播盒子源码与直播盒子APP如何对接自动发卡平台
- 武汉公积金新政10日起实行 四种算法取最低值(zz)
- 轻量级openpose解析
- 从写作到演讲,虾米君不断尝试的 2021|年终回顾
- java pppoe_PPPoE拨号流程