domingo, 28 de julio de 2019

Ventilador de PC controlado por PWM y sin ruidos

Este proyecto utiliza una de las salidas digitales del Arduino para generar una señal PWM y controlar la velocidad de rotación de pequeños ventiladores de 12 voltios. El circuito es muy eficiente con cualquier tipo de ventilador, de estos que se utilizan en los ordenadores. Y lo más importante, ¡no produce ese ruido molesto que proviene de la mezcla de la señal PWM con el giro del motor! El zumbido es cortado por el condensador de 100uF que se conecta a la base del transistor. Los dos botones se usan para subir o bajar la señal PWM de 0 a 255, y la pantalla LCD sirve para mostrar su valor. Todos los demás componentes son fáciles de encontrar, y todo el conjunto debe ser alimentado desde una fuente de 12 voltios con un mínimo de 0,3 amperios.


El diseño:


El diseño en archivo pdf.
El diseño en archivo ps.
El diseño en archivo svg.
El proyecto en archivo zip para el entorno de desarrollo KiCad.

La programación para el Arduino se escribe así:

#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 6, 5, 4, 3);
int percent = 0;
int pwm = 0;
int ch1State = 0;
int ch2State = 0;
const int pwmPin = 9;
const int ch1Pin = 7;
const int ch2Pin = 8;

void setup() {
  lcd.begin(16,2); 
  lcd.print("PWM:");
  lcd.setCursor(0,1);
  lcd.print("elektronled");
  pinMode(pwmPin, OUTPUT);
  pinMode(ch1Pin, INPUT);
  pinMode(ch2Pin, INPUT); 
}

void loop() {
  ch1State = digitalRead(ch1Pin);
  ch2State = digitalRead(ch2Pin);
  if (ch1State == LOW) { percent --; }
  if (ch2State == LOW) { percent ++; }
  if (percent > 100) { percent = 100; }
  if (percent <= 0) { percent = 0; }   
  pwm=percent*2.55;
  lcd.setCursor(5,0);
  lcd.print(percent);
  lcd.print("% ");
  lcd.setCursor(10,0);
  lcd.print("(");
  lcd.print(pwm);
  lcd.print(") ");
  analogWrite(pwmPin,pwm);
  delay(100);
}

La programación en archivo txt.
La programación en archivo ino.
La programación con algunas modificaciones (archivo txt).
La programación con algunas modificaciones (archivo ino).

Para ventiladores más potentes, por encima de 200 mA, debe aumentar la potencia de la fuente y poner un disipador de calor en el transistor.

Se pueden usar ventiladores de 3 pines, pero se debe ignorar el tercer pin (PWM). Mira en estas fotos:




Puede probar el circuito sin el condensador de 100uF o incluso reducir su valor, porque la única función de este componente es "matar" el zumbido.

Y para los ventiladores de 4 pines, todo el circuito de control formado por Q1, D1, R2 y C1 se debe olvidar y la salida D9 del Arduino queda directamente al cable de control PWM del ventilador (generalmente azul). Ignore el cable PWM que devuelve la señal de velocidad (generalmente verde). Es decir, este tipo de ventilador debe quedar conectado directamente a la fuente de alimentación y solo el cable azul ingresará al Arduino.

La primera referencia:

https://www.baldengineer.com/pwm-3-pin-pc-fan-arduino.html

Las explicaciones que hace el autor en este primer sitio son muy interesantes y me parecen muy completas, pero incluso al probar varias configuraciones tanto en los capacitores como en los transistores, el ruido no ha terminado. Por lo tanto, le recomiendo que use el circuito con el transistor BD139.

Y aquí está la principal referencia del circuito:

https://www.electroschematics.com/9540/arduino-fan-speed-controlled-temperature/

Las mismas referencias en archivos pdf.

¿Es esta tu primera visita? ¡Utilice los marcadores del blog! Facilitan la navegación y son útiles para elegir temas.

No te olvides de leer el último post, hay una descripción de nuestro objetivo y también un guion de los marcadores.

¿Has encontrado un error? ¿Algún link quedó roto? Toma mi correo electrónico en el perfil del blog y me envía un mensaje para que pueda solucionar.

lunes, 22 de julio de 2019

Termómetro 4 puntos con Arduino, LCD y NTC

