Hola a todos, actualmente estoy haciendo un proyecto con un Arduino UNO R3, en el cual necesito establecer la velocidad de un ventilador en base a la lectura de un sensor de temperatura, lo del sensor esta listo, el tema es que el ventilador que debo usar es de 12V y 120mA, por lo que no puedo alimentarlo directamente desde el pin de alimentación de Arduino, debo usar una fuente de alimentación externa, quiero aclarar que llevo meses buscando soluciones en este foro y otros y con lo que logre entender (Ya que no soy muy bueno en electrónica porque mi carrera es Informática) he logrado construir un circuito con un transistor NPN 2N2222, una resistencia de 1KOhm y un diodo 1N4007, estos componentes los compre basándome en varias publicaciones que he visto, conecto la pata Base del transistor a la resistencia y la resistencia a un pin PWM de Arduino (Según lo que he leído el Arduino puede quemar el transistor sino se coloca esta resistencia) coloco la pata Emisor del transistor en conjunto con el negativo de la fuente de alimentación del ventilador (12V 1A) y la tierra del Arduino, la pata Colector del transistor la coloco con el negativo del ventilador, entre el negativo del ventilador y el positivo de la fuente coloco el diodo (Según esto es para frenar tensiones que se generan al detener el ventilador) y finalmente el positivo de la fuente obviamente va directo al positivo del ventilador, programo fácilmente el Arduino para hacer escrituras analógicas en el transistor que van subiendo y bajando con el fin de observar las variaciones de velocidad, el problema es que cuando la escritura llega al máximo (255) el ventilador no gira a su máxima velocidad, determine esto ya que coloque otro ventilador idéntico al lado de este conectado a la misma fuente directamente y giraba mucho mas rápido, ¿Tengo algo mal en los componentes? Vuelvo aclarar que todo esto lo tome recopilando información de foros y me funciono solo que no parece llegar el voltaje suficiente al ventilador al estar al máximo la salida analógica.
he logrado construir un circuito con un transistor NPN 2N2222, una resistencia de 1KOhm y un diodo 1N4007, estos componentes los compre basándome en varias publicaciones que he visto, conecto la pata Base del transistor a la resistencia y la resistencia a un pin PWM de Arduino
1k como Resistencia de Base es como poco yo usaria 4k7 o 10k
(Según lo que he leído el Arduino puede quemar el transistor sino se coloca esta resistencia)
Si no le pones nada a la base Arduino puede inyectar hasta 40mA y claro es mucha corriente aunque dudo que llegue a ese valor. Tal vez se quemen el pin de arudino y el 2n2222.
el problema es que cuando la escritura llega al máximo (255) el ventilador no gira a su máxima velocidad, determine esto ya que coloque otro ventilador idéntico al lado de este conectado a la misma fuente directamente y giraba mucho mas rápido, ¿Tengo algo mal en los componentes?
Por alguna razón el 2N2222 no puede suministrar los 100mA que esperabas.
Tal vez sea la R de 1K que haga que la tensión a la salida del PIN caiga y no llegue a 5V.
Usa un MOSFET 2N7000 porque para esa corriente no deberías tener problemas, soporta 800mA.
NOTA: Me sorprende que el 2N2222 no funcione porque puede entregar mas de 100mA. (0.8A)
Antes de cambiar de transitor (x el mosfet) prueba con una R de 4k7 o 10k.
Verifica que tengas 5V en el Arduino y mira con un tester/multimetro a cuanto llega la tensión cuando pones 255 en la salida PWM.
Aquí te pongo el esquema de como hacer correctamente las conexiones, como dice surbyte es muy raro que no puedas controlar una carga pequeña con ese transistor ya que como ya te lo menciono soporta hasta 0.8A ahora en cuanto a lo de la resistencia en base varias veces eh usado una de 1k y nunca eh tenido problemas así que al menos yo descarto que sea la resistencia de 1k. Que tal si nos pones el código para ver que tal lo estas haciendo?
Saludos.
Pd. perdón por no poner la imagen como corresponde es solo que yo no uso host para colgar imágenes, uso gDrive asi que por eso te dejo el link.
esquema
Usa un MOSFET 2N7000 porque para esa corriente no deberías tener problemas, soporta 800mA.
No puedo permitirme otro transistor, el 2N2222 fue el mas económico, solo conseguí un MOSFET acá en mi país y estaba muy costoso (Mi proyecto es de la Universidad por lo que no poseo financiamiento abundante).
Que tal si nos pones el código para ver que tal lo estas haciendo?
El ultimo código que use fue este con escritura digital, de manera de poner el ventilador en modo ON/OFF, y me dio el mismo resultado que había dado antes al hacer escritura analógica de 255.
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH);
delay(15000);
digitalWrite(3, LOW);
delay(15000);
}
Gracias por sus prontas respuestas
Por favor, un 2n7000 no es costoso pero bueno comprendo tu situación.
Fijate bien que tipo de 2n2222 estas usando. No sea cosa que sea P2N y tenga las patas invertidas.
Por favor, un 2n7000 no es costoso pero bueno comprendo tu situación.
Fijate bien que tipo de 2n2222 estas usando. No sea cosa que sea P2N y tenga las patas invertidas.
No es caro pero ya gaste el presupuesto en el 2N2222, fue lo que trate de decir, y en el transistor esta grabado "2N2222 - 180", igual en la factura de la tienda donde lo compre, y todas las hojas de datos que he buscado dicen que es NPN, y también fue lo que me dijeron al pedirlo.
¿Cree usted que pueda ser que el transistor este averiado?
¿Hay alguna formula matemática que me permita calcular cuantos amperios y voltios pasan al aplicar los 5V y 0.4A del Arduino a la resistencia de 1kOhm?
No dispongo de un tester.
Claro que la hay pero no es como tu dices.
Me hiciste pensar y considerar que puedo estar equivocado.
Miro la hoja de datos donde la remarqué y dice que Ib debe ser 15mA, guuauu no me lo hubiera imaginado.
Entonces
Rb = (5-0.7)/15mA = 4.3V/15mA= 0.286 Kohms
Entonces una R de 330 ohms debería ser suficiente.
Estaba equivocado y la prueba es que tu ventilador no gira al máximo o sea, el 2n2222 no entrega la corriente que esperamos.
Prueba con 330 o 470 ohms.
:o :o :o
Entonces cambiare las resistencias por unas de 330Ohm
Muchas gracias, luego aviso si me dio resultado.
surbyte:
Claro que la hay pero no es como tu dices.Me hiciste pensar y considerar que puedo estar equivocado.
Miro la hoja de datos donde la remarqué y dice que Ib debe ser 15mA, guuauu no me lo hubiera imaginado.
Entonces
Rb = (5-0.7)/15mA = 4.3V/15mA= 0.286 Kohms
Entonces una R de 330 ohms debería ser suficiente.
Estaba equivocado y la prueba es que tu ventilador no gira al máximo o sea, el 2n2222 no entrega la corriente que esperamos.
Prueba con 330 o 470 ohms.
respecto a esto que comentas surbyte acerca de la resistencia dudo mucho que sea esto puesto que como dije en un post anterior yo ya he trabajado con ventiladores de 12v y que consumen hasta 400 mA y usando un 2n2222a y la config. que puse en el esquema que anexe nunca tuve ni he tenido problemas, más bien no sera que tu transistor pueda tener algún fallo? y sobre el precio de los transistores al menos acá en México un 2n2222 no pasa de 5 pesos mexicanos apenas 0.30 dolares y un mosfet de potencia que necesitaba para un motor que consumia 35 A a 12V no pasaba de 40 pesos osea 2.20 dolares no son tan caros en realidad...
y usando un 2n2222a y la config. que puse en el esquema que anexe nunca tuve ni he tenido problemas, más bien no sera que tu transistor pueda tener algún fallo?
Las características de un transistor, por más que pueda sorprender al profano, no son homogéneas, incluso dentro del mismo lote de fabricación. Así, es más que posible que un 2N2222 se sature (entregue toda la intensidad posible) con una determinada intensidad de base (Ib) mientras que otro necesite más (i.e.: necesite una resistencia de base menor).
En cualquier caso, meter más intensidad por la base -siempre que esté dentro de los límites- no perjudica al transistor y, además, previene el que se cambie el transistor y el de reemplazo no funcione.
Saludos
Porque no usas un Mosfet canal N? como el siguiente ejemplo
http://bildr.org/2012/03/rfp30n06le-arduino/
A diferencia de un transistor NPN se activa por voltaje y controlas la velocidad del motor con el duty cycle de una canal PWM.
Recuerda los diodos de protección! Son importantes en cargas inductivas!
Aquí te dejo un tutorial muy relacionado con tu proyecto, espero que te sirva.
Deberías fijarte bien en las caracteristicas del transistor que estas usando. Saludos
No usa mosfet porque no tiene presupuesto.
vffgaston:
Las características de un transistor, por más que pueda sorprender al profano, no son homogéneas, incluso dentro del mismo lote de fabricación. Así, es más que posible que un 2N2222 se sature (entregue toda la intensidad posible) con una determinada intensidad de base (Ib) mientras que otro necesite más (i.e.: necesite una resistencia de base menor).En cualquier caso, meter más intensidad por la base -siempre que esté dentro de los límites- no perjudica al transistor y, además, previene el que se cambie el transistor y el de reemplazo no funcione.
Saludos
Interesante el dato vffgaston, la verdad yo desconocía eso, siempre se aprende algo nuevo todos los días no?
Saludos
Gracias a todos por sus consejos, ya pedí las resistencias de 330Ohm (Estoy bien mal con esto porque aparte del presupuesto también debo mandar a pedir esos componentes a otra ciudad porque en la mía no venden).
No creo que sea defecto del transistor ya que tengo tres de ellos y con los tres hice la prueba (A menos que la mala suerte sea tanta que los tres están defectuosos).
Había visto un articulo donde usaban con un transistor 2N2222 una resistencia de 330Ohm, pero controlaban un ventilador de 5V alimentado desde el mismo Arduino, luego vi otro donde lo alimentaban externamente (Como es mi caso) con 12V y la resistencia era de 1KOhm y por eso decidí comprar de esas, pero quizás ese articulo no estaba correcto o no se fijaron si el ventilador giro en su totalidad, solo vieron que vario la velocidad.
Aunque ahora me surge la duda, según sus experiencias ¿Un transistor podría no entregar la energía adecuada si esta quemado o al quemarse ya deja de funcionar en lo absoluto?
Todo esto se basa en tus afirmaciones. Tu dices que el ventilador consume 100mA a 12V. Si eso es cierto el 2N2222 tendría que funcionar bien, pero si no lo es... entonces por eso se queda corto para entregar toda la corriente que demanda el Ventilador.
Si no tienes Multímetro y no mides la corriente, no podemos decir mucho mas.
De hecho son 12V a 120mA o 0.12A, cuando llegue la resistencia saldré de dudas.