Salida de Arduino Audio (10 / 10 paso)

Paso 10: Consejos adicionales

DAC esta utiliza un poco de disponibles pines digitales de Arduino, incluyendo algunos que se utilizan normalmente para comunicaciones serie y PWM, así que aquí están algunas sugerencias que le ayudará a gestionar los conflictos de pin.

Si quieres hacer de la comunicación serial: Serial de software es una librería de Arduino que permite convertir cualquiera de los pines de Arduino en pines seriales.  Generalmente cuando haces un proyecto de Arduino que requiere una comunicación serial, se evite el uso de pines digitales 0 y 1 porque necesitan estar libres enviar datos en serie.  Me gusta utilizarlos para el DAC de 8 bits porque pins 0-7 son parte de PORTD en viruta de Atmel328 de Arduino, esto me permite abordar todos ellos en una sola línea de código.  PORTB solo tiene 6 pines (pins digitales 8-13) y PORTC solo tiene 6 pines (pernos analógicos 0-5), por lo que no puede construir un DAC de 8 bits con estos puertos solo.

Si usted necesita usar los pines PWM, o de lo contrario utilice alfileres diferentes como el CAD: Si usted debe usar los pines PWM puede utilizar bit manipulación para liberar los pines 3, 5 y 6 y reemplazarlos con los pernos de 8, 12 y 13.  Dices que quieres enviar el número 36 al PORTD.  Puede utilizar las siguientes líneas:

definir las variables:
boolean bit3state;
bit5state Boolean;
bit6state Boolean;

en el loop() principales:

bit3state = (36 y B00001000) >> 3; //get el tercer bit de 36
bit5state = (36 y B00100000) >> 5; //get el quinto bit del 36
bit6state = (36 y B01000000) >> 6; //get el sexto bit de 36

enviar datos a portd sin interrumpir los pines 3, 5 y 6
PORTD | = (36 y B10010111); //set pernos altos alta con el número 36 ceros reemplazo de brocas de 3, 5 y 6
PORTD & = (36| B01101000); //set pins baja baja con el número 36 de los reemplazo de brocas de 3, 5 y 6

enviar datos a portb sin interrumpir los pines 9, 10 y 11
PORTB | = 0 | (bit3state) | (bit5state << 4) | (bit6state << 5); //set pernos altos
PORTB & = 255 & ~(1-bit3state) & ~((1-bit5state) << 4) & ~((1-bit6state) << 5); //set pernos bajo

Asegúrese de mantener estas líneas PORTD y PORTB justo al lado del otro en el código, desea que los pines en el puerto d y Puerto b para cambiar en lo más cerca al mismo tiempo como sea posible.

Aquí está el código del paso anterior, editado para que no utiliza las patas PWM.  Como veis en la figura 1, la salida no filtrada de la DAC tiene muchas discontinuidades causadas por la diferencia entre enviar datos al puerto d y Puerto b como división los comandos de ajuste de pernos de alta y baja.  Usted puede deshacerse de la mayoría de estas discontinuidades con el filtro de paso bajo (Fig. 2).  Si desea utilizar esta técnica podría considerar aumentar la frecuencia de corte del filtro paso bajo.  Si desea hacer esto muy bien, podría enviar sus 5 bits más significativos al puerto d y sus 3 bits menos significativos al puerto b.  Esto podría disminuir la amplitud de algunas de las discontinuidades, reduciendo la magnitud del ruido.  Voy a dejar adivinar que uno por su cuenta.

 //Sine out, 40kHz sampling rate, w/o using PWM pins //by Amanda Ghassaei 

Si te quedas sin pines digitales y necesita más:  Recuerde que siempre puede usar sus pines analógicos como E/S digitales.  Probar las siguientes funciones, trabajan al igual que se trata de un pin digital regular.

digitalWrite (A0, alto); //set pin A0 alta
digitalWrite (A0, baja); //set pin A0 baja
digitalRead (A0); //read datos digitales del pin A0

De lo contrario, pruebe a utilizar un multiplexor.  Si necesitas mas salidas digitales, el 74HC595 le permite hacer tres pines digitales del Arduino de 8 salidas.  Usted puede incluso encadenar múltiples 595 de juntos para crear muchas más salidas de pines.  Puede configurar su CAD todo en uno de estos chips si desea (aunque tendría unas pocas líneas de código para abordarla y podría demorar demasiado para tasas de muestreo).  La Página Web de Arduino es un buen lugar para aprender acerca de cómo utilizar la 595.

Si necesita más entradas digitales, el 74HC165 o CD4021B permiten convertir tres de los pines digitales del Arduino en 8 entradas.  Una vez más, la Página Web de Arduino es un buen lugar para empezar a aprender a usar estos chips.

Si desea utilizar la información en este Instructable con otras tablas o la Mega: En este Instructable he hablado exclusivamente sobre la Arduino Uno con Atmel328.  El mismo código se ejecuta bien en cualquier placa con un chip Atmel328 o Atmel168 en él.  También puede utilizar las mismas ideas con un Mega.  Debe tratar de fijar su DAC a cualquier puerto que tiene 8 pines disponibles, de esa manera usted puede abordar su DAC con una línea de código ("PORTD =") en la ONU, el único puerto que tiene 8 pines disponibles es puerto d.  



cuadro indica que el Mega tiene varios puertos con 8 pernos: los puertos a, b, c, y l son las opciones obvias.  Si no importa perder pines analógicos también puede usar puertos f o k.

