Fuente DC DC Step Up con 34063



Utilizaremos el circuito integrado MC34063, este circuito integrado resuelve muy sencillamente los bloques básicos de una fuente DC DC a un bajo costo

Algunas características de este monolítico:

  • Tensión de alimentación de un rango entre 3 y 40V
  • Una corriente en reposo muy baja
  • Limitador de corriente hasta 1.5A
  • Frecuencia de opreación hasta 100kHz


En este caso trabajaremos con transistor switching externo para obtener un booster de corriente y lograr así mayor corriente de salida.

Cuando el transistor se encuentra abierto, la corriente fluye hacia la carga atravesando el inductor y el diodo y cargando el capacitor de salida.

Luego cuando cerramos el transistor, la corriente atraviesa la bobina y el transistor, mientras que el diodo impide el paso de la tensión almacenada en el capacitor hacia atrás.

  1. La bobina se carga de forma electromagnética acumulando energía que sera liberada una vez que se abra nuevamente el transistor.
  2. En el momento que el transistor se abre, la energía almacenada en la bobina mas la almacenada en el capacitor, se suman generando una tensión mayor en la salida.
  3. Este efecto de sumar estas tensiones da como resultado la elevación de tensión, y ahí es cuando nace nuestra fuente elevadora de tensión boost o step up.



El nivel de tensión de salida que obtengamos sera función de la frecuencia y ciclo de trabajo de nuestro PWM, variando este, podremos variar la tensión de salida.

Matemática:



Debemos calcular el ciclo de trabajo, para ello tenemos la siguiente formula donde ingresaremos la tensión de entrada, el rendimiento mínimo necesario de nuestra fuente y la tensión de salida
La variación de la corriente en la bobina, este es importante para saber cuando se satura el núcleo, este valor sera necesario para elegir nuestro núcleo. para ello ingresaremos la corriente máxima de salida del circuito multiplicando el cociente entre la tensión de salida y de entrada.
La inductancia sera la que nos dirá la cantidad de espiras, forma y tamaño de la bobina tendremos.
Para ello debemos calcular la tensión de entrada por la diferencia entre la tensión de entrada y salida, dividiendo el producto entre la variación de corriente de la bobina, la frecuencia de trabaja y la tensión de salida.
El capacitor que debemos utilizar para mantener el factor de rizado o ripple lo menor posible, donde tendremos que realizar el cociente entre el producto de la corriente máxima de salida y el ciclo de trabajo, sobre la frecuencia de trabajo y la variación de ripple.



El circuito:



Basaremos nuestro circuito en el datasheet, para ello construiremos el circuito de aplicación con transistor NPN externo, recordemos que queremos realizar una fuente Step Up con una 
corriente de salida mayor a la que nos provee el circuito integrado.

Montemos todos los componentes en el protoboard y encendamos nuestro circuito, podemos utilizar el potenciometro de re-alimentación para variar la tensión de salida, también podríamos dejarla fija.



Por ultimo vamos a medir el rendimiento de nuestro circuito para ello calcularemos la potencia de salida sobre la potencia de entrada y obtendremos un rendimiento.

Podemos ver que nuestra fuente tiene un rendimiento del orden del 75%, no esta nada mal! pero podríamos bajarlo aun mas cambiando la bobina!


¿Dónde fabricamos nuestros PCBs?
Nuestros PCBs los fabricamos con la empresa PCBWay, esta empresa nos permite realizar pequeñas cantidades como prototipos rápidos para nuestros desarrollos a medida.
También nos permite realizar grandes producciones para realizar proyectos comerciales.
Servicio de prototipo de PCB por tan solo $5 las 10 unidades.
Cada nuevo miembro recibirá un bono de $5, más servicio express de 24Hs o 48Hs.
Servicio de ensamblado de PCB por $88 más envió gratis en todo el mundo, más esténcil, más componentes.
Un servicio de calidad!


Control de 4 Matrices 8x8 con Arduino mediante UART

Este proyecto es uno de los mas simples de llevar a cabo ya que no requiere de muchas conexiones y con solo cargar el firmware en el Arduino podremos controlar la Matriz de 8x32, podremos escribir mensajes con desplazamiento Scroll de forma indeterminada (para que quede pasando continuamente a modo propaganda) también podremos enviarle mensajes a demanda para que la misma pueda mostrar estos.
El proyecto requiere de un Arduino (puede ser cualquiera, yo he implementado el UNO porque lo tenia aquí, pero puede ser cualquier otro) y matrices con controlador MAX7219, en mi caso he utilizado un modulo de 4 matrices interconectadas, pero es posible utilizar mas matrices o menos.
En este proyecto los mensajes podemos enviarlos por puerto serie del mismo arduino, pero podríamos emplear un modulo bluetooth serial, y de esta manera no necesitamos la PC conectada, solo un terminal bluetooth.

El programa utiliza la biblioteca de Adafruit GFX y la de MAX7219, debemos descargarlas, las dejare en mi sitio de GitHub para mayor facilidad.
Luego el resto viene por defecto en ArduinoIDE (como la de puerto SPI "Wire.h").

