Herramientas de usuario

Herramientas del sitio


desarrollo:edu-ciaa:edu-ciaa-nxp:python:bibliotecas:modulo-pyb-dac

Soporte DAC: Clase DAC

La clase DAC permitirá crear objetos que representan la salida analógica de la placa.

Constructor

La clase posee un constructor que recibe un solo argumento, este argumento es el número de salida analógica que controlará. Solo existe una salida, por lo que el valor que debe pasarse siempre es 1.

Métodos

  • write(val) : Escribe el valor en cuentas (0 a 1023) en la salida con un fondo de escala de 3.3V
  • noise(f): Genera una señal de ruido pseudo aleatorio de 256 muestras a la frecuencia especificada (de 1 a 400000)
  • triangle(f): Genera una señal triangular de 256 muestras a la frecuencia especificada (de 1 a 400000)
  • write_timed(data,freq,mode): Genera una señal utilizando como muestras el array de datos pasado como argumento (data) a la frecuencia dada (freq de 1 a 400000) utilizando DMA. El argumento mode puede ser pyb.DAC.NORMAL (solo genera la señal una vez) o pyb.DAC.CIRCULAR (al terminar vuelve a empezar)

Ejemplo generación de una señal senoidal

import pyb
import math

dac = pyb.DAC(1)

# sine
buf = bytearray(200) #100 samples. 2 bytes per sample
j=0
for i in range (0,len(buf)/2):
        v = 512 + int(511 * math.sin(2 * math.pi * i / (len(buf)/2) ) )
        buf[j+1] = (v >>  8) & 0xff
        buf[j] = v & 0xff
        j=j+2

# output the sine-wave at 400Hz
print("sine created")

dac.write_timed(buf, 400*(int(len(buf)/2)), mode=pyb.DAC.CIRCULAR)

while True:
        pyb.delay(1000)
desarrollo/edu-ciaa/edu-ciaa-nxp/python/bibliotecas/modulo-pyb-dac.txt · Última modificación: 2016/10/08 18:17 por egigliotti

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki