La fuente de alimentación externa de Arduino causa problemas de temporización

0

Estaba haciendo un prototipo de un proyecto (básicamente un servo y un piezo controlado por un botón con algunos LED para indicar el estado) todo iba bien. Así que decidí quitar el proyecto de la placa ardiuno y probarlo en una placa de pruebas antes de soldar los componentes.

Para hacer esto, seguí varios tutoriales para quitar el Atmega328 del arduino y asignar los pines al cristal y las tapas y agregar un regulador de potencia. Pero cuando trato de alimentarlo a través de una batería de 9v o una verruga de pared de 5v, actúa realmente raro. El servo responde, luego no responde, o se mueve al azar, por lo que parece que tengo un problema de tiempo o que el estado de mi botón está fluctuando.

La cosa es que esto solo sucede cuando se alimenta a través del "regulador de potencia" que instalé: un regulador de 5 V y algunas tapas. Si dejo el Atmega328 en la placa de pruebas y conecto mi tarjeta arduino a través de USB a mi computadora y solo conecto un cable de 5 V y tierra a mis rieles, todo funciona perfectamente.

He comprobado el voltaje en los rieles de alimentación con un multímetro y es 4.96 (entonces es el voltaje correcto). Pensé que podría ser un problema no convertir CA en CC, pero lo mismo sucede con un 9v batería. ¿Alguien tiene idea de qué está pasando?

¡Por favor ayuda!

    
pregunta keisi

2 respuestas

1

A partir de la descripción de su problema, parece que el servo está causando muchos problemas con la regulación del suministro al micro.

Lo que creo que está sucediendo es que el servo cuando se está moviendo está causando una gran cantidad de rizado / ruido eléctrico en el suministro al micro o activando el límite de corriente en su regulador causando que el suministro se caiga (aunque solo sea por microsegundos - que no sería visible en un multímetro (necesitaría un osciloscopio para ver esto), cualquiera de estos puede hacer que el micro sea muy impredecible.

Yo sugeriría usar 4 baterías AA para alimentar el servo, y un suministro por separado al micro para probarlo (solo necesita una conexión a tierra común o negativa para que funcione)

Solo una pregunta simple, ¿qué está usando para su suministro de 5v? ¿Cuál es la corriente máxima? - Los servos pueden tomar una corriente muy alta (más de 0.2 amperios a 2-3 amperios según la clasificación del servo y la cantidad de esfuerzo necesario para moverse)

    
respondido por el Wonko The Sane
0

Probablemente ya hayas solucionado este problema, pero logré solucionar el mismo problema. Mi arduino uno trabajando con una verruga de pared de 12 voltios de CC podría cronometrar por un período corto, por ejemplo, de 20,000 a 40,000 milisegundos alimentado con una verruga de pared, pero durante períodos de tiempo más largos, algo saldría mal y efectivamente se congelaría en el modo. Mi solución fue utilizar un período de tiempo corto para la función de retardo (por ejemplo, 20,000 ms) e incrustarlo en un bucle for para contar el período de tiempo más largo que necesita. Esto es para un sistema de riego, tenga en cuenta que el tiempo de retardo es de 20,000 ms, y el retardo del tiempo de riego es de 20,000 * 15 = 300,000 ms (5mins)

int doseTime1=20000;

//glass house on

digitalWrite(11,HIGH);

for(int ghouse = 0; ghouse < 15; ghouse++){

delay(doseTime1);
}

//glass house off

digitalWrite(11,LOW);

Espero que esto ayude.

    
respondido por el Cameron Hall

Lea otras preguntas en las etiquetas