Publicado el 2 comentarios

Sensor de aparcamiento por ultrasonidos

Daniel Esteban G., de Escuelas San José Jesuitas (www.escuelassj.com) participa en el concurso “Arduino in Love 2019” con este sensor de aparcamiento por ultrasonidos.

El proyecto desarrolla el sensor de aparcamiento de un coche, a pequea escala. Normalmente el sensor del coche tiene 1 metro de margen, pero en este caso a los 30 cm aproximadamente empieza a pitar, entre más cerca el objeto, con más frecuencia pita.

/* Programa que simula el funcionamiento de un sensor de aparcamiento,
pitando con una frecuencia mayor conforme nos aproximamos al objeto, DANI */

int speakerPin = 8;
long distancia;
long tiempo;
int j;
void setup(){
  Serial.begin(9600);
  pinMode(6, OUTPUT); /*activación del pin 9 como salida: para el pulso ultrasónico*/
  pinMode(7, INPUT); /*activación del pin 8 como entrada: tiempo del rebote del ultrasonido*/
}

void loop(){
  digitalWrite(6,LOW); /* Por cuestión de estabilización del sensor*/
  delayMicroseconds(5);
  digitalWrite(6, HIGH); /* envío del pulso ultrasónico*/
  delayMicroseconds(10);
  tiempo=pulseIn(7, HIGH); /* Función para medir la longitud del pulso entrante. Mide el tiempo que transcurrido entre el envío
  del pulso ultrasónico y cuando el sensor recibe el rebote, es decir: desde que el pin 12 empieza a recibir el rebote, HIGH, hasta que
  deja de hacerlo, LOW, la longitud del pulso entrante*/
  distancia= int(0.017*tiempo); /*fórmula para calcular la distancia obteniendo un valor entero*/
  /*Monitorización en centímetros por el monitor serial*/
  Serial.println("Distancia ");
  Serial.println(distancia);
  Serial.println(" cm");
  //delay(1000);
  if(distancia<=40)
  {
  if(distancia >=0 && distancia<=3)
    j = 1;
  if(distancia >3 && distancia<=8)
    j = 50;
  if(distancia >8 && distancia<=20)
    j = 300;
  if(distancia >20 && distancia<=30)
    j = 600;
  if(distancia >30 && distancia<=40)
    j = 900;
  if(distancia >40)
    j = 1200; 
  tone(speakerPin,349);
    delay(j);
    noTone(speakerPin);
    delay(100);
  }
  else
  {
   noTone(speakerPin);
  } 

}

Material utilizado:

Publicado el 1 comentario

Simpático robot con dos servos

Sergio F. participa en el concurso “Arduino in Love 2019” con este simpático robot con dos servos.

Sergio Fernández, de Escuelas San José Jesuitas (www.escuelassj.com) nos envía este proyecto de un simpático robot con dos servomotores, uno de ellos mueve la superficie del robot horizontalmente y el otro lo mueve verticalmente.

nor
#include <Servo.h>

Servo myservo;
Servo myservo1;

int pos1 = 0;
int pos2 = 0;
int potPin1 = 5;
int potPin2 = 4;

void setup()
{

  myservo.attach(9);
  myservo1.attach(10);
  
}

void loop() {

   pos1 = analogRead(potPin1)/5,6;
   pos2 = analogRead(potPin2)/5,6;
   myservo.write(pos1);
    delay(20);
   myservo1.write(pos2);
    delay(20);
   
}

Material necesario:

Publicado el Deja un comentario

Incubadora con tratamiento de ictericia

El IES Laurona (Llíria, Valencia) participa en el concurso “Arduino in Love 2019” con esta incubadora de neonatos con tratamiento de ictericia por fototerapia controlada en intensidad y duración.

Dentro de la incubadora se efectúa el control de:

  • Peso del paciente
  • Tiempo de gestación y de nacimiento
  • Temperatura
  • Humedad
  • Luminosidad exterior (visible, UV e IR)
  • Nivel de ruido
  • Humedaddel colchón
  • Temperatura del paciente
  • Pulsaciones del paciente
  • Satuación de oxígeno en sangre (SpO2)
  • Calidad del aire (concentración de partículas y nivel de gases nocivos)

Hay indicaciones en display de los datos vitales, así como alarma visual y sonora de cualquier dato fuera de rango seguro.

Publicado el 1 comentario

iPro Cooler – bebida fresca en momentos

Cristian S. participa en el concurso “Arduino in Love 2019” con este fantástico enfriador de bebidas con Peltier.

iProcooler trata de un sistema de mantenimiento térmico mediante una célula peltier capaz de bajar la temperatura a 2 grados centígrados. El sistema es totalmente automático, gracias a la ayuda de un Arduino uno que controla la conexión y desconexión de la célula dependiendo de las condiciones. Tiene 3 fases:

1- ENFRIAMIENTO El sensor “CNY70” detecta que se ha colocado una taza, vaso, bote, etc… en ese momento el sensor “lm35” nos detecta la temperatura que tenemos en la célula y de ello dependerá la iluminación del anillo led que ayudara al usuario visualmente a saber cuando la célula ha llegado a su temperatura de funcionamiento encendiéndose esta de color azul.


2-BEBEMOS Cuando levantemos la taza, vaso, bote, etc.. para beber el “CNY70” no detectará y empezará un temporizador de 30 segundos el anillo en este momento cambia de color a amarillo, si lo dejamos de nuevo el anillo volverá a pasar a verde.


3- RETIRAMOS Cuando terminamos y retiramos la taza, vaso, bote, etc… el “CNY70” deja de detectar y empezará un temporizador de 30 segundos, cuando pase ese tiempo el anillo cambiará a color rojo y la célula se desconectará.

A continuación, el código para Arduino:

/ CONCURSO ------>  ARDUINO IN LOVE                 
//Nombre del proyecto--> iProCooler
//Proyecto I+D+i--> Christian Soriano 
//Codigo--> Iván Sanchis
//Rev.1
//CONCURSO------>  ARDUINO IN LOVE
#include "FastLED.h"

const char pausa = 100;
const char seg_off = 30;
const char tiempoLED = 50;
const boolean bote = HIGH;
const boolean encender = HIGH;
const boolean apagar = LOW;
const float tempBoteON = 30;
float serieGrados[50];

const char NUM_LEDS = 24;
#define LED_TYPE WS2812B
#define COLOR_ORDER GRB
const char BRIGHTNESS = 128;
CRGB leds[NUM_LEDS];

const char detectorBOTE = 8;
const char pinLM35 = A1;
const char celula = 0;
const char ventilador = 3;
const char DATA_PIN = 6;

float tempC;
float mediaGrados = 0;
int i,j,k;
void setup()
{
  Serial.begin(9600);
  analogReference(INTERNAL);
  pinMode(detectorBOTE, INPUT);
  pinMode(pinLM35, INPUT);
  FastLED.addLeds<LED_TYPE, DATA_PIN, COLOR_ORDER>(leds, NUM_LEDS);
  FastLED.setBrightness( BRIGHTNESS );
  for (i = 0; i < 50; i++)
  {
    mediaGrados = 0;
    for (j = 0; j < 50; j++)
    {
      tempC = analogRead(pinLM35);
      tempC = (1.1 * tempC * 100.0) / 1023.0;
      mediaGrados = mediaGrados + tempC;
    }
    mediaGrados = mediaGrados / 50.0;
    serieGrados[i] = mediaGrados;
  }
}

int haybote = 0;
float temperatura = 0.0;
unsigned long inicio;
boolean temporizador = LOW;
char pos = 0;
void loop()
{
  haybote = digitalRead(detectorBOTE );  //lectura digital de pin
  mediaGrados = 0;
  for (i = 0; i < 50; i++)
  {
    tempC = analogRead(pinLM35);
    tempC = (1.1 * tempC * 100.0) / 1023.0;
    mediaGrados = mediaGrados + tempC;
  }
  mediaGrados = mediaGrados / 50.0;
  serieGrados[pos] = mediaGrados;
  if (pos < 50)
  {
    pos++;
  }
  else
  {
    pos = 0;
  }
  temperatura = 0.0;
  for (k = 0; k < 50; k++)
  {
    temperatura = temperatura + serieGrados[k];
  }
  temperatura = temperatura / 50.0;
  if (haybote == bote)
  {
    temporizador = LOW;
    if (temperatura < tempBoteON)
    {
      digitalWrite(celula, encender);
      digitalWrite(ventilador, encender);
      for (j = 0; j < NUM_LEDS; j++)
      {
        leds[j] = CRGB::Green;
        FastLED.show();
        delay(tiempoLED);
      }
    }
    else
    {
      digitalWrite(celula, encender);
      digitalWrite(ventilador, encender);
      for (j = 0; j < NUM_LEDS; j++)
      {
        leds[j] = CRGB::Blue;
        FastLED.show();
        delay(tiempoLED);
      }
    }
  }
  else
  {
    if (temporizador == LOW)
    {
      inicio = millis();
      temporizador = HIGH;
    }
    if ( millis() - inicio < seg_off * 1000)
    {
      digitalWrite(celula, encender);
      digitalWrite(ventilador, encender);
      for (j = 0; j < NUM_LEDS; j++)
      {
        leds[j] = CRGB::Yellow;
        FastLED.show();
        delay(tiempoLED);
      }
    }
    else
    {
      digitalWrite(celula, apagar);
      digitalWrite(ventilador, apagar);
      for (j = 0; j < NUM_LEDS; j++)
      {
        leds[j] = CRGB::Red;
        FastLED.show();
        delay(tiempoLED);
      }
    }
  }
  delay(pausa);
}

¿Te lo quieres montar en casa? Estos son los componentes que necesitas:

