CircuitLab, la forma más sencilla de diseñar tus circuitos en la web



Se trata de un sencillo editor que podemos ejecutar cómodamente desde el navegador, sin ni siquiera tener que crear una cuenta para poder usarlo y con los componentes más habituales a nuestro alcance. La herramienta funciona perfectamente, permitiendo diseñar circuitos rápidamente y realizar distintas simulaciones antes de llevar los resultados a la práctica física.

CircuitLab es gratis, haciendo de él un compañero ideal para el sector educativo o para aficionados a la electrónica. Creando una cuenta podremos además guardar nuestros circuitos, imprimir los resultados en PDF y hacerlos públicos para compartirlos con otros usuarios.

Fuente: Genbeta



Control del funcionamiento de un ventilador con Arduino

Propuesta

Diseñar un circuito para controlar la temperatura de la maqueta de una habitación con la utilización de un pequeño ventilador de corriente continua y un sensor de temperatura.

El funcionamiento del circuito será el siguiente, siempre que la temperatura sea superior a 28ºC el ventilador estará funcionamiento.

El sensor que vamos a utilizar es el LM35, cuyas características principales son las siguientes: Sensor de temperatura LM35


Montaje realizado


Diagrama de flujo



Código

 float tempC;
 int pinLM35=0;
#define EA 11
#define I1 10
#define I2 9

void setup()
{
  pinMode(EA,OUTPUT);
  pinMode(I1,OUTPUT);
  pinMode(I2,OUTPUT);
 
}
void loop()
{
  tempC= analogRead(pinLM35);
  tempC=(tempC*5.0*100.0)/1024.0;
 
  if(tempC>30)
  {
    digitalWrite(EA,HIGH);
    digitalWrite(I1,LOW);
    digitalWrite(I2,HIGH);

  }
  else
  {
  digitalWrite(EA,LOW);
}
}





Control del funcionamiento de un puente levadizo con Arduino

Propuesta

En el taller de tecnología disponemos de la maqueta de un puente levadizo, dicha maqueta incorpora dos finales de carrera, uno para detectar que el tablero del puente alcanza su posición de máxima apertura y otro para detectar que el puente ha bajado completamente. El sistema incorpora un motor con reductora y un sistema de poleas.

El sistema de control de regulación y control debe funcionar de la siguiente manera:

Al accionar un pulsador el puente debe de subir o bajar dependiendo de la posición en la que se encuentre, hasta alcanzar la posición contraria.

El sistema incorpora dos diodos, uno verde para indicar que el tablero está subiendo y otro rojo para indicar que el tablero está bajando.

Solución adoptada

Nota: Hemos tenido que utilizar dos interruptores para simular el funcionamiento de los finales de carrera.


Diagrama de flujo


Código

int Pulsador = 6;
int finalA = 11;
int finalB = 7;
int DiodoA = 1;
int DiodoB = 0;
int estadoPulsador = 0;
int estadoFinalA = 0;
int estadoFinalB = 0;
int E1=10;
int I1=9;
int I2=8;

void subir(){
  digitalWrite(E1, HIGH);
  digitalWrite(I1, HIGH);
  digitalWrite(I2, LOW);
}

void bajar(){
  digitalWrite(E1, HIGH);
  digitalWrite(I1,LOW);
  digitalWrite(I2, HIGH);
}

void parar(){
  digitalWrite(I1, LOCódigoW);
  digitalWrite(I2, LOW);
  digitalWrite(E1, LOW);
}

void setup()
{
  pinMode(E1, OUTPUT);
  pinMode(I1, OUTPUT);
  pinMode(I2, OUTPUT);
  pinMode(Pulsador, INPUT);
  pinMode(finalA, INPUT);
  pinMode(finalB, INPUT);
  pinMode(DiodoA, OUTPUT);
  pinMode(DiodoB, OUTPUT);
}

