三木社区

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 237|回复: 0
打印 上一主题 下一主题

【MicroPython】ADC的使用方法

[复制链接]

1562

主题

1564

帖子

4904

积分

博士

Rank: 8Rank: 8

积分
4904
跳转到指定楼层
楼主
发表于 2017-9-6 07:44:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
  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
复制代码


回复

使用道具 举报

Archiver|手机版|小黑屋|三木电子社区 ( 辽ICP备11000133号-4 )

辽公网安备 21021702000620号

GMT+8, 2024-4-20 00:04 , Processed in 0.027990 second(s), 22 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表