Este termómetro de medición multipunto utiliza termistores NTC de 10 kohm, tiene buena precisión y puede utilizarse como base para dispositivos más sofisticados. Te recomiendo que veas el post anterior, hay todas las referencias y otras explicaciones importantes para los principiantes.


Este es el proyecto:


El proyecto en el archivo pdf.
El proyecto en el archivo ps.
Y aquí el archivo zip para el software KiCad.

La programación para el Arduino en archivo pdf.
La programación para el Arduino en archivo txt.

El IDE Arduino debe tener la biblioteca para termistores, vea en la entrada anterior.

¡Todas las referencias están en el post anterior!

¿Es esta tu primera visita? ¡Utilice los marcadores del blog! Facilitan la navegación y son útiles para elegir temas.

No te olvides de leer el último post, hay una descripción de nuestro objetivo y también un guion de los marcadores.

¿Has encontrado un error? ¿Algún link quedó roto? Toma mi correo electrónico en el perfil del blog y me envía un mensaje para que pueda solucionar.

domingo, 21 de julio de 2019

Termómetro Arduino con pantalla LCD y NTC

Este medidor de temperatura hace uso de pocos componentes y una programación muy sencilla. El principal que se usa para la medición de la temperatura es un NTC de 10k y todos los cálculos se realizan mediante una biblioteca específica para los termistores. Durante las pruebas, el dispositivo mostró una buena precisión; sin embargo, si tú necesitas una medición muy precisa se recomienda usar otro tipo de sensor, como por exemplo el LM35.


A continuación se muestran dos fotos con todo montado en una placa de pruebas:



El diseño del proyecto:


Aquí el proyecto en el formato pdf.
Y aquí en el formato ps.

¡No olvide! Tanto la resistencia como el NTC deben ser necesariamente de 10 kohm.

He hecho pruebas con otros modelos de NTC, pero todos de 10 kohm, y todo salió bien.

El trimpot se utiliza para ajustar el contraste de la pantalla LCD. ¡Nada más!

Y antes de comenzar la programación, debe asegurarse de que su IDE Arduino tenga la librería thermistor.h, que realizará todos los cálculos necesarios a través de la ecuación de Steinhart-Hart (no tengo idea de quiénes son estos tipos, probablemente Alemanes).

Si no la tienes, aquí está:
thermistor.zip

La mejor manera de instalar una librería es descomprimirla directamente en la carpeta libraries de su entorno Arduino.

Para más información sobre esta librería, y incluso versiones más nuevas, visite estos links:
https://github.com/panStamp/thermistor
https://www.arduinolibraries.info/libraries/thermistor

La programación es muy sencilla, perfecta para los principiantes que tienen ganas de aprender:


La misma programación en un archivo pdf.
Y si eres demasiado perezoso para escribir, aquí está el archivo txt con el código listo.

A continuación otra programación con algunas modificaciones:
La segunda versión en archivo pdf.
Y en el archivo txt.

En el siguiente video como quedó después de esta otra programación:


¡Y no te olvides estudiar las referencias!

Si no sabes lo que es un NTC:
https://es.wikipedia.org/wiki/Termistor_NTC

La gran ventaja de usar un NTC es su bajo precio, lea esta conversación:
https://forum.arduino.cc/index.php?topic=63557.0

Otros guiones acerca de los termistores con Arduino:
https://www.luisllamas.es/medir-temperatura-con-arduino-y-termistor-mf52/
https://learn.adafruit.com/thermistor/using-a-thermistor
https://microcontrolandos.blogspot.com/2013/01/termometro-com-ntc-e-arduino.html

Te enseña cómo instalar una librería:
https://programarfacil.com/blog/arduino-blog/instalar-una-libreria-de-arduino/
https://www.robocore.net/tutoriais/adicionando-bibliotecas-na-ide-arduino.html

Aquí todas las referencias en una carpeta con archivos pdf.

¿Es esta tu primera visita? ¡Utilice los marcadores del blog! Facilitan la navegación y son útiles para elegir temas.

No te olvides de leer el último post, hay una descripción de nuestro objetivo y también un guion de los marcadores.

¿Has encontrado un error? ¿Algún link quedó roto? Toma mi correo electrónico en el perfil del blog y me envía un mensaje para que pueda solucionar.