5v piezo (micropump) con arduino

0

editar -preguntó el pin 9 como salida en la configuración y ahora funciona el código ALTO / BAJO. -Cuando la bomba está configurada en BAJA, se enciende, cuando pasa a ALTA se desactiva. Así que cuando conecto el arduino, por defecto, la bomba se enciende antes de leer cualquier código. ¿Hay alguna forma de establecer un pin en ALTO (por defecto) para que no bombee cuando está enchufado? ... Hablé con el fabricante nuevamente, y parece que venden otro modelo que no bombea cuando está bajo ... así que por ahora, sugirieron poner un interruptor de encendido / apagado entre el cable rojo y el pin de 5V.

fin de edición

Estoy intentando controlar una bomba piezoeléctrica de 5 V (micro bomba) con mi Arduino uno, pero tengo algunas dificultades para que funcione correctamente. Esta es la bomba que estoy usando.

No estoy seguro de si debería usar una fuente de alimentación separada para hacer funcionar la bomba, o si puedo evitar usar el pin de 5 V del arduino. La bomba utiliza 0.05-0.25W ... por lo tanto, a 5 V, debe tener un consumo de corriente máximo de 50 mA. ¿Sería suficiente una resistencia para proteger al arduino y hacer funcionar la bomba (estoy usando una resistencia de 470 ohmios, no estoy seguro si debería ser más o menos)? La bomba tiene un cable rojo (5V), un cable negro (grd) y un cable amarillo (control PWM).

Este es el código que estoy usando (intentando encender y apagar la bomba) ... el código funcionó cuando dejé el cable amarillo sin unir y envié el cable negro a través de un MOSFET de canal N ... pero bombea muy lentamente. Cuando engancho la bomba como se muestra en la imagen de abajo, se ejecuta fuerte durante un segundo, luego un poco menos fuerte durante un segundo y se repite ... (solo bombea y luego escupe)

El fabricante me dijo que necesitaba programar PWM con cierta relación de trabajo por período de 1 segundo y que la bomba está configurada para funcionar a una frecuencia predeterminada de 50Hz.

void loop() {
tone(9, 50, 1000);  // 9=PWM pin, 50 = freq (Hz), 1000 = hold freq. for 1 sec.
delay(1000);    

noTone;             //turn pump off
delay(1000);
} 

También probé esto en vano (suponiendo que se ejecutaría a los 50 Hz predeterminados cuando se establece ALTO / BAJO)

void setup{
      pinMode(9,OUTPUT);}

void loop() {
      digitalWrite(9,HIGH);
     delay(1000);
      digitalWrite(9,LOW);
     delay(1000);}

Cualquier ayuda para hacer que esto funcione sería muy apreciada. Gracias!

    
pregunta Matty D

2 respuestas

1

El estado predeterminado del pin al restablecer el ATMega328P es de entrada de triple estado. Por lo tanto, agregar una resistencia de pull-up externa a la línea de señal lo mantendrá ALTO al inicio. Conecte una resistencia de 10K - 100K del pin de cable amarillo a 5V.

Actualizar:

pinMode(9,OUTPUT); habilita la salida, sin embargo, la configuración de inicio es LOW . Prueba:

digitalWrite(9,HIGH);
pinMode(9, OUTPUT); 

Alternativa

MOSFET de canal N entre cable negro y tierra. Conecte la puerta al pin IO digital a bordo. Tire hacia abajo el pasador usando una resistencia de 10 K al suelo. Ahora, al configurar el pin ALTO se encenderá el MOSFET y permitirá que la corriente fluya a través de la bomba. El problema con este enfoque es que hay otra ruta actual a través del cable de señal, por lo que incluso si el MOSFET está apagado, podría seguir funcionando.

    
respondido por el geometrikal
0

La hoja de datos de la bomba no es muy clara, en algunos casos se refiere a una entrada de 12 V. Intentaría obtener mejor información. Con diagramas de cableado más precisos podemos ayudarle. Respecto a la resistencia de 470 ohmios, no parece necesario, pero no duele si se mantiene.

    
respondido por el Arcu

Lea otras preguntas en las etiquetas