Arduino Leonardo 简单操作之二--读取模拟量(电压)

硬件准备:

除了开发板和USB线之外,还要购买面包板、跳线、可变电阻器(0-100KOhm之间手动可调)、固定电阻器(2kOhm)

使用leonardo 提供的5伏电压源,向电阻供电,如图。A3针是读取模拟量的ADC接口。leonardo另一端连计算机。

代码如下:

int analogPin = A3;
int iVal = 0;
void setup()
{
    Serial.begin(9600);//打开串口,设置波特率9600
    pinMode(1, OUTPUT);//由于pin1是串口的Tx,所以要将其模式设置为OUTPUT
}

void loop()
{
    iVal = analogRead(analogPin);
    float fVal = iVal * 5000.0 / 1024;
    Serial.print(fVal, 3);
    Serial.println();//输出换行符
    delay(1000);
}

由于开发板提供的电压是5伏,且模拟量读取的分辨率是1024,那么A3获取的实际电压就是 iVal * 5000.0 / 1024

每次读取的结果通过串口Serial发给上位机。

将开发板与计算机连接后,选择对应的端口和正确的开发板类型:

然后点击IDE界面工具栏左起的第二个按钮,将代码编译并上传到开发板上:

上传完成后,板子就在读取电压并向上位机回报数据了。此时点击IDE的“工具栏”,选择“串口监视器”即可看到实时的电压值。

你可以选择串口的波特率(监视器右下角),使之与代码中的波特率一致。

下图展示的电压是~100mV.这是在可调电阻器的滑动触头到达最下端时测到的数据。此时整个滑动变阻器100KOhm都连入电路。而固定电阻的阻值是2KOhm。所以在两个电阻器相交的位置(也就是滑动触头当时所在的位置,也是A3读取电压的位置),电压约为5000mV * 2 / 100 ~= 100mV,与测量结果相符。

Arduino通过DL/T 645-2007标准通信协议可以读取智能电表(如多功能电能表)的电压、电流和频率信息。该协议是一种用电信息采集系统的数据传输标准,在中国电力行业广泛应用。以下是基本步骤: 1. **连接硬件**:首先,你需要将Arduino与电能表通过RS485串口连接。通常电能表有RS485输出,Arduino会配备RS485转TTL模块。 2. **库选择**:安装并使用适用于Arduino的DL/T 645库,例如 "ardumeter" 或者 "Modbus-TCP" 库,它们提供了处理该协议的功能。 3. **初始化**:设置通信参数,如波特率、地址等,并初始化串口通信。 4. **命令发送与接收**: - 发送读取命令(如读取电压、电流测量值),一般使用特定的数据帧格式,包括起始符、功能码、地址、寄存器数等。 - 等待电能表响应,包含所请求的测量值数据。 5. **解析数据**:接收到的数据经过解析,通常电压、电流和频率的信息会被存储在特定的寄存器中,比如电压U、电流I和频率F对应的寄存器。 6. **读取示例**: ```cpp // 示例代码 int data[3]; byte command[] = {0x03, 0x00, 0x00, 0x00}; // 读取电压、电流、频率的第一个字节 sendCommand(command); if (receiveData(data)) { float voltage = ((data[0] << 8) | data[1]) / 100; // 将16位数值转换到伏特 float current = ((data[2] << 8) | data[3]) / 10; // 类似操作,单位安培 float frequency = data[4]; // 频率数据通常是直接整数,单位Hz Serial.print("Voltage: "); Serial.println(voltage); Serial.print("Current: "); Serial.println(current); Serial.print("Frequency: "); Serial.println(frequency); } ``` 记得检查错误处理和通信延迟,因为电能表可能需要时间来返回数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值