【MicroPython】ADC的使用方法

dcexpert   2016-3-30 23:06 楼主
基本用法

  1. import pyb

  2. adc = pyb.ADC(Pin('Y11'))       # create an analog object from a pin
  3. adc = pyb.ADC(pyb.Pin.board.Y11)
  4. val = adc.read()                # read an analog value

  5. adc = pyb.ADCAll(resolution)    # creale an ADCAll object
  6. val = adc.read_channel(channel) # read the given channel
  7. val = adc.read_core_temp()      # read MCU temperature
  8. val = adc.read_core_vbat()      # read MCU VBAT
  9. val = adc.read_core_vref()      # read MCU VREF

  • pyb.ADC(pin)

通过GPIO定义一个ADC

  • pyb.ADCAll(resolution)

定义ADC的分辨率,可以设置为8/10/12

  • adc.read()

读取adc的值,返回值与adc分辨率有关,8位最大255,10位最大1023,12位最大4095

  • adc.read_channel(channel)

读取指定adc通道的值

  • adc.read_core_temp()

读取内部温度传感器

  • adc.read_core_vbat()

读取vbat电压
vback = adc.read_core_vbat() * 1.21 / adc.read_core_vref()

  • adc.read_core_vref()

读取vref电压(1.21V参考)
3V3 = 3.3 * 1.21 / adc.read_core_vref()

  • adc.read_timed(buf, timer)

以指定频率读取adc参数到buf
buf,缓冲区
timer,频率(Hz)
使用这个函数会将ADC的结果限制到8位

  1. adc = pyb.ADC(pyb.Pin.board.X19)    # create an ADC on pin X19
  2. buf = bytearray(100)                # create a buffer of 100 bytes
  3. adc.read_timed(buf, 10)             # read analog values into buf at 10Hz
  4.                                     #   this will take 10 seconds to finish
  5. for val in buf:                     # loop over all values
  6.     print(val)                      # print the value out

【MicroPython】教程

回复评论 (1)

好东西,顶。
点赞  2016-4-8 19:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复