Bebiendo
Desconexión
Publicado el Deja un comentario

Termostato con Arduino

Los calefactores infrarrojos, con el de la imagen, son una manera de obtener calor rápidamente. El problema que tienen es que no suelen llevar termostato. Es decir, que cuando la habitación está muy caliente, siguen calentando, no son capaces de parar y volver a arrancar cuando se enfríe un poco.

En este proyecto vamos a fabricar un termostato con Arduino.

El material que vamos a necesitar será:

En nuestro ejemplo, el DHT11 lo conectaremos al pin 2, la pantalla OLED a los pines RX y TX, y los pulsadores a los pines 3, 4 y 5, con una resistencia de pull-up externa (aunque se podría activar el pull-up interno). Los relés se han conectado en las salidas 6 y 7.

El funcionamiento del termostato ha sido programado para proporcionar las siguientes funciones:

  • Encendido/Apagado mediante un pulsador.
  • Ajuste de la temperatura de consigna mediante los pulsadores restantes.
  • Funcionamiento a plena potencia (2 resistencias a la vez) si la habitación está fría.
  • Funcionamiento a media potencia (1 sola resistencia) si la habitación casi está a la temperatura ajustada.
  • Apagado de ambas resistencias si se ha superado la temperatura ajustada.
  • Apagado automático tras un tiempo largo.

El código que hemos preparado para esta función lo puedes descargar desde el siguiente enlace. Para hacerlo funcionar, necesitarás las librerías:

Para facilitar el montaje, hemos soldado todos los componentes a una placa perforada de 50x70mm. El resultado ha sido este:

¿Te animas a intentarlo? Si necesitas ayuda contáctanos: contacto@electronperdido.com

Publicado el Deja un comentario

Botes fluorescentes

En esta actividad, ideal para compartir con los más peques de la casa, os vamos a presentar cómo hacer un bote de líquido fluorescente. Así, en una habitación oscura y con luz ultravioleta el resultado es espectacular.

Material necesario:

Instrucciones: Lámpara ultravioleta

En primer lugar vamos a crear nuestra propia lámpara ultravioleta. Nosotros proponemos un diseño muy sencillo, pero es muy fácil darle otros tamaños o formas. En nuestro caso hemos cogido como elemento base una placa perforada de 20x80mm  y hemos soldado 15 LEDs ultravioleta de 3mm. El cátodo de cada LED (pata corta) se suelda al negativo de la alimentación. El ánodo de cada LED (pata larga) lo soldaremos a una resistencia de 100Ohm (una por LED). La conexión restante de cada resistencia irá conectada al positivo de la alimentación. Por último, una forma de tener una alimentación cómoda de encender y apagar es usar un portapilas con interruptor. En nuestro caso hemos utilizado un portapilas de 3 pilas AA; si se usa un número de pilas superior o una fuente de alimentación de distinto valor será necesario recalcular la resistencia de 100 Ohm y adaptar su valor.

Así, ya tendremos lista nuestra lámpara ultravioleta.

Compra desde aquí el kit para montar tu propia lámpara ultravioleta (enlace).

Instrucciones: Bote fluorescente

El objetivo aquí es conseguir un bote transparente (nosotros hemos usado un tarro de cristal de una conocida marca de yogures) y rellenarlo de un líquido transparente que “se ilumine” al estar bajo luz ultravioleta.

La manera más sencilla y barata de conseguirlo es comprar un bote de tónica, sin más. ¡La tónica es fluorescente! En nuestro caso hemos usado la más barata del supermercado.

¡El resultado ha sido genial! En el vídeo se ve cómo al alejarla de la luz es un líquido transparente sin más, pero al ponerlo en el haz de luz ultravioleta… ¡Magia!

Alernativa: Bote fluorescente

Una alternativa para conseguir un líquido fluorescente es disolver en agua algunas pastillas de vitamina B (se compran en farmacia, por unos 2-3€). Las vitaminas del grupo B son fluorescentes, por lo que no es necesario ser muy exquisitos al elegir un complejo vitamínico u otro. Se trituran bien y se disuelven.

El resultado final es parecido al de la tónica.

Juego alternativo: moco fluorescente

Una divertida alternativa consiste en crear un gel tipo “moco” a partir de nuestro líquido fluorescente. El proceso es bastante sencillo, basta con mezclar semillas de zaragatona (de venta en herbolarios) con el líquido y calentar (sin que llegue a hervir). Cuando las semillas se hayan hundido hasta el fondo del recipiente nuestra mezcla ya está lista; colar para quitar las semillas y dejar enfriar (en media hora ya se ve el resultado, pero unas horas después se vuelve más denso todavía). El resultado será un gel muy espeso. En nuestro caso hemos usado 8 cucharaditas de zaragatona para 330ml de líquido.

El resultado, un “moco” transparente bajo luz normal, de color bajo la luz ultravioleta y, sobretodo… ¡muy divertido!