Artículos Relacionados

Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Generador de código para menús personalizados de Android/Arduino activar salidas de Arduino y apagado. Andriod/Arduino para principiantes. Absolutamente ninguna programación requerida

Actualización: un usuario pidió menú apoyo. pfodApp siempre admite submenús pero he agregado submenús al pfodDesigner. El instructable diseño un sistema de menú Custom muestra cómo utilizar pfodDesigner para crear un menú con submenús que mostrará en
Pulso de salida de Arduino del móvil Android. Ninguna programación requerida

Pulso de salida de Arduino del móvil Android. Ninguna programación requerida

IntroducciónEste Instructable muestra cómo utilizar la aplicación gratuita, pfodDesigner, para diseñar un menú en tu móvil Android que se pulsará una salida en tu placa Arduino sin tener que escribir ningún código en absoluto. El pfodDesigner genera
Registro de salida de Arduino para días con un BeagleBone

Registro de salida de Arduino para días con un BeagleBone

Aquí es un hack rápido para la depuración de proyectos de Internet de las cosasVamos a decir usted construido un bonito, conectados a Internet Arduino proyecto con una elegante interfaz Web servida por, por ejemplo, el escudo de la Ethernet. Después
RegisterWrite - extender las salidas del Arduino/microcontrolador con los registros de cambio

RegisterWrite - extender las salidas del Arduino/microcontrolador con los registros de cambio

Registrar escriba es un ejemplo de programa para ampliar las salidas de Arduino usando un registro de cambio.He escribí un bosquejo sencillo que usa 3 salidas de Arduino para manejar el registro de desplazamiento.Escribí esto como no pude encontrar n
Shield Arduino Audio

Shield Arduino Audio

En este vídeo mostramos los pasos para el montaje de su caso de audio shield Arduino. Para adquirir uno de estos casos, solo volver a mi proyecto de kickstarter: Arduino Audio escudoPaso 1: Cómo montar tu caso de Shield Arduino Audio DSPEl primer pas
Escudo de Arduino Audio DSP

Escudo de Arduino Audio DSP

El escudo de Arduino Audio DSP tiene modulación de anillo, eco, reverb, un oscope, oscilador, generador de forma de onda arbitraria, etc.. Es un sistema de software y hardware, un hombre sano, en una lata!Paso 1: Conseguir un escudo audio de arduinoL
Entrada de Arduino Audio

Entrada de Arduino Audio

Enviar sonido a tu Arduino. Este Instructable le mostrará cómo preparar el audio para que puedan ser muestreado y procesada por un Arduino para hacer proyectos sensibles sonidos y efectos de audio. (Este artículo es un compañero de otro Instructable
¿Arduino Audio accionado el interruptor

¿Arduino Audio accionado el interruptor

Ever quería su entretenimiento en el hogar o el sistema de sonido a la energía encima de sí mismo al conectar tu iPod u otro reproductor portátil de MP3?Vea este vídeo para ver cómo funciona. Entonces voltear a través de los pasos para saber cómo hac
Probador de la salida de Arduino usando LED #Xolcano

Probador de la salida de Arduino usando LED #Xolcano

este es un simple y proyecto muy útil cuando se trabaja en cualquier prototipo te puede usar esto para ahorrar tiempo...! así que empezar letzPaso 1: Componentes necesarios 1) LED 3 mm-#72) 1 k resistencia - #73) protoboard perforado4) soldadura de p
Fácil Arduino Audio Annoyatron

Fácil Arduino Audio Annoyatron

este simple dispositivo simple juega una pequeña melodía a intervalos al azar, entre 5 y 30 segundos cuando apagarán las luces en una habitación. Puede ser hábilmente disfrazada dentro de una caja de tejido, o dentro o debajo de cualquier número de o
Twitter controla salidas de Arduino - no PC - pantalla de LCD + Sensor datos a Twitter

Twitter controla salidas de Arduino - no PC - pantalla de LCD + Sensor datos a Twitter

Control digital hacia fuera los pernos por mensajes de Twitter. Lecturas del sensor enviadas a Twitter.MODIFICADO por JOHN Xativa de Twitter2LCD escrito originalmente por Fabrizio GranelliVer * Usted puede enviar mensajes de texto a la pantalla de LC
Arduino Due entrada guitarra de ADC y DAC salida mezclador

Arduino Due entrada guitarra de ADC y DAC salida mezclador

esta es la secuela a mi instructable que ofrece un circuito de entrada de señales generadas por una guitarra en el arduino due ADC.[Actualizado el 26 de enero de 2014 - el esquema ha cambiado... ver notas a continuación.]Este instructivo describe el
Audio estéreo con Arduino

Audio estéreo con Arduino

Recientemente yo he publicando un montón de proyectos que usan un 8 bit escala de resistenciaconvertidor digital a analógico (DAC) y un Arduino para hacer sonido. (ver el cuadro de efectos vocales de Arduino, Arduino tambor sampler y mi tutorial de s
Arduino intermedio: Entradas y salidas

Arduino intermedio: Entradas y salidas

Continuando con mi introducción a Arduino puesto, irá este Instructable sobre algunos temas un poco más avanzados con Arduino, relativos específicamente a controlar y muchas entradas y salidas. La siguiente clase cubre cómo conectar entradas de Ardui