void loop()
{
estadoPulsador=digitalRead(Pulsador);
estadoFinalA=digitalRead(finalA);
estadoFinalB=digitalRead(finalB);

if((estadoPulsador==HIGH)&&(estadoFinalA==HIGH))
{
  while(estadoFinalB==LOW)
  {
    bajar();
    digitalWrite(DiodoA, HIGH);
    estadoFinalB = digitalRead(finalB);
   }
   parar();
 }

 if((estadoPulsador==HIGH) && (estadoFinalB==HIGH))
  {
   while(estadoFinalA==LOW)
   {
     subir();
     digitalWrite(DiodoB, HIGH);
     estadoFinalA = digitalRead(finalA);
   }
    parar();
  }
}

Cómo pegar con pistola termofusible

Pegamento termofusible. Es una forma rápida de unión, siempre y cuando ésta no tenga que soportar esfuerzos de torsión. Se aplica con una pistola. Se solidifica rápidamente y es eficaz con la mayoría de los materiales.

Cómo pegar con pistola

1.- Lo primero que debemos hacer es insertar la barra de pegamento en la parte trasera de la pistola, empujándola suavemente hacia adelante.
2.- Enchufamos la herramienta y dejamos que el pegamento se caliente. Para que el pegamento ejerza correctamente su función y evitar que la herramienta se rompa, es muy importante que éste se derrita bien.

3.- A la hora de presionar el gatillo, lo haremos con suavidad, sin forzar. Si vemos que está duro, esperaremos unos minutos más hasta que el pegamento se caliente adecuadamente.

4.- El siguiente paso consiste en aplicar el pegamento en una de las superficies a unir.
5.- Inmediatamente después, fijamos las piezas a unir, presionando fuerte para que se adhieran a la perfección.
6.- Debemos actuar con rapidez, puesto que el adhesivo se endurece en seguida y si eso ocurre, ya no pega.
 
Colocar un trozo de material inservible bajo la boquilla para evitar manchar la mesa.

Sistema de riego automático con Arduino

Se quiere diseñar un sistema de riego automático de un invernadero. El sistema está formado por tres sensores:
➢ S: detecta la Sequedad del suelo. Si está seco da un 1.
➢ T: detecta la Temperatura. Si es demasiado alta da un 1.
➢ A: detecta si hay Agua en el depósito desde el que se riega. Si hay agua da un 1.
El sistema tiene las siguientes salidas:
➢ VR: Válvula de Riego. Cuando se pone a 1 se abre el sistema de riego. Si se pone a 0 se deja de regar.
➢ AV: Mecanismo que abre ventanas para que entre aire fresco. Cuando se pone a 1 se abren las ventanas, cuando se pone a 0 se
cierran las ventanas.
➢ GD: Grifo Depósito. Cuando se pone a 1 este grifo empieza a llenar el depósito de agua.
➢ LA: Luz de Alarma. Cuando se pone a 1 se enciende una luz roja de alarma que indica peligro
Las condiciones de funcionamiento son:
➢ Se riega si hay sequedad, no es alta la temperatura y hay agua en el depósito.
➢ Se abren ventanas si es alta la temperatura.
➢ Se empieza a llenar el depósito si éste se queda sin agua.
➢ Se enciende la luz de alarma si hay sequedad y no hay agua en el depósito para regar.
Obtener la tabla de verdad y las funciones lógicas de las cuatro salidas del sistema ( VR, AV, GD y LA).

  • Dibuja el circuito correspondiente.
  • Realiza el algoritmo.
  • Realiza el programa para Arduino.

Posible solución al problema 

 

Estructuras estéreas

Las estructuras estéreas, también conocidas como mallas espaciales. Se caracterizan porque transmiten las cargas aplicadas en dos direcciones, por lo que sus elementos están sometidos a esfuerzos de tracción y compresión. Se la denomina también malla espacial.

Muchos de sus elementos forman triángulos.


Construcción de una estructura estérea

Estructura estérea
Material y herramientas

Papel  (folios ya usados), pegamento termofusible, pistola de pegamento, tijeras y cutter.

1.- Construimos las barritas enrollando papel y cortamos piezas de igual tamaño, en nuestro caso 15 cm.
2.- Colocamos las barras formando cuadrados y fijamos los vértices con pegamento termofusible.
3.- Construimos pirámides que parten de los vértices.
4.- Unimos los vértices de las pirámides.
Seguimos colocando otra cuadrícula y repetimos el proceso.

El resultado es una estructura de gran rigidez y resistencia.

Estructura estérea

En la estructura del ejemplo se ha usado además, una base de cartón, (un material más resistente que el papel), y las barras circulares miden todas lo mismo, 15 cm.


Prueba de resistencia


Control de la temperatura de un invernadero con Arduino

Un invernadero está controlado por tres sensores de temperatura (T1,T2 y T3). Los valores máximos son tales que T1< 25º, T2 < 30º y  T3 < 35º, tener en cuenta siempre se cumple que T1

➢ Por debajo de T1= 25º, no se activa ningún ventilador.
➢ Para T1 > 25º  y T2 < 30º, se activa el ventilador pequeño (V1)
➢ Para T2 > 30º  y T3 < 35º, se activa el ventilador grande (V2)
➢ Para  T3 > 35º, se activan los dos ventiladores.

  • Dibujar el circuito correspondiente.
  • Realizar el algoritmo.
  • Realizar el programa para Arduino.



Diagrama de flujo



Código

/*
 MODO DE CONEXIÓN DEL SENSOR

 Conectamos el pin 1 que corresponde a la alimentación del sensor con los 5V del Arduino
 Conectamos el pin 2 que corresponde al pin de datos del sensor con cualquier pin analógico del Arduino
 Conectamos el pin 3 que corresponde al pin de masa (GND) del sensor con el pin GND del Arduino

*/

# define sensor1  5  //Pin analógico A5 del Arduino donde conectaremos el pin de datos del sensor TMP36
# define sensor2 4
# define sensor3  3
# define pinInterruptor 2
# define motor1 13
#define motor2 12
int estadoInterruptor;
float T1, T2,T3;
 
void setup()
{
  Serial.begin(9600);  //Iniciamos comunicación serie con el Arduino para ver los resultados del sensor
                        //a través de la consola serie del IDE de Arduino
}

void loop()
{
                                    
estadoInterruptor=digitalRead(pinInterruptor);
  if(estadoInterruptor == 1)
  {
  T1=leerSensorDeTemperatura(sensor1);
  T2=leerSensorDeTemperatura(sensor2);
  T3=leerSensorDeTemperatura(sensor3);                                                          
   if (T1<25 br="">   {
     T1=leerSensorDeTemperatura(sensor1);
     T2=leerSensorDeTemperatura(sensor2);
     T3=leerSensorDeTemperatura(sensor3);
   }
   else if (T1>25 && T2<30 br="">   {
     digitalWrite(motor1,HIGH);
     digitalWrite(motor2,LOW);
   }
    else if (T2>30 && T3<35 br="">    {
     digitalWrite(motor1,LOW);
     digitalWrite(motor2,HIGH);
    }
    else if (T3>35)
    {
     digitalWrite(motor1,HIGH);
     digitalWrite(motor2,HIGH);
    }
    else
    {
     digitalWrite(motor1,LOW);
     digitalWrite(motor2,LOW);
    }
   
 
  //Mostramos mensaje con valores actuales de temperatura
  Serial.print("Medidas actuales\n");
  Serial.print("Sensor 1: ");
  Serial.print(T1);
  Serial.print("\n\n");
  Serial.print("Sensor 2: ");
  Serial.print(T2);
  Serial.print("\n\n");
  Serial.print("Sensor 3: ");
  Serial.print(T3);
  Serial.print("\n\n");
  Serial.print("\n\n");
  delay(1000);  //Usamos un retardo de 2 segundos entre lectura y lectura 
}
else
  
{
 
  Serial.print("Interruptor sin activar ");
  Serial.print("\n\n");
}
}
float leerSensorDeTemperatura(int sensor)
{
 float voltaje, gradosC;  //Declaramos estas variables tipo float para guardar los valores de lectura
                                    //del sensor, así como las conversiones a realizar para convertir a grados
  voltaje = analogRead(sensor) * 0.004882814;                                  //centígrados y a grados Fahrenheit
                                                                         
  gradosC = (voltaje - 0.5) * 100.0;  //Gracias a esta fórmula que viene en el datasheet del sensor podemos convertir
                                       //el valor del voltaje a grados centigrados
   return(gradosC);
}