查看“模拟电压表”的源代码
←
模拟电压表
跳转至:
导航
、
搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
{{Language | Simulate_voltage_meter}} {| style="width: 800px;" |- | ==目的== 本教程将教大家如何用Microduino做一个模拟电压表,电压表的读数在Processing中显示。 ==设备== *'''[[Microduino-Core/zh]]''' *'''[[Microduino-USBTTL/zh]]''' *其他硬件设备 **USB数据连接线 一根 **面包板 一个 **1M欧电阻 一个 **100K欧电阻 一个 **跳线 一盒 ==原理图== [[File:AnalogVoltmeterConnectionDiagram.jpg|600px|center|thumb]] 原理图使用A2,显示电压读数显示在频道一中,一共四个频道分配对应A0,A1,A2,A3你也可以试试。 ==程序== [https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Processing/AnalogVoltmeter AnalogVoltmeter] [https://github.com/Microduino/Microduino_Tutorials/tree/master/Microduino_Processing/AnalogVoltmeterProcessing AnalogVoltmeterProcessing] ==调试== 步骤一:按着原理图搭建硬件环境,像这样: [[File:AnalogVoltmeterConnection.jpg|600px|center|thumb]] 步骤二:解释一下代码: 本例需要两端的代码,Processing端和Microduino端 Microduino: //得到电压值后通过串口输出用以Processing端接收 void loop() { // take a number of analog samples and add them up while (sample_count < NUM_SAMPLES) { // sample each channel A2 to A5 for (l_cnt = 0; l_cnt < 4; l_cnt++) { sum[l_cnt] += analogRead(A2 + l_cnt); } sample_count++; delay(10); } // calculate the voltage for each channel for (l_cnt = 0; l_cnt < 4; l_cnt++) { voltage[l_cnt] = ((float)sum[l_cnt] / (float)NUM_SAMPLES * V_REF) / 1024.0; } // each voltage is multiplied by the resistor network // division factor to calculate the actual voltage voltage[0] = voltage[0] * DIV_1; voltage[1] = voltage[1] * DIV_2; voltage[2] = voltage[2] * DIV_3; voltage[3] = voltage[3] * DIV_4; // send voltages to Processing application via serial port / USB // voltage 1 - A (pin A2) Serial.print("A "); Serial.print(voltage[0], 1); Serial.print("V "); // voltage 2 - B (pin A3) Serial.print("B "); Serial.print(voltage[1], 1); Serial.print("V "); // voltge 3 - C (pin A4) Serial.print("C "); Serial.print(voltage[2], 1); Serial.print("V "); // voltage 4 - D (pin A5) Serial.print("D "); Serial.print(voltage[3], 1); Serial.print("V "); Serial.println(""); delay(10); // reset count and sums sample_count = 0; for (l_cnt = 0; l_cnt < 4; l_cnt++) { sum[l_cnt] = 0; } } Processing: //得到第一个串口的数据 println(Serial.list()); // modify Serial.list()[0] to select correct serial port ser_port = new Serial(this, Serial.list()[0], 9600); 函数说明: // 串口事件函数 void serialEvent(Serial p) // 显示频道数和电压值 void voltage (int channel, String volts) //绘制图表轴 void DrawGraphAxis(int pos_x, int pos_y, int width, int height) //绘制图表 void DrawGraph (String voltage, int channel, int pos_x, int pos_y, int scale) // 绘制标尺,单选框 void DrawScaleSelect (int x_pos, int y_pos, int scale) 步骤三:下载代码并编译通过。 步骤四:运行后,找个电池之类的,放到上图中红线和黑线之间,看屏幕上的读数。 ==结果== 屏幕上第四频道会显示A5 pin的电压读数,像这样: [[File:AnalogVoltmeterResult.jpg|600px|center|thumb]] ==视频== |}
该页面使用的模板:
模板:Language
(
查看源代码
)
模板:Nmbox
(
查看源代码
)
返回至
模拟电压表
。
导航菜单
个人工具
创建账户
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
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
帮助
常见问题
帮助
工具
链入页面
相关更改
特殊页面
页面信息