sábado, 13 de diciembre de 2014

Proyecto para controlar diferentes cargas. Tanto AC como DC.

Proyecto Para controlar varias cargas


Este Proyecto consiste en 3 placas para controlar diferentes cargas.
Las placas son las siguientes:

  1. Mosfet: esta placa esta compuesta  de un mosfet IRF540N, una diodo de 1uF, diodo, tres resistencia; 1K, 490Ohm y 13K. 
  2.  Rele: Este esquema es muy sencillo. Lo  forman; un relé, una resistencia 1K para proteger al arduino un transistor BC550 y un diodo.
  3. Optotriac: Este es el más rolloso y donde mas problemas he encontrado, pero inventigando y cambiando componentes me ha llegado a funcionar. Está compuesto por un Moc3021, 4N25, Puente de Diodo, Triac BT 138 y dos resistencias de 33 K de 1W que son para limitar la corriente que le va a llegar al puente de diodos y dos resistencia de 1K. Una de las resistencias de 1K junto con el condensador de22K-400v es para los picos de la corriente y la otra resisitencias y otra es la que protege la Moc 3021.


  • Una cosa muy importante que quiero explicar sobre el Moc3021 es que tiene que ser sin el detector de paso por cero. Si el Moc es  con el paso por Zero NO FUNCIONA, por ejemplo con el MOC3041,Moc3042,etc,. Porque el paso por zero ya lo hacemos en el circuito.

Aquí os dejo los esquemas de cada una de las placas.
Saludos.

Mosfet:

   

Relé:


Triac:


domingo, 7 de diciembre de 2014

Arduino con Atmega.






Hay muchos modelos de placas compatibles de Arduino que ya han sido realizados por la sociedad internacional. Aquí os dejo el esquemático de la pagina oficial de arduino, que es muy completo.


El que vamos ha hacer es un poo más simple y muy sencillo.






Ya que su esquemático tiene muy pocos componentes; dos condensadores y un cristal(16MHz), un boton para el reset con su resistencia, y un condensador que va entre Gnd y Vcc y un Atmega328P.






El Atmega328P, se puede comprar de cualquier página de internet, al comprarlo aseguraros de que lleva el Bootloader. O sino le teneis que instalar vosotros el bootloader.

¿ Qué es el bootloader ?


El bootloader que es de gran utlidad para cargar aquel programa que quedo en nuestro microcontrolador cuando lo desconectamos por última vez.
Aqui os dejo una imagen para entenderlo mejor; la memoria de la derecha es sin Bootloader y la imagen de la izquierda es con Bootloader.



Aquí os dejo un TUTORIAL que explica cómo instalar el Bootloader a tu arduino si no lo lleva. Es un  poco lioso, por eso es mucho mejor comprar un arduino con Bootloader.

Y finalmente el programa  del blink, lo podemos encontrar en lo ejemplos de arduino.


Saludos.


Termómetro digital con Arduino.

Termómetro digital.



tl084

En este proyecto lo que he hecho es un termómetro digital con arduino. El control de la Ntc lo he hecho con el siguiente esquema:



Y aquí os dejo un vídeo de como son los cálculos para controlar el voltaje de la salida del TL084 con las resistencias.





Y el código con el que he hecho el programa es el siguiente; en este tambien hay que tener en cuneta los valores de la NTC a 0ºC y a 25ºC:

#include <math.h>

//Pines para las entradas analógicas
int analogPin1 = A0;


//Variable PARA la temperatura de disparo
double tempMin = 0.0;

//DATOS para las ecuaciones

float Vin = 5.0;     // [V]       Tensión alimentación del divisor
float Rfija = 12000;  // [ohm]     Resistencia fija del divisor
float R25 = 4700;    // [ohm]     Valor de NTC a 25ºC
float Beta = 3900.0; // [K]      Parámetro Beta de NTC
float T0 = 293.15;   // [K]       Temperatura de referencia en Kelvin

float Vout = 0.0;    // [V]       Variable para almacenar Vout
float Rntc = 0.0;    // [ohm]     Variable para NTC en ohmnios

float TempK = 0.0;   // [K]       Temperatura salida en Kelvin
float TempC = 0.0;   // [ºC]      Temperatura salida en Celsius

void setup() {

  //Comenzamos la comunicación puerto serie
  Serial.begin(9600);


  //Y los pines de entrada
  pinMode(analogPin1, INPUT);


}

void loop()
{
  
  
  Vout=(Vin/1024)*(analogRead(analogPin1));
  
  Serial.println(analogPin1);
 Serial.println(Vout);
  
  
  //Ahora la resistencia de la NTC
   Rntc=(Vout*Rfija)/(Vin-Vout);
   
   Serial.println(Rntc);
  //Y por último la temperatura en Kelvin
  TempK = Beta/(log(R25/Rntc)+(Beta/T0));

  //Y ahora la pasamos a celsius
  TempC = TempK-273.15;

 if (TempC<=0){
   TempC=0.0; 
 }

  //Y lo mostramos por puerto serie
  Serial.println();
  Serial.print("LA TEMPERATURA DE LA NTC ES DE ");
  Serial.print(TempC);
  Serial.println(" GRADOS CELSIUS");
  Serial.println();

  //Un pequeño delay PARA no volver loco al puerto serie
  delay(1000);
}