Files
pycom-documentation/content/firmwareapi/pycom/machine/adc.md
Emmanuel Florent b192705aee manual rework
2019-06-25 17:22:42 +02:00

100 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "ADC"
aliases:
- firmwareapi/pycom/machine/adc.html
- firmwareapi/pycom/machine/adc.md
- chapter/firmwareapi/pycom/machine/adc
---
# ADC
## class ADC Analog to Digital Conversion
### Quick Usage Example
```python
import machine
adc = machine.ADC() # create an ADC object
apin = adc.channel(pin='P16') # create an analog pin on P16
val = apin() # read an analog value
```
### Constructors
#### class machine.ADC(id=0)
Create an ADC object; associate a channel with a pin. For more info check the hardware section.
### Methods
#### adc.init( \* , bits=12)
Enable the ADC block. This method is automatically called on object creation.
* `Bits` can take values between 9 and 12 and selects the number of bits of resolution of the ADC block.
#### adc.deinit()
Disable the ADC block.
#### adc.channel(\* , pin, attn=ADC.ATTN\_0DB)
Create an analog pin.
* `pin` is a keyword-only string argument. Valid pins are `P13` to `P20`.
* `attn` is the attenuation level. The supported values are: `ADC.ATTN_0DB`, `ADC.ATTN_2_5DB`, `ADC.ATTN_6DB`, `ADC.ATTN_11DB`
Returns an instance of `ADCChannel`. Example:
```python
# enable an ADC channel on P16
apin = adc.channel(pin='P16')
```
#### adc.vref(vref)
If called without any arguments, this function returns the current calibrated voltage (in millivolts) of the `1.1v` reference. Otherwise it will update the calibrated value (in millivolts) of the internal `1.1v` reference.
#### adc.vref\_to\_pin(pin)
Connects the internal `1.1v` to external `GPIO`. It can only be connected to `P22`, `P21` or `P6`. It is recommended to only use `P6` on the WiPy, on other modules this pin is connected to the radio.
### Constants
* ADC channel attenuation values: `ADC.ATTN_0DB`, `ADC.ATTN_2_5DB`, `ADC.ATTN_6DB`, `ADC.ATTN_11DB`
## class ADCChannel
Read analog values from internal/external sources. ADC channels can be connected to internal points of the `MCU` or to `GPIO` pins. ADC channels are created using the `ADC.channel` method.
### Methods
#### adcchannel()
Fast method to read the channel value.
#### adcchannel.value()
Read the channel value.
#### adcchannel.init()
(Re)init and enable the ADC channel. This method is automatically called on object creation.
#### adcchannel.deinit()
Disable the ADC channel.
#### adcchannel.voltage()
Reads the channels value and converts it into a voltage (in millivolts)
#### adcchannel.value\_to\_voltage(value)
Converts the provided value into a voltage (in millivolts) in the same way voltage does.
{{% hint style="danger" %}}
ADC pin input range is `0-1.1V`. This maximum value can be increased up to `3.3V` using the highest attenuation of `11dB`. **Do not exceed the maximum of 3.3V**, to avoid damaging the device.
{{< /hint >}}