Просмотр исходного кода

【添加】machine.ADC 模块使用文档

Signed-off-by: chenyong <1521761801@qq.com>
chenyong 6 лет назад
Родитель
Сommit
0700bc1a57
2 измененных файлов с 45 добавлено и 1 удалено
  1. 44 0
      docs/04-Hardware_Control_Module/09-machine-ADC.md
  2. 1 1
      port/machine_adc.h

+ 44 - 0
docs/04-Hardware_Control_Module/09-machine-ADC.md

@@ -0,0 +1,44 @@
+## machine.ADC
+
+**machine.ADC** 类是 machine 模块下的一个硬件类,用于指定 ADC 设备的配置和控制,提供对 ADC 设备的操作方法。
+
+- ADC(Analog-to-Digital Converter,模数转换器 ),用于将连续变化的模拟信号转化为离散的数字信号。
+- ADC 设备两个重要参数:采样值、分辨率;
+  - 采样值:当前时间由模拟信号转化的数值信号的数值;
+  - 分辨率:以二进制(或十进制)数的位数来表示,一般有 8 位、10 位、12 位、16 位等,它说明模数转换器对输入信号的分辨能力,位数越多,表示分辨率越高,恢复模拟信号时会更精确。 
+
+### 构造函数
+
+在 RT-Thread MicroPython 中 `ADC` 对象的构造函数如下:
+
+#### **class machine.ADC**(id, channel)
+
+- **id**:使用的 ADC 设备编号,`id = 1` 表示编号为 1 的 ADC 设备;
+- **channel**:使用的 ADC 设备通道号,每个 ADC 设备对应多个通道;
+
+例如:`ADC(1,4)` 表示当前使用 编号为 1 的 ADC 设备的 4 通道。
+
+### 方法
+
+#### **ADC.init**(channel)
+
+根据输入的传输初始化 ADC 对象,入参为使用的 ADC 对象通道号;
+
+#### **ADC.deinit**()
+
+用于关闭 ADC 对象,ADC 对象 deinit 之后需要重新 init 才能使用。
+
+#### **ADC.read**()
+
+用于获取并返回当前 ADC 对象的采样值。例如当前采样值为 2048,对应设备的分辨率为 12位,当前设备参考电压为 3.3V ,则该 ADC 对象通道上实际电压值的计算公式为:**采样值 * 参考电压  /  (1 <<  分辨率位数)**,即 `vol = 2048 / 4096 * 3.3 V = 1.15V`。
+
+### 示例
+
+``` python
+>>> from machine import ADC     # 从 machine 导入 ADC 类
+>>> adc = ADC(2, 5)             # 创建 ADC 对象,当前使用编号为 2 的 ADC 设备的 5 通道
+>>> adc.read()                  # 获取 ADC 对象采样值
+4095
+>>> adc.deinit()                # 关闭 ADC 对象
+>>> adc.init(5)                 # 开启并重新配置 ADC 对象
+```

+ 1 - 1
port/machine_adc.h

@@ -32,4 +32,4 @@
 
 extern const mp_obj_type_t machine_adc_type;
 
-#endif // MICROPY_INCLUDED_MACHINE_ADC_H
+#endif // MICROPY_INCLUDED_MACHINE_ADC_H