查看“第八课--0-5V量程的电压表/zh”的源代码
←
第八课--0-5V量程的电压表/zh
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{| style="width: 800px;" |- | ==目的== 之前我们介绍过模拟口的读取,然后对应返回0-1024的数值,今天我们就要利用Microduino模拟口,来制作一个0-5V的电压表。 '''注意:本实验电路设计没有相对复杂的保护电路,所以,千万别使用超过两节以上的AA电池,并且不要用来测量锂电池或者其他电源!!''' ==设备== *[[ Microduino-CoreSTM32]] Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。 *其他硬件设备 **面包板跳线 一盒 **面包板 一块 **1k电阻 一个 **USB数据连接线 一根 [[File:stm32-lesson9All.jpg|600px|center|thumb]] ==原理图== [[File:stm32-less0n9-schematic.jpg|center|600px|thumb]] 图上使用1K电阻的目的是在测量端悬空的情况下,将GND的基准电平引导到测量口,避免接口悬空受到干扰。 ==程序== <source lang="cpp"> float temp; //创建一个浮点型变量temp作为存储空间准备存放数据 void setup() { Serial.begin(115200); //使用9600的波特率进行串口通讯 } void loop() { int V1 = analogRead(A0); //从A0口读取电压数据存入刚刚创建整数型变量V1,模拟口的电压测量范围为0-5V 返回的值为0-1024 float vol = V1*(5.0 / 1023.0); //我们将 V1的值换算成实际电压值存入浮点型变量 vol if (vol == temp) //这部分的判断是用来过滤重复的数据,只有本次的电压值和上次不一时才进行输出 { temp = vol; //比较完成后,将这次的值存入比对比用的变量temp } else { Serial.print(vol); //串口输出电压值,并且不换行 Serial.println(" V"); //串口输出字符V,并且换行 temp = vol; delay(1000); //输出完成后等待1秒钟,用于控制数据的刷新速度。 } } </source> ==结果== 当被测电压值有改变时每隔1s刷新一次数据,2次的电压值有波动是正常的,因为这毕竟是低精度的测试。要想更加精度测试, [[File:stm32-lesson9Result.jpg|600px|center|thumb]] ==视频== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
第八课--0-5V量程的电压表/zh
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
Welcome
首页
创客大赛
大赛详情
3D打印
安装月球车
图形化编程
操控月球车
升级月球车
编程工具下载
软件下载
Arduino
Processing
Mixly
Scratch
模块套件
Microduino 102
mCookie 102
mCookie 202
mCookie 302
IBC
其他
应用套件
四轴飞行器
平衡车
小车CUBE
音乐播放器
刷卡音乐播放器
wifi气象站
彩虹音乐触摸灯
分贝检测仪
迎门汇报
LED点阵时钟
LED点阵屏幕
硬件
mCookie
Sensor
Microduino
MicroWrt
MicroNux
MicroRobot-Core
MicroRobot-CoreESP
ideaBoard
ideaBox
MicroMV
MicroAI
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息