Arduino - ¿Cómo reduzco el ruido en mi circuito?

1

Tengo un circuito bastante simple que consiste en un arduino, un acelerómetro y un amplificador. Estoy recopilando datos del acelerómetro usando I2C y reproduciendo algunos sonidos a través de un amplificador de conmutación ( this ). El problema es que estoy recibiendo un ruido constante en el fondo. Estoy 90% seguro de que es debido a la conexión I2C entre el acelerómetro y el arduino.

Estoy usando un inductor de 10 mH y una tapa de 100 nF El amplificador está conectado a través del capacitor y está recibiendo energía de la fuente de 5 voltios de arduino. (No lo dibujé aquí). Además, no estoy usando resistores de pull-up externos con el acelerómetro porque aparentemente no lo necesito cuando trabajo con adxl 345

¿Cómo puedo reducir este ruido? ¿De dónde viene?

Editar: -

Mi código tiene, si no, las declaraciones que suenan si el valor del acelerómetro está por encima de un umbral. Creo que el ruido tiene algo que ver con el hecho de que estoy sondeando el acelerómetro todo el tiempo.

    
pregunta Ajit

2 respuestas

2

Especulo que está obteniendo compatibilidad electromagnética acoplamiento de ruido a través de las líneas eléctricas. Supongo que ya has seguido la mejor práctica de asegurándose de que haya un condensador de 1 microfaradio (1 uF) o una tapa de 0,1 uF conectados a cada pin de alimentación de cada chip, con la otra pata de ese condensador conectada a GND.

Si fuera tú, realizaría una prueba rápida como esta:

  • Coloque algún tipo de búfer o inversor entre el Arduino y el filtro LC.
  • Mantenga la GND conectada entre todas las secciones.
  • Desconecta la línea de + 5V entre cada sección.
  • Pida prestadas 3 fuentes de alimentación de 5 V separadas para alimentar de forma independiente cada sección. (Tal vez un wall-wart de "recargador USB" con alimentación de red independiente para cada sección + 5V_a, + 5V_b, y + 5V_c).
  • También obtenga 3 condensadores grandes - 100 uF o 220 uF o un capacitor más grande - y coloque uno en cada sección a través de la fuente de alimentación local de + 5V y la GND común. (Es probable que estos sean condensadores electrolíticos, porque son adecuados para este trabajo y cuestan mucho menos que otras formas de obtener al menos 100 uF).

    .      +5V_a              +5V_b    +5V_c
    .      |                  |        |
    . Accelerometer==(I2C)==Arduino--inverter--(LC filter)--speaker
    .      |                  |        |            |
    . GND--+------------------+--------+------------+-----------GND
    

Para asegurarme de que no haya conectado las líneas de + 5V, Podría separarlos a través de mi mesa de trabajo, así puedo ver visualmente que es obvio que la única conexión entre las secciones es la GND y las líneas de señal.

(Probablemente use un Schmitt NAND Gate 74HC132 o un mux 4: 1 74HC253 o 74AC253 cableado como inversor o búfer, porque los tengo en mi stock de chips muy útiles; pero casi cualquier chip 74xxx. Si tiene a mano, funcionaría bien para esta prueba).

¿Esta configuración elimina el ruido que escuchas?

  • Si esta configuración elimina el ruido: Genial, sabemos que el ruido vino a través de las líneas eléctricas y conocemos una forma de solucionarlo. Tome una fotografía del arreglo de trabajo conocido, y luego intente "optimizar" ejecutando solo 2 fuentes de alimentación o 1 fuente de alimentación. Debe quedar rápidamente claro exactamente qué sección (es) es la fuente del ruido y qué sección es la víctima del ruido, y puede usar técnicas estándar de reducción de ruido (resistencia en serie en el pin de salida; filtros LC, filtros RC, filtros pi, perlas de ferrita, etc. entre la potencia de un chip y la potencia de otro chip; etc.) para reducir el ruido en su origen y reduce la cantidad de ruido que se filtra desde el origen al destino.

  • Si esta configuración no elimina el ruido: debe haber alguna otra fuente de ruido otra . ¿Quizás hay una mala interacción entre el software que reproduce los sonidos y el software que lee y escribe el bus I2C? Si realiza un boceto de prueba temporal separado que nunca habla con el acelerómetro sino que siempre reproduce sonidos incondicionalmente, ¿sigue oyendo el ruido? ¿Cuál es el boceto más corto que puede hacer que muestre el problema?

respondido por el davidcary
0

Hay tres fuentes de ruido:

1- El ruido que proviene de las líneas eléctricas (VCC, GND)

2- El ruido causado por los componentes del circuito y se inyecta a los pines de un IC.

3- Las radiaciones que vienen del exterior del circuito.

Por lo tanto, para reducir el ruido, debes evitar esos tres tipos de ruido.

Estos son los consejos para reducir el ruido que pueden ayudarte:

  • utilizando los paquetes SMD de AVR.
  • utilizando cursos de energía sin ruido (que tienen filtros VDR y EMI)
  • colocar condensadores de tantalio entre las líneas VCC y GND.
  • siempre coloque un condensador en el rango de nano faradios junto a un capacitor en el rango de micro faradios.

  • coloque un filtro LC después de los circuitos de regulación.

  • es mejor usar reguladores lineales en lugar de reguladores de conmutación para AVR.
  • utilizando un buen PCB (que tiene un polígono)
  • muy importante: usar un cable de alta calidad (con blindaje) y mejor usar cables trenzados.

  • colocar el circuito en una caja metálica conectada a GND (para evitar que los rayos lleguen al circuito)

Por supuesto, esos consejos son generales, pero si los marca uno por uno, tendrá éxito.

Espero que ayude.

EDITAR:

la mejor opción es colocar una tapa de 220uF (electrolito) y una tapa de 100nF (cerámica) entre las líneas de alimentación VCC y GND.

en la entrada de un altavoz, debe haber no voltaje de CC (de lo contrario, se calentará), por lo que no debe colocar ningún límite allí.

en las líneas I2C. No debería haber ninguna capacitancia, también.

y siempre tenga cuidado con la radiación en las líneas I2C.

intente acortar los cables tanto como sea posible.

eso es todo lo que puedo recomendarte.

    
respondido por el AHB

Lea otras preguntas en las etiquetas