对象: ADC
约 1495 字大约 5 分钟
2026-03-18
构建固件和导入到JS
adc 对象由 gpio 提供:
import { adc } from 'gpio'简介
ADC 对象
提供模数转换(ADC)功能,用于读取模拟信号(如传感器、电位器等)。
对象方法
函数 initUnit
原型: initUnit (options:object)
初始化 ADC 单元
配置 ADC 单元的基本参数。
示例:
import * as gpio from "gpio"
// 初始化 ADC1 单元
gpio.adc.initUnit({
unit: 1, // ADC 单元:1 或 2
clk: "default" // 时钟源
})参数:
options
类型object (详见下方类型定义)
参数说明配置选项
options 类型定义:
{ unit: number, // ADC 单元号(1 或 2) clk: string // 时钟源 }
返回值:
undefined
函数 initChannel
原型: initChannel (options:object)
初始化 ADC 通道
配置 ADC 通道的衰减和位宽。
示例:
import * as gpio from "gpio"
// 初始化通道
gpio.adc.initChannel({
unit: 1,
channel: 0,
atten: 11, // 衰减:0=0dB(0-1.1V), 3=11dB(0-3.3V)
bitwidth: 12 // 位宽:12位(0-4095)
})参数:
options
类型object (详见下方类型定义)
参数说明配置选项
options 类型定义:
{ unit: number, // ADC 单元号 channel: number, // 通道号 atten: number, // 衰减设置 bitwidth: number // 位宽 }
返回值:
undefined
函数 initPin
原型: initPin (pin:number)
初始化 ADC 引脚
将 GPIO 引脚配置为 ADC 输入。
示例:
import * as gpio from "gpio"
// 将 GPIO 34 配置为 ADC 输入
gpio.adc.initPin(34)参数:
pin
类型number
参数说明GPIO 引脚号
返回值:
undefined
函数 read
原型: read (pin:number)
读取 ADC 值(通过引脚)
从指定的 GPIO 引脚读取模拟值。
示例:
import * as gpio from "gpio"
// 初始化
gpio.adc.initPin(34)
// 读取电位器值
setInterval(() => {
const value = gpio.adc.read(34)
const voltage = value / 4095 * 3.3 // 转换为电压
console.log(`ADC: ${value}, Voltage: ${voltage.toFixed(2)}V`)
}, 100)
// 光敏电阻示例
const lightValue = gpio.adc.read(34)
if (lightValue < 1000) {
console.log("Bright")
} else if (lightValue < 3000) {
console.log("Normal")
} else {
console.log("Dark")
}参数:
pin
类型number
参数说明GPIO 引脚号
返回值:
类型number
说明ADC 读数(0 到 2^bitwidth - 1)
函数 readChannel
原型: readChannel (unit:number, channel:number)
读取 ADC 值(通过通道)
从指定的 ADC 通道读取模拟值。
示例:
import * as gpio from "gpio"
// 通过通道读取
const value = gpio.adc.readChannel(1, 0) // 单元1,通道0
console.log("Channel value:", value)参数:
unit
类型number
参数说明ADC 单元号
channel
类型number
参数说明通道号
返回值:
类型number
说明ADC 读数
函数 info
原型: info ()
获取 ADC 信息
返回 ADC 的配置信息。
示例:
import * as gpio from "gpio"
const info = gpio.adc.info()
console.log(info)返回值:
类型object
说明ADC 配置信息
函数 startCont
原型: startCont (options:object)
启动连续转换模式
启动 ADC 连续采样模式,用于高速采集。
示例:
import * as gpio from "gpio"
// 配置连续转换
const handle = gpio.adc.startCont({
unit: 1,
channels: [0, 1], // 转换通道
freq: 1000, // 采样频率
buffer: 1024 // 缓冲区大小
})
// 设置回调处理数据
gpio.adc.setContCallback(handle, (data) => {
console.log("Samples:", data.length)
})
// 读取数据
const samples = gpio.adc.readCont(handle)
// 停止连续转换
gpio.adc.stopCont(handle)参数:
options
类型object
参数说明配置选项
返回值:
类型number
说明连续转换句柄
函数 readCont
原型: readCont (handle:number)
读取连续转换数据
从连续转换模式读取采样数据。
示例:
import * as gpio from "gpio"
const handle = gpio.adc.startCont({...})
// 读取数据
const data = gpio.adc.readCont(handle)
console.log("Samples:", data)参数:
handle
类型number
参数说明连续转换句柄
返回值:
类型number[] 采样数据数组
函数 stopCont
原型: stopCont (handle:number)
停止连续转换模式
停止 ADC 连续采样并释放资源。
示例:
import * as gpio from "gpio"
const handle = gpio.adc.startCont({...})
// ... 使用连续转换 ...
// 停止并释放资源
gpio.adc.stopCont(handle)参数:
handle
类型number
参数说明连续转换句柄
返回值:
undefined
函数 setContCallback
原型: setContCallback (handle:number, callback:function)
设置连续转换回调
设置连续转换模式的数据回调函数。
示例:
import * as gpio from "gpio"
const handle = gpio.adc.startCont({...})
// 设置数据处理回调
gpio.adc.setContCallback(handle, (samples) => {
// 计算平均值
const avg = samples.reduce((a, b) => a + b, 0) / samples.length
console.log("Average:", avg)
})参数:
handle
类型number
参数说明连续转换句柄
callback
类型function
参数说明数据回调函数
返回值:
undefined
