mirror of
https://github.com/sascha-hemi/pycom-documentation.git
synced 2026-03-22 03:06:51 +01:00
54 lines
1.4 KiB
Markdown
54 lines
1.4 KiB
Markdown
---
|
|
title: "DAC"
|
|
aliases:
|
|
- firmwareapi/pycom/machine/dac.html
|
|
- firmwareapi/pycom/machine/dac.md
|
|
- chapter/firmwareapi/pycom/machine/dac
|
|
---
|
|
|
|
The DAC is used to output analog values (a specific voltage) on pin `P22` or pin `P21`. The voltage will be between `0` and `3.3V`.
|
|
|
|
## Quick Usage Example
|
|
|
|
```python
|
|
|
|
import machine
|
|
|
|
dac = machine.DAC('P22') # create a DAC object
|
|
dac.write(0.5) # set output to 50%
|
|
|
|
dac_tone = machine.DAC('P21') # create a DAC object
|
|
dac_tone.tone(1000, 0) # set tone output to 1kHz
|
|
```
|
|
|
|
## Constructors
|
|
|
|
#### class class machine.DAC(pin)
|
|
|
|
Create a DAC object, that will let you associate a channel with a `pin`. `pin` can be a string argument.
|
|
|
|
## Methods
|
|
|
|
#### dac.init()
|
|
|
|
Enable the DAC block. This method is automatically called on object creation.
|
|
|
|
#### dac.deinit()
|
|
|
|
Disable the DAC block.
|
|
|
|
#### dac.write(value)
|
|
|
|
Set the DC level for a DAC pin. `value` is a float argument, with values between 0 and 1.
|
|
|
|
#### dac.tone(frequency, amplitude)
|
|
|
|
Sets up tone signal to the specified `frequency` at `amplitude` scale. `frequency` can be from `125Hz` to `20kHz` in steps of `122Hz`. `amplitude` is an integer specifying the tone amplitude to write the DAC pin. Amplitude value represents:
|
|
|
|
* `0` is 0dBV (~ 3Vpp at 600 Ohm load)
|
|
* `1` is -6dBV (~1.5 Vpp), `2` is -12dBV (~0.8 Vpp)
|
|
* `3` is -18dBV (~0.4 Vpp).
|
|
|
|
The generated signal is a sine wave with an DC offset of VDD/2.
|
|
|