https://github.com/adafruit/Adafruit-GFX-Library
https://github.com/markruys/arduino-Max72xxPanel

El programa es el Siguiente: 

  1. #include <SPI.h>
  2. #include <Adafruit_GFX.h>
  3. #include <Max72xxPanel.h>
  4. //Vcc - Vcc
  5. //Gnd - Gnd
  6. //Din - Mosi (Pin 11)
  7. //Cs  - SS (Pin 10)
  8. //Clk - Sck (Pin 13)
  9. const int pinCS = 10;
  10. const int numberOfHorizontalDisplays = 8;
  11. const int numberOfVerticalDisplays = 1;
  12. Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);
  13. const int wait = 50; // Velocidad a la que realiza el scroll
  14. const int spacer = 1;
  15. const int width = 5 + spacer; // Ancho de la fuente a 5 pixeles
  16. void setup(){
  17.    Serial.begin(9600);
  18.    matrix.setIntensity(1); // Ajustar el brillo entre 0 y 15
  19.    matrix.setPosition(000); // El primer display esta en <0, 0>
  20.    matrix.setPosition(110); // El segundo display esta en <1, 0>
  21.    matrix.setPosition(220); // El tercer display esta en <2, 0>
  22.    matrix.setPosition(330); // El cuarto display esta en <3, 0>
  23.    matrix.setPosition(440); // El quinto display esta en <4, 0>
  24.    matrix.setPosition(550); // El sexto display esta en <5, 0>
  25.    matrix.setPosition(660); // El séptimo display esta en <6, 0>
  26.    matrix.setPosition(770); // El octavo display esta en <7, 0>
  27.    matrix.setPosition(880); // El noveno display esta en <8, 0>
  28.    matrix.setRotation(01);    // Posición del display
  29.    matrix.setRotation(11);    // Posición del display
  30.    matrix.setRotation(21);    // Posición del display
  31.    matrix.setRotation(31);    // Posición del display
  32.    matrix.setRotation(41);    // Posición del display
  33.    matrix.setRotation(51);    // Posición del display
  34.    matrix.setRotation(61);    // Posición del display
  35.    matrix.setRotation(71);    // Posición del display
  36.    matrix.setRotation(81);    // Posición del display
  37. }
  38. void loop(){
  39.    String cadena = "";
  40.    long int time = millis();
  41.    while(Serial.available()){
  42.       cadena += char(Serial.read());
  43.    }
  44.    for(int i = 0; i < width * cadena.length() + matrix.width() - 1 - spacer; i++){
  45.       matrix.fillScreen(LOW);
  46.       int letter = i / width;
  47.       int x = (matrix.width() - 1) - i % width;
  48.       int y = (matrix.height() - 8) / 2; // Centrar el texto
  49.       while(+ width - spacer >= 0 && letter >= 0){
  50.          if(letter < cadena.length()){
  51.              matrix.drawChar(x, y, cadena[letter], HIGH, LOW, 1);
  52.          }
  53.          letter--;
  54.          x -= width;
  55.       }
  56.       matrix.write(); // Muestra loscaracteres
  57.       delay(wait);
  58.    }

El Circuito es el Siguiente: 
Conexiones: 
  1. //Vcc - Vcc
  2. //Gnd - Gnd
  3. //Din - Mosi (Pin 11)
  4. //Cs  - SS (Pin 10)
  5. //Clk - Sck (Pin 13)





¿Dónde fabricamos nuestros PCBs?
Nuestros PCBs los fabricamos con la empresa PCBWay, esta empresa nos permite realizar pequeñas cantidades como prototipos rápidos para nuestros desarrollos a medida.
También nos permite realizar grandes producciones para realizar proyectos comerciales.
Servicio de prototipo de PCB por tan solo $5 las 10 unidades.
Cada nuevo miembro recibirá un bono de $5, más servicio express de 24Hs o 48Hs.
Servicio de ensamblado de PCB por $88 más envió gratis en todo el mundo, más esténcil, más componentes.
Un servicio de calidad!


Estación Meteorológica WiFi

Esta es una estación Meteorológica Inalámbrica mediante WiFi, basada en el SoC ESP8266 para la comunicación y los sensores: BMP085/180, DHT11 y LDR. Para una mejor precisión de medición, la temperatura se extrae del sensor Bosch en lugar del sensor DHT11, quedando así el DHT11 solo para indicar la humedad relativa. El firmware cuenta con la biblioteca WiFiManager para aumentar la facilidad de autenticación para el usuario y los datos son enviados directamente a ThingSpeak. Estos datos son enviados cada 5 minutos para mantener las buenas costumbres de frecuencia de datos en el servidor ThingSpeak, en el caso de parámetros meteorológicos no es necesaria la actualización constante de los datos, estos cambian de forma lenta.

Controles - v1.0

  • Core - ESP8266 - WEMOS D1 Mini
  • Sensor de Presión y Temperatura - BMP085 - BMP180
  • Sensor de Humedad y Temperatura - DHT11
  • Sensor de Luminosidad - LDR
  • Botón de configuración para restablecer datos de fabrica
  • Servidor - ThingSpeak
  • Control WiFi - WiFiManager

Alimentación

Diseñado para ser alimentado con fuente de alimentación de 100 a 240Vac 3W

Diseño

Diseñado con EAGLE, en solo dos capas con componentes THT para facilitar la integración al alumno, el desarrollo del PCB en el hogar y mantener el menor costo posible.

Medición OnLine en Tiempo Real ThingSpeak Channel 128756

Firmware y Repositorio de Archivos


Firmware: 

  1. #include <ESP8266WiFi.h>          //https://github.com/esp8266/Arduino
  2. #include <DNSServer.h>
  3. #include <ESP8266WebServer.h>
  4. #include <WiFiManager.h>         //https://github.com/tzapu/WiFiManager
  5. #include <SimpleDHT.h>
  6. #include <Wire.h>
  7. #include <Adafruit_BMP085.h>
  8. String apiKey = "APIKEY DE SU CUENTA THINGSPEAK";
  9. const char* server = "api.thingspeak.com";
  10. int pinDHT11 = D0;
  11. int pinFACTORY = D6;
  12. int timeOut = 0;
  13. SimpleDHT11 dht11;
  14. WiFiClient client;
  15. Adafruit_BMP085 bmp;
  16. void handleButton(){
  17.    int debounce = 1000;
  18.    if(digitalRead(pinFACTORY)==LOW){
  19.       delay(debounce);
  20.       if(digitalRead(pinFACTORY)==LOW){
  21.          WiFiManager wifiManager;      
  22.          wifiManager.resetSettings();
  23.          delay(1000);
  24.          ESP.reset();
  25.       }
  26.    }
  27. }
  28. void setup(){
  29.    WiFiManager wifiManager;
  30.    Serial.begin(115200);
  31.    pinMode(pinFACTORY, INPUT);
  32.    delay(10);
  33.    // wifiManager.resetSettings();
  34.    wifiManager.autoConnect("WS-Electgpl");
  35.    Serial.println("Estacion Conectada a Internet");
  36.    if(!bmp.begin()){
  37.       Serial.println("Error en BMP085");
  38.    }
  39. }
  40. void loop(){
  41.    byte temperatura = 0;
  42.    byte humedad = 0;
  43.    float luminosidad = analogRead(A0);
  44.    handleButton();
  45.    if(dht11.read(pinDHT11, &temperatura, &humedad, NULL)){
  46.       Serial.print("Error en DHT11");
  47.       return;
  48.    }
  49.    if(timeOut==300){
  50.       if(client.connect(server,80)){
  51.          String postStr = apiKey;
  52.          postStr +="&field1=";
  53.          postStr += String(luminosidad);
  54.          postStr +="&field2=";
  55.          postStr += String((float)bmp.readTemperature());
  56.          postStr +="&field3=";
  57.          postStr += String((int)humedad);
  58.          postStr +="&field4=";
  59.          postStr += String((float)bmp.readPressure()/100);
  60.          postStr += "\r\n\r\n";
  61.          client.print("POST /update HTTP/1.1\n");
  62.          client.print("Host: api.thingspeak.com\n");
  63.          client.print("Connection: close\n");
  64.          client.print("X-THINGSPEAKAPIKEY: "+apiKey+"\n");
  65.          client.print("Content-Type: application/x-www-form-urlencoded\n");
  66.          client.print("Content-Length: ");
  67.          client.print(postStr.length());
  68.          client.print("\n\n");
  69.          client.print(postStr);
  70.          Serial.println("% send to Thingspeak");
  71.       }
  72.       client.stop();
  73.       Serial.print("luminosidad: ");
  74.       Serial.print(luminosidad);
  75.       Serial.print(" | temperatura BMP: ");
  76.       Serial.print((float)bmp.readTemperature());
  77.       Serial.print(" | temperatura DHT: ");
  78.       Serial.print(temperatura);
  79.       Serial.print(" | humedad: ");
  80.       Serial.print(humedad);
  81.       Serial.print(" | presion: ");
  82.       Serial.println((float)bmp.readPressure()/100);
  83.       timeOut=0;
  84.    }
  85.    delay(1000);
  86.    timeOut++;
  87.    Serial.print("timeOut");
  88.    Serial.println(timeOut);
  89. }

Circuito: 




¿Dónde fabricamos nuestros PCBs?
Nuestros PCBs los fabricamos con la empresa PCBWay, esta empresa nos permite realizar pequeñas cantidades como prototipos rápidos para nuestros desarrollos a medida.
También nos permite realizar grandes producciones para realizar proyectos comerciales.
Servicio de prototipo de PCB por tan solo $5 las 10 unidades.
Cada nuevo miembro recibirá un bono de $5, más servicio express de 24Hs o 48Hs.
Servicio de ensamblado de PCB por $88 más envió gratis en todo el mundo, más esténcil, más componentes.
Un servicio de calidad!