radar arduino

Radar con Arduino usando sensor de ultrasonidos HC-SR04

Te mostramos el que es posiblemente uno de los proyectos más interesantes si estás iniciandote en el mundo de la electrónica y Arduino. A continuación te mostraremos paso a paso como montar y programar este radar con Arduino, el cual emplea uno de los módulos más famosos que es el sensor de ultrasonidos o también llamado HC-SR04.

Materiales empleados en el proyecto

A continuación veremos te mostramos los materiales que se van a emplear para realizar  este radar con Arduino. Además, te mostramos una breve descripción de los mismos. Para todos aquellos que estén interesados en realizar el proyecto, te dejamos una lista con los links de compra para poder adquirir dichos materiales.

Placa de Arduino UNO: Es el cerebro de nuestro proyecto, encargada de controlar todos los procesos del mismo mediante el código que encontrarás más adelante.

Servomotores:  motores de 5v con una reductora, lo que permite un gran manejo de su posición y una gran fuerza para su reducido tamaño.

Tabla de madera: La emplearemos como base donde pegar y colocar todos los componentes de nuestro proyecto

Producto Arduino UNO ES
Producto Módulo de ultrasonidos HC-SR04 ES
Producto Servomotores ES
Producto CABLES MACHO HEMBRA ES

¿Necesitas ayuda con algún proyecto?

Realizamos tu proyecto 1
Realizamos tu proyecto 2
Realizamos tu proyecto 3
Realizamos tu proyecto 4
Realizamos tu proyecto 5
Realizamos tu proyecto 6
Realizamos tu proyecto 7
  • Prototipado y MVPs
  • Arduino y ESP32
  • Diseño de PCBs
  • Diseño de piezas 3D
  • Conexión Bluetooth
  • Estudio de Viabilidad
  • Optimización de costes
  • Asesoría Técnica
  • Internet de las Cosas
  • Gestión de Patentes

Explicación paso a paso de como construir el radar con Arduino

En primer lugar uniremos con cola térmica el sensor de ultrasonidos con el servomotor. Dicha unión debe hacerse con los pines del modulo HC-SR04 apuntando hacia arriba, para que no internieran con el servomotor.

radar arduino union servomotor sensor

A continuación rcolocaremos la placa de Arduino en la tabla de madera. En nuestro caso, nos hemos ayudado de una plataforma hecha con impresión 3D para no tener que pegar la propia placa en la madera.

Además, pegaremos tambiém el servomotor. Este debe estar bien fijado a la plataforma de madera para que no se suelte cuando gire.

radar arduino montaje

Esquema de conexiones del proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

esquema conexiones radar arduino

Video con explicación paso a paso del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte.

Códigos de Arduino para la programación un radar con sensor de ultrasonidos

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si tienes dudas sobre cómo usar o instalar el entorno de programación empleado para Arduino, te dejamos un link de comó descargar el IDE de Arduino

//CODIGO ARDUINO
//Canal de YT -> RobotUNO
//Proyecto RADAR
#include <Servo.h>
const int trigPin = 10;
const int echoPin = 11;
long duration;
int distance;
Servo myServo;
void setup() {
  pinMode(trigPin, OUTPUT); 
  pinMode(echoPin, INPUT);
  Serial.begin(9600);
  myServo.attach(12);
}
void loop() {
  for(int i=15;i<=165;i++){  
  myServo.write(i);
  delay(30);
  distance = calculateDistance();
  Serial.print(i); 
  Serial.print(","); 
  Serial.print(distance);
  Serial.print(".");
  }
  for(int i=165;i>15;i--){  
  myServo.write(i);
  delay(30);
  distance = calculateDistance();
  Serial.print(i);
  Serial.print(",");
  Serial.print(distance);
  Serial.print(".");
  }
}
int calculateDistance(){
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH); 
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance= duration*0.034/2;
  return distance;
}

Códigos de programación para la aplicación de processing

A continuación también te dejamos los códigos para descargar la aplicación de processing.

Si no la tienes instalada, puedes descargarla pinchando AQUÍ.

IMPORTANTE! En la línea 19 deberemos comprobar en que puerto está conectado y modificar "COM7" por el que corresponda en tu caso.

import processing.serial.*; // imports library for serial communication
import java.awt.event.KeyEvent; // imports library for reading the data from the serial port
import java.io.IOException;
Serial myPort; // defines Object Serial
// defubes variables
String angle="";
String distance="";
String data="";
String noObject;
float pixsDistance;
int iAngle, iDistance;
int index1=0;
int index2=0;
PFont orcFont;
void setup() {
  
 size (1200, 700); // ***CHANGE THIS TO YOUR SCREEN RESOLUTION***
 smooth();
 myPort = new Serial(this,"COM7", 9600); // starts the serial communication
 myPort.bufferUntil('.'); // reads the data from the serial port up to the character '.'. So actually it reads this: angle,distance.
}
void draw() {
  
  fill(98,245,31);
  // simulating motion blur and slow fade of the moving line
  noStroke();
  fill(0,4); 
  rect(0, 0, width, height-height*0.065); 
  
  fill(98,245,31); // green color
  // calls the functions for drawing the radar
  drawRadar(); 
  drawLine();
  drawObject();
  drawText();
}
void serialEvent (Serial myPort) { // starts reading data from the Serial Port
  // reads the data from the Serial Port up to the character '.' and puts it into the String variable "data".
  data = myPort.readStringUntil('.');
  data = data.substring(0,data.length()-1);
  
  index1 = data.indexOf(","); // find the character ',' and puts it into the variable "index1"
  angle= data.substring(0, index1); // read the data from position "0" to position of the variable index1 or thats the value of the angle the Arduino Board sent into the Serial Port
  distance= data.substring(index1+1, data.length()); // read the data from position "index1" to the end of the data pr thats the value of the distance
  
  // converts the String variables into Integer
  iAngle = int(angle);
  iDistance = int(distance);
}
void drawRadar() {
  pushMatrix();
  translate(width/2,height-height*0.074); // moves the starting coordinats to new location
  noFill();
  strokeWeight(2);
  stroke(98,245,31);
  // draws the arc lines
  arc(0,0,(width-width*0.0625),(width-width*0.0625),PI,TWO_PI);
  arc(0,0,(width-width*0.27),(width-width*0.27),PI,TWO_PI);
  arc(0,0,(width-width*0.479),(width-width*0.479),PI,TWO_PI);
  arc(0,0,(width-width*0.687),(width-width*0.687),PI,TWO_PI);
  // draws the angle lines
  line(-width/2,0,width/2,0);
  line(0,0,(-width/2)*cos(radians(30)),(-width/2)*sin(radians(30)));
  line(0,0,(-width/2)*cos(radians(60)),(-width/2)*sin(radians(60)));
  line(0,0,(-width/2)*cos(radians(90)),(-width/2)*sin(radians(90)));
  line(0,0,(-width/2)*cos(radians(120)),(-width/2)*sin(radians(120)));
  line(0,0,(-width/2)*cos(radians(150)),(-width/2)*sin(radians(150)));
  line((-width/2)*cos(radians(30)),0,width/2,0);
  popMatrix();
}
void drawObject() {
  pushMatrix();
  translate(width/2,height-height*0.074); // moves the starting coordinats to new location
  strokeWeight(9);
  stroke(255,10,10); // red color
  pixsDistance = iDistance*((height-height*0.1666)*0.025); // covers the distance from the sensor from cm to pixels
  // limiting the range to 40 cms
  if(iDistance<40){
    // draws the object according to the angle and the distance
  line(pixsDistance*cos(radians(iAngle)),-pixsDistance*sin(radians(iAngle)),(width-width*0.505)*cos(radians(iAngle)),-(width-width*0.505)*sin(radians(iAngle)));
  }
  popMatrix();
}
void drawLine() {
  pushMatrix();
  strokeWeight(9);
  stroke(30,250,60);
  translate(width/2,height-height*0.074); // moves the starting coordinats to new location
  line(0,0,(height-height*0.12)*cos(radians(iAngle)),-(height-height*0.12)*sin(radians(iAngle))); // draws the line according to the angle
  popMatrix();
}
void drawText() { // draws the texts on the screen
  
  pushMatrix();
  if(iDistance>40) {
  noObject = "Out of Range";
  }
  else {
  noObject = "In Range";
  }
  fill(0,0,0);
  noStroke();
  rect(0, height-height*0.0648, width, height);
  fill(98,245,31);
  textSize(25);
  
  text("10cm",width-width*0.3854,height-height*0.0833);
  text("20cm",width-width*0.281,height-height*0.0833);
  text("30cm",width-width*0.177,height-height*0.0833);
  text("40cm",width-width*0.0729,height-height*0.0833);
  textSize(40);
  text("FABRI creator", width-width*0.875, height-height*0.0277);
  text("Ángulo: " + iAngle +" °", width-width*0.48, height-height*0.0277);
  text("Dist:", width-width*0.26, height-height*0.0277);
  if(iDistance<40) {
  text("        " + iDistance +" cm", width-width*0.225, height-height*0.0277);
  }
  textSize(25);
  fill(98,245,60);
  translate((width-width*0.4994)+width/2*cos(radians(30)),(height-height*0.0907)-width/2*sin(radians(30)));
  rotate(-radians(-60));
  text("30°",0,0);
  resetMatrix();
  translate((width-width*0.503)+width/2*cos(radians(60)),(height-height*0.0888)-width/2*sin(radians(60)));
  rotate(-radians(-30));
  text("60°",0,0);
  resetMatrix();
  translate((width-width*0.507)+width/2*cos(radians(90)),(height-height*0.0833)-width/2*sin(radians(90)));
  rotate(radians(0));
  text("90°",0,0);
  resetMatrix();
  translate(width-width*0.513+width/2*cos(radians(120)),(height-height*0.07129)-width/2*sin(radians(120)));
  rotate(radians(-30));
  text("120°",0,0);
  resetMatrix();
  translate((width-width*0.5104)+width/2*cos(radians(150)),(height-height*0.0574)-width/2*sin(radians(150)));
  rotate(radians(-60));
  text("150°",0,0);
  popMatrix(); 
}
tuturial proyectos con ne555 robotuno

Proyectos de electrónica con circuito integrado NE555

¿Has oído alguna vez hablar del circuito integrado NE555? Pues en esta pagina te voy a enseñar 2 proyectos que puedes hacer utilizando este modulo. 

El circuito integrado NE555 es uno de los circuitos integrados más famosos que hay. Podríamos decir que es una joya en el mundo de la electrónica.

Debido a su versatilidad y facilidad de uso, este componente se ha convertido en un elemento fundamental en una amplia gama de objetos electrónicos, desde temporizadores hasta osciladores y generadores de pulsos.

Una de las características más importantes del NE555 es la capacidad para generar señales precisas de tiempo. Este puede producir intervalos de tiempo que van desde microsegundos hasta horas, por lo que lo hace ideal para muchísimos de nuestros proyectos. Algunos ejemplos son sistemas de control, circuitos de encendido y apagado automáticos, etc.

Otra ventaja que tiene es la facilidad de uso. ya que con unos pocos componentes externos, puedes utilizar este circuito integrado para casi cualquiera de tus proyectos. Esto lo convierte en una muy buena opción para aquellos que les apasiona la electrónica y también para proyectos más avanzados.

Debido a todo esto, el chip NE555 es una herramienta esencial en el kit de cualquier aficionado o profesional a la electrónica. Su versatilidad, facilidad de uso y disponibilidad lo convierten en una opción inigualable para una amplia gama de proyectos.

Materiales

Los componentes que se van a utilizar para este proyecto son muy sencillos. Pero aun así, si te falta alguno de ellos, aquí tienes un enlace a Amazon para que puedas comprarlos sin ningún problema. Son los que yo utilizo.

Kit iniciación ArduinoKit iniciación ArduinoESUS
Placa Arduino UnoPlaca Arduino UnoESUS
Circuito integrado NE555Circuito integrado NE555ESUS
ProtoboardProtoboardESUS
Kit de resistenciasKit de resistenciasESUS

Proyecto 1: Led intermitente regulable con NE555

Uno de los proyectos más comunes para entender el funcionamiento de este circuito integrado es cambiar la frecuencia de parpadeo de un led con un potenciómetro. Haciendo que este parpadee mas rápido o mas lento en función de la resistencia variable.

Los componentes que se necesitan son muy sencillos, estoy seguro de que todos tenéis por casa estos componentes para hacerlo.

Aquí os dejo un video tutorial en el que yo mismo lo monto y lo hago funcionar.

[VIDEO YOUTUBE INCRUSTADO CON EL MINUTO EN EL QUE APARECE EL PROYECTO]

Y como no podía faltar, un esquema eléctrico con todos los detalles del circuito. Para que no tengas ningún problema a la hora de montarlo. Aun así, si no te funciona por cualquier motivo, pónmelo con los comentarios para que te pueda ayudar.

circuito integrado timer ne555

 

Proyecto 2: Metrónomo electrónico con NE555

Otro proyecto muy interesante para hacer con este circuito integrado es un metrónomo electrónico, el cual nos marque el ritmo a la hora de tocar un instrumento. 

Además, también le he añadido 2 leds para que no haga solo el ruido, sino también nos marque el ruido de forma visual.
Los materiales son igual de simples que los del proyecto anterior. Con cualquier kit de Arduino vienen todos los componentes necesarios.

Aquí os dejo un video tutorial en el que yo mismo lo monto y lo hago funcionar.

[VIDEO YOUTUBE INCRUSTADO CON EL MINUTO EN EL QUE APARECE EL PROYECTO]

Y como no podía faltar, un esquema eléctrico con todos los detalles del circuito. Para que no tengas ningún problema a la hora de montarlo. Aun así, si no te funciona por cualquier motivo, pónmelo con los comentarios para que te pueda ayudar.

circuito integrado timer ne555

Haciendo todo lo comentado anteriormente y siguiendo los pasos del video, debería de funcionaros tal como a mi este detector de metales. Si tenéis cualquier duda o sugerencia me lo podéis decir en los comentarios de esta pagina y os responderé lo antes posible (los leo todos).

proyecto arduino ruelta led

Proyecto "Ruleta led aleatoria con Arduino"

NUEVO PROYECTO CON ARDUINO! Se trata de una ruleta led hecha totalmente desde 0 con materiales muy simples y fáciles de encontrar. 

En mi caso yo lo he soldado todo sobre una placa de prototipado, pero si no os queréis complicar tanto la vida podéis colocar los componentes electrónicos directamente sobre una placa de prototipado y de ahí sacar las conexiones a Arduino.Me parece un proyecto genial para llevarlo a la escuela o para aprender como programar en Arduino, ya que las funcionalidades que se le pueden dar son infinitas.

Materiales empleados en el proyecto

En este caso, los materiales que se necesitan para construir este proyecto son muy muy sencillos de conseguir, es mas, me atrevería a decir que todos los tenéis por casa, pero por si no es tu caso, aquí te dejo una lista detallada con todos los componentes exactos 

Kit iniciación ArduinoKit iniciación ArduinoESUS
Placa Arduino UnoPlaca Arduino UnoESUS
Filamento 3DFilamento 3DESUS
Kit de LEDsKit de LEDsESUS
Kit de resistenciasKit de resistenciasESUS
Cables Macho HembraCables Macho HembraESUS

Además, en este caso también he utilizado una impreso 3D. Si no tienes una y estas pensando en comprarte una, te dejo aquí un enlace de la que yo estoy utilizando, funciona muy bien y estoy muy contento con los resultados.

Video tutorial del proyecto ruleta led con Arduino

Para que te sea más fácil el montaje y seguir todos los pasos, aquí tienes un video explicando paso a paso como montar el robot, así como consejos y errores que yo he cometido. 

Ya que estamos, si te ha gustado dale un like y suscríbete 😉

Esquema de conexiones ruleta led

En todos los proyectos que subo a esta pagina web y al canal de YouTube, uno de los fallos mas comunes es hacer mal las conexiones. Por esta razón, aquí tienes un esquema de conexiones totalmente detallado para que no tengas ningún problema a la hora de hacer las conexiones y el proyecto te funcione bien a la primera.

esquema ruleta leds proyecto arduino

Archivos 3D para impresión ruleta

Por si te gusta el diseño de las piezas 3D y quieres hacer el proyecto exactamente igual que yo, aquí te dejo los archivos .stl que necesitas para imprimir las piezas de este proyecto con Arduino. 

LINK A THINGIVERSE

LINK A MEGA PARA DESCARGAR LOS ARCHIVOS 3D

Código arduino ruleta aleatoria

Otra parte muy importante de este proyecto es el código de programación. Aquí te lo dejo para que simplemente tengas que copiar y pegar.

Si tienes dudas sobre cómo usar o instalar el entorno de programación empleado para Arduino, te dejamos un link de comó descargar el IDE de Arduino

Espero que os haya gustado este proyecto, yo la vedad es que he disfrutado muchísimo haciéndolo y me ha encantado poder incorporar piezas diseñadas desde 0 en él. Comenta que te ha parecido, me gustaría saber tu opinión.

//Canal de YouTube -> RobotUNO
//Proyecto -> Ruleta led

const int led1 = 2; //Declararion de los leds y los pines de Arduino
const int led2 = 3;
const int led3 = 4;
const int led4 = 7;
const int led5 = 6;
const int led6 = 5;

const int button = 8;

int leds[] = {led1, led2, led3, led4, led5, led6};

void setup() {
  pinMode(led1, OUTPUT); //Se declaran los pines de los leds como salidas
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);  
  pinMode(led6, OUTPUT);
  pinMode(button, INPUT); //Se declara el pin del boton como entrada

  digitalWrite(led1,LOW); //Se apagan todos los leds
  digitalWrite(led2,LOW);
  digitalWrite(led3,LOW);
  digitalWrite(led4,LOW);
  digitalWrite(led5,LOW);
  digitalWrite(led6,LOW);

  Serial.begin(9600);
  Serial.println("Empieza el juego! Pulsa el boton para jugar!");
}


void loop(){
  if (digitalRead(button)==HIGH){ //Se detecta cuando se ha pultado el boton
    int ledWin = random(5); //Se genera un numero aleatorio entre 0 y 5
    girarRuleta(ledWin);
    digitalWrite(leds[ledWin],HIGH); //Se enciende el led ganador
    delay(5000);
    digitalWrite(leds[ledWin],LOW); //Se apaga el led ganador
  }

  delay(10);  
}


void girarRuleta(int led){
  Serial.println("Y el ganador es...");

  for(int j=0;j<10;j++){ //Bucle encargado de simular que la ruleta esta girando cuando se pulsa el boton
    for(int i=0;i<=6;i++){
      digitalWrite(led1,LOW);
      digitalWrite(led2,LOW);
      digitalWrite(led3,LOW);
      digitalWrite(led4,LOW);
      digitalWrite(led5,LOW);
      digitalWrite(led6,LOW);
      digitalWrite(leds[i],HIGH);

      delay(120-j*10); //Velocidad de giro de la ruleta
    }
  }
  
  Serial.print("El jugador numero ");
  Serial.println(led+1);
}
MINIATURA ROBOT ARDUINO CON IMPRESORA 3D

Proyecto "ROBOT hecho con ARDUINO e IMPRESORA 3D"

Este es uno de los proyectos mas interesantes que puedes encontrar en esta pagina web. Es la primera vez que he utilizado una impresora 3D, así que no me juzguéis por los resultados finales.

La programación de este robot de momento es muy sencilla, ya que mi idea es en el futuro subir otro proyecto mejorando este robot y añadiéndole muchas características.Si tienes cualquier duda sobre el montaje, las conexiones o la programación pónmela por los comentarios que siempre respondo en menos de un día a todos.

Materiales para fabricar un robot con Arduino

Como he dicho antes, los materiales que se necesitan para construir este Robot son muy sencillos, por lo que si tienes un kit de Arduino básico seguramente tengas todos, pero bueno, aun así aquí debajo te dejo un enlace a Amazon y otro a Aliexpress para cada uno de los componentes que se necesitan para fabricar este proyecto.

Kit iniciación ArduinoKit iniciación ArduinoESUS
Placa Arduino UnoPlaca Arduino UnoESUS
Servomotores ArduinoServomotores ArduinoESUS
Pila de 9 voltiosPila de 9 voltiosESUS
Filamento 3DFilamento 3DESUS
Cables Macho HembraCables Macho HembraESUS

Además, en este caso también he utilizado una impreso 3D. Si no tienes una y estas pensando en comprarte una, te dejo aquí un enlace de la que yo estoy utilizando, funciona muy bien y estoy muy contento con los resultados.

Video proyecto robot con Arduino

Para que te sea más fácil el montaje y seguir todos los pasos, aquí tienes un video explicando paso a paso como montar el robot, así como consejos y errores que yo he cometido.

Ya que estamos, si te ha gustado dale un like y suscríbete 😉

Esquema de conexiones del robot con Arduino

Uno de los fallos mas comunes a la hora de hacer proyectos con Arduino es conectar mal los cables, por esta razón te recomiendo que te asegures bien de que todas las conexiones están tal y como se muestran en este esquema. Lo he intentando hacer de la manera que mejor se entienda, pero si tienes alguna duda con alguna de las conexiones no dudes en preguntármelo por los comentarios.

Por otra parte, es muy importante tener clara la posición de cada uno de los servomotores, y no liarnos al hacer las conexiones. Derecha, izquierda, arriba, y abajo son referencias tomadas cuando el robot esta de pie mirándonos de frente.

esquema de conexiones robotunoV1

Archivos 3D para la impresión del robot

Otra parte muy importante de este proyecto es imprimir en 3D la estructura del robot. Te dejo por aquí los archivos .stl para que imprimas el robot tu mismo, pero si te gustaría adaptarlo o hacerle algunas mejoras, pídeme por los comentarios los archivos .dwg para que te sea mas rápido hacerlo.

LINK THINGIVERSE

Código de Arduino funcionamiento robot

A continuación te mostramos los códigos en Arduino necesarios para hacer funcionar al robot impreso en 3D.

Si tienes dudas sobre cómo usar o instalar el entorno de programación empleado para Arduino, te dejamos un link de comó descargar el IDE de Arduino

En este caso se necesitan 2 códigos de programación. El primero es simplemente para poner los servomotores a 90 grados, que es la posición inicial desde la que empezaran a moverse.

//Canal YouTube -> RobotUNO
//Pagina web -> robotuno.com

//Proyecto: "ROBOTUNO, EL ROBOT QUE CAMINA, BAILA Y SALUDA"
//Codigo auxiliar para poner los servomotores a 90º

#include <Servo.h>

Servo servo;

void setup() {
  servo.attach(3);
}

void loop() {
  servo.write(90);
  delay(10);
}

De momento, el código que he preparado es un código muy simple para comprobar que todo funciona bien. Poco a poco iré mejorándolo y subiéndolo. Por supuesto siéntete libre de comentar cualquier mejora que le hagas al código.

//Canal YouTube -> RobotUNO
//Pagina web -> robotuno.com
//Proyecto: "ROBOTUNO, EL ROBOT QUE CAMINA, BAILA Y SALUDA"

#include <Servo.h>

Servo der_arriba; //D3 -> Servo1
Servo der_abajo; //D5 -> Servo2
Servo izq_arriba; //D6 -> Servo3
Servo izq_abajo; //D9 -> Servo4

void setup() {
  der_arriba.attach(3);
  der_abajo.attach(5);
  izq_arriba.attach(6);
  izq_abajo.attach(9);

  posicion_inicial();
  delay(1000);
}

void loop() {
  saludar();
  delay(2000);

  caminar();
  delay(2000);

  bailar();
  delay(2000);
}


void posicion_inicial(){
  der_arriba.write(90); delay(100);
  der_abajo.write(90); delay(100);
  izq_arriba.write(90); delay(100);
  izq_abajo.write(90); delay(100);
}

void saludar(){
  int vel=120;

  for (int i=0;i<2;i++){
    der_abajo.write(50); delay(vel);
    izq_abajo.write(130); delay(vel);
    der_abajo.write(90); delay(vel);
    izq_abajo.write(90); delay(vel);
    
    izq_abajo.write(130); delay(vel);
    der_abajo.write(50); delay(vel);
    izq_abajo.write(90); delay(vel);
    der_abajo.write(90); delay(vel);
  }
}

void caminar(){
  int vel=150;

  for (int i=0;i<30;i++){
    der_abajo.write(45); delay(vel);
    der_arriba.write(135); delay(vel);
    der_abajo.write(90); delay(vel);
    der_arriba.write(90); delay(vel);
    
    izq_abajo.write(135); delay(vel);
    izq_arriba.write(45); delay(vel);
    izq_abajo.write(90); delay(vel);
    izq_arriba.write(90); delay(vel);
    
  }
}

void bailar(){
  for (int i=0;i<5;i++){
    der_abajo.write(130); delay(300);
    izq_abajo.write(40); delay(150);
    der_abajo.write(90); delay(300);
    izq_abajo.write(90); delay(150);
    der_arriba.write(130); delay(500);
    izq_arriba.write(50); delay(500);
    der_arriba.write(90); delay(500);
    izq_arriba.write(90); delay(500);
    der_arriba.write(130); delay(500);
    izq_arriba.write(50); delay(500);
    der_arriba.write(90); delay(500);
    izq_arriba.write(90); delay(500);
  }
}

Espero que os haya gustado este proyecto, yo la vedad es que he disfrutado muchísimo haciéndolo y me ha encantado poder incorporar piezas diseñadas desde 0 en él. Comenta que te ha parecido, me gustaría saber tu opinión.

detector de metales miniatura

Como hacer un detector de metales casero usando NE555

En esta página web te mostraremos un proyecto de como hacer un detector de metales casero de forma muy sencilla y rápida. Para hacer este proyecto necesitarás unos materiales muy sencillos como condensadores o un circuito integrado NE555, pero bueno, todo esto lo vemos más adelante de forma más detallada.

Lo mejor de todo es que lo tienes todo explicado a paso a paso y te puedo a asegurar que si haces todo tal y como se explica a continuación, el detector de metales te va a funcionar perfectamente como a mi.

Materiales

Aquí tienes una lista con todos los materiales necesarios para hacer este proyecto. Si te falta alguno de ellos, te dejo un enlace a Amazon para que puedas comprarlos.

Kits para aprender a soldar

A lo mejor te puede interesar este kit con el que podrás montar tu propio detector de metales de forma sencilla. El kit está pensado para que aprendas a soldar.

Explicación del proyecto

Este detector de metales permite detectar los cambios en el campo magnético de la bobina produciendo una variación de sonido que nos permitirá saber cuando estamos cerca de un material metálico y cuando no. Al tratarse de un proyecto tan simple, este detector de metales no nos permite hacer una diferenciación entre los distintos materiales metálicos, por lo que estamos limitados a la hora de saber ante que material metálico nos encontramos.

Características de la bobina utilizada

Por otro lado, las características de la bobina utilizada son las siguientes. Estuve haciendo pruebas con distintos tipos de bobinas pero finalmente la que mejor resultado me dio fue esta:

  • Nº de vueltas: 120
  • Diámetro: 5cm
  • Sección del cable de cobre: 0.25mm

Video paso a paso del proyecto

Aquí te dejo un vídeo en el que hago el proyecto yo mismo para que veas su funcionamiento y la capacidad de detectar metales que tiene.

Como ves, se puede apreciar perfectamente los cambios de sonido cuando se acerca un metal a la bobina del detector de metales. Por otro lado, otra limitación que tiene este proyecto es que para que se produzca un cambio detectable en el campo magnético, los metales tienen que acercarse mucho a la bobina. Diría que aproximadamente el rango de este detector es de 1-3 cm.

Para hacer el montaje, yo he utilizado una placa de prototipado, esta me ha sido muy útil ya que permite colocar todos los componentes en la parte superior y hacer las soldaduras por la parte de abajo. Por otro lado, para colocar el conector de alimentación, he tenido que agrandar 2 de los agujeros que trae la placa, ya que los pines de este componente eran más grandes y no cabían.

Esquema de conexiones

Para evitar posibles errores, aquí tienes el esquema de conexiones de este proyecto.

detector de metales esquematico

El altavoz que he utilizado es de 3 watts de potencia y una impedancia (o resistencia interna) de 8 Ω. Este altavoz me ha funcionado bien durante largos periodos de uso, quizás también se podría utilizar uno de 4Ω  pero este podría calentarse después de un rato funcionando ya que requiere una mayor demanda de corriente.

Haciendo todo lo comentado anteriormente y siguiendo los pasos del video, debería de funcionaros tal como a mi este detector de metales. Si tenéis cualquier duda o sugerencia me lo podéis decir en los comentarios de esta pagina y os responderé lo antes posible (los leo todos).

proyecto cubo led con arduino cubo de leds 3x3x3

Proyecto cubo led 3x3x3 controlado con Arduino

En este proyecto vamos a realizar un cubo led 3x3x3. En esta pagina encontraras todos los recursos necesarios para realizarlo, tanto el código de programación como el esquema de conexiones o la lista de materiales. Por lo que si te interesa o estas pensando en hacerte tu propio cubo de leds de 3x3x3, te recomiendo que te quedes en esta pagina ya que encontrarás toda la información necesaria para montarlo sin problemas y entender su funcionamiento.

Materiales empleados en la realización del cubo 3x3x3

A continuación veremos los diferentes materiales que se van a utilizar para realizar nuestra grúa con Arduino y una breve descripción de los mismos.

Además, para todos aquellos que estén interesados en realizar el proyecto, pueden pinchar en las imágenes y os llevará a una web donde poder adquirir dichos materiales.

Placa de Arduino UNO: Es el cerebro de nuestro proyecto, encargada de controlar todos los procesos del mismo mediante el código que encontrarás más adelante.

Placa de prototipado: Tabla con orificios (pines) en la cuales pueden soldarse componentes de forma muy sencilla.

LEDs: Se emplearán para la iluminación y construcción del cubo LED.

Componentes necesarios para realizar un cubo LED con Arduino

A continuación veremos los diferentes materiales que se van a utilizar para realizar este cubo 3x3x3. Además, para todos aquellos que estén interesados en realizar el proyecto.

Kit iniciación Arduino Kit iniciación Arduino ES
Placa Arduino Uno Placa Arduino Uno ES
Kit de LEDs Kit de LEDs ES
PCB de prototipado PCB de prototipado ES

Explicación paso a paso para realizar el cubo led con Arduino

Este proyecto consiste en un cubo formado por leds de colores. En total se van a utilizar un total de 27 leds, los cuales formarán una estructura cubica de 3 leds en cada lado.

Este es un proyecto muy escalable, es decir, se pueden hacer cubos de 4x4x4, 5x5x5 o incluso de hasta 25x25x25. Sin embargo, este tipo de cubos mas grandes requieren más practica a la hora de soldar y montar proyectos de electrónica, por lo que lo ideal es empezar a practicar con cubos de este tamaño. Esto nos ayudará a entender mejor su funcionamiento a la vez que nos ayuda a mejorar a la hora de soldar conexiones electrónicas o programar con Arduino. Además de todo esto, el cubo 3x3x3 tiene las siguientes ventajas:

  • Bajo consumo energético, por lo que no te tienes que preocupar por el consumo de corriente eléctrica que pueda dañar tu Arduino.
  • No se necesitas componentes electrónicos complejos.
  • Los colores de los LEDs para este proyecto no importan nada, así que siente libre de escoger los que más te gusten (o los que tengas por casa, como es mi caso).
  • También puedes combinar leds de diferentes colores para darle una apariencia más colorida.

Respecto a la corriente que va a pasar por cada pin de Arduino no debemos de preocuparnos, ya que aunque bien es cierto que los leds funciona con un amperaje máximo de 20mA, la realidad es que con 2mA-5mA es suficiente para iluminarlos. Teniendo en cuenta que cada pin de Arduino aguanta unos 20-30mA, por lo que no hay ningún problema.Los pasos a seguir para montar el este proyecto son los siguientes:

Paso 1: Comprobar el funcionamiento de cada led

Aunque este parezca un paso irrelevante, es uno de los más importantes, ya que no queremos que cuando este todo totalmente soldado, uno de los leds esté defectuoso y no funcione. Lo mas sencillo para comprobarlos es colocar el positivo en el pin de 5V de Arduino y el negativo en el GND de la placa de Arduino (con una resistencia de 220Ω entre la pata negativa y el GND de Arduino).

cubo de leds 3x3x3

Paso 2: Preparar la plantilla para alinear los leds

Lo siguiente que debemos de hacer es preparar la plantilla que vamos a utilizar para soldar las capas de 9 leds. Para esto vamos a hacer 9 agujeros en un cartón o en una madera con una distancia de separación de 2 centímetros entre ellos, tal y como se ve en la siguiente imagen.  El tamaño de los agujeros puede variar en función del tamaño de los leds que estéis utilizando, por lo general serán de 3mm o de 5mm de diámetro.

aa plantilla cubo led 3x3x3

Paso 3: Colocar los leds sobre la plantilla y soldarlos

Una vez tenemos hecha la plantilla ya podemos empezar a colocar los leds sobre ella. En este paso es muy importante asegurarnos de cual es el pin positivo y el negativo de cada led. Para esto existe dos opciones: la primera es que el pin negativo corresponde con la pata más pequeña, por lo que de esta forma podemos diferenciarlas. En caso de que ambas patas sean iguales, tenemos que utilizar la segunda opción. Debemos fijarnos en una pequeña marca plana que tienen en la cabeza todos los leds, que corresponde con la pata negativa. En esta imagen puedes ver de forma grafica lo comentado anteriormente:

aa led pata positiva vs negativa

Con esto claro ya podemos empezar a colocar los leds. Para esto vamos a doblar la pata negativa formando un angulo de 90 grados con el led, mientras que la positiva la vamos a doblar en forma de L y la vamos a dejar en vertical, tal y como se observa en esta imagen:

aa doblar patas led cubo led 3x3x3

Esto lo vamos a hacer con todos y cada uno de los leds que coloquemos sobre la plantilla. De esta forma tendremos que en cada una de las capas todas las patas negativas se estarán tocando, mientras que las positivas se quedarán hacia arriba. Esto debemos de hacerlo 3 veces (una por cada capa) pero OJO, debemos de tener en cuenta que las 3 capas deben de ser exactamente iguales, es decir, todos los leds deben de tener las patas positivas mirando hacia arriba en la misma posición, de esta forma se simplificará mucho el trabajo a la hora de soldar las capas entre si.

aa todas las capas cubo led 3x3x3

Paso 4: Soldar las 3 capas del cubo entre si

Con las 3 capas hechas, ya podemos empezar a soldarlas. Lo que vamos a hacer es soldar todos y cada uno de los pines en vertical, esto hará que todas las capas estén unidas mediante las patas negativas, mientras que las filas verticales estarán unidas con los pines positivos. De esta forma, mediante programación, podremos elegir que led se tiene que encender o apagar en cada momento. Una vez soldadas las 3 capas una sobre la otra, nos debe de quedar algo así:

aa cubo led 3x3x3

Paso 5: Colocar el cubo led sobre la placa de prototipado

En este paso lo que vamos a hacer va a ser colocar el cubo led previamente soldado sobre una placa de prototipado, soldando por abajo los 9 pines que salen. Tal y como se observa en la siguiente imagen:

aa prototipadocubo led 3x3x3

Paso 6: Añadir las resistencias, pines y soldar las capas

Una vez hecho esto, ya podemos colocar los pines que van a ser los que se conecten a la placa de Arduino Uno. Este paso no es obligatorio, pero si que va a facilitar mucho las cosas en el futuro. En total vamos a poner 9 pines para las filas positivas y 3 pines para las capas negativas. Además, también debemos de conectar 3 resistencias de 220 ohmios justo antes de los 3 pines que corresponderán a las capas negativas. Por otro lado, también vamos a sacar un cable de cada una de las capas negativas de nuestro cubo led y lo vamos a soldar por la parte inferior de la placa de prototipado. Debería de quedar algo parecido a lo que se observa en la siguiente imagen:

aa todos los comoponentes cubo led 3x3x3

Paso 7: Soldas todas las conexiones de los led

En este paso lo que tenemos que hacer es soldar ya todas las conexiones por debajo de la placa. Para esto vamos a soldar los 9 pines de las filas positivas de nuestro cubo led con los 9 pines macho que hemos colocado sobre la placa de prototipado. También soldaremos los 3 pines correspondientes a las capas negativas con las resistencias de 220 ohmios que hemos colocado anteriormente. El otro extremo de las resistencias debe de soldarse a los pines macho colocados sobre la placa de prototipado. Así es como quedaría el proyecto terminado:

aa conexiones led cubo led 3x3x3

Paso 8: Conectar el cubo led con Arduino

Aquí lo que debemos hacer es conectar los 9 pines positivos de nuestro cubo led a los pines de Arduino que van del 3 al 10 (ambos incluidos y los 3 pines que corresponden a las capas negativas a los pines de Arduino que van del 11 al 13 (ambos incluidos). De esta forma ya tendríamos todas las conexiones realizadas entre nuestro cubo led y la placa de Arduino Uno.

aa conexiones arduino led cubo led 3x3x3

Paso 9: Cargar el código de programación en nuestro Arduino

Este ya es el ultimo paso para completar nuestro proyecto. Lo único que tenemos que hacer es conectar la placa de Arduino con nuestro ordenador atreves de un puerto USB. Una vez hecho esto es muy importante seleccionar en la parte superior de Arduino IDE (enlace de descarga aquí) el puerto USB al que hemos coleado la placa y la placa que estamos utilizando, en nuestro caso "Arduino Uno". Lo ultimo será subir el código que te dejo en la parte inferior de esta pagina web a la placa de Arduino y BUALÁ, si todo va bien, el cubo led debería de empezar a funcionar.

aa funcionando led cubo led 3x3x3

Video con explicación paso a paso para realizar el proyecto

Si eres de los que entienden mejor las cosas cuando las ven en un vídeo, pues aquí lo tienes. La explicación completa de este proyecto en formato de vídeo, para que puedas ir viendo todos los pasos seguidos de una forma mucho más rápida y sencilla.Si tienes cualquier duda o no te queda claro alguno de los pasos seguidos, puedes poner un comentario en el canal de YouTube (o en esta pagina web) para que te ayude.

Esquema de conexiones Arduino para cubo led 3x3x3

Para evitar posibles errores al realizar las conexiones de este proyecto, aquí tienes el esquema de conexiones para un cubo led 3x3x3.

esquema fritzing cubo led

Los cables de color rojo indican las conexiones de las filas positivas del cubo led. Por otro lado, los cables negros indican las conexiones a las 3 capas negativas que tiene nuestro cubo led. Las resistencias que se ven en el esquema son de 220 ohmios y la placa de Arduino utilizada es la "Arduino UNO", como se ha comentado anteriormente.

Código en Arduino para la programación del proyecto

Aquí tienes el código de programación de este proyecto. Más abajo tienes una explicación mas detallada sobre su funcionamiento y las distintas partes en las que esta dividido.Recuerda que este código esta diseñado para que funcione con la configuración de pines arriba mostrada, si deseas utilizar otros pines tendrás que cambiar algunas partes del código.Por ultimo, para que el código funcione correctamente, debes de seleccionar la placa "Arduino UNO" en la aplicación Arduino IDE (aquí tienes un enlace para descargártela totalmente de forma gratuita si todavía no la tienes) y una vez que la placa de Arduino este conectada al ordenador, seleccionar en la parte superior el puerto COM al que se ha conectado.

//Canal YouTube -> RobotUNO //Proyecto: Cubo led 3x3x3  
void setup() {
    pinMode(2,OUTPUT); //Pines positivos   
    pinMode(3,OUTPUT);
    pinMode(4,OUTPUT);
    pinMode(5,OUTPUT);
    pinMode(6,OUTPUT);
    pinMode(7,OUTPUT);
    pinMode(8,OUTPUT);
    pinMode(9,OUTPUT);
    pinMode(10,OUTPUT);
    pinMode(11,OUTPUT); //Pines negativos
    pinMode(12,OUTPUT);
    pinMode(13,OUTPUT);
} 

void loop() {
//MODO 1: PARPADEO DE LEDS
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    digitalWrite(10,HIGH);

    for(int i=0;i<10;i++){
        if(i%2==0){ //Enciendo todos los leds
            digitalWrite(11,LOW);
            digitalWrite(12,LOW);
            digitalWrite(13,LOW);
        }     
        else{ //Apago todos los leds
            digitalWrite(11,HIGH);
            digitalWrite(12,HIGH);
            digitalWrite(13,HIGH);
       }
    delay(100);
    }
//MODO 2: SE ENCIENDEN UNA POR UNA LAS FILAS   
    digitalWrite(2,LOW);
    digitalWrite(3,LOW);
    digitalWrite(4,LOW);
    digitalWrite(5,LOW);
    digitalWrite(6,LOW);
    digitalWrite(7,LOW);
    digitalWrite(8,LOW);
    digitalWrite(9,LOW);
    digitalWrite(10,LOW);
    digitalWrite(11,LOW);
    digitalWrite(12,LOW);
    digitalWrite(13,LOW);
    for(int j=0;j<=1;j++){
        for(int i=2;i<=10;i++){
            digitalWrite(i,HIGH);
            delay(100);
            digitalWrite(i,LOW);
            delay(100);
        }
    }
//MODO 3: SE ENCIENDEN UNA POR UNA LAS CAPAS   
    digitalWrite(2,HIGH);
    digitalWrite(3,HIGH);
    digitalWrite(4,HIGH);
    digitalWrite(5,HIGH);
    digitalWrite(6,HIGH);
    digitalWrite(7,HIGH);
    digitalWrite(8,HIGH);
    digitalWrite(9,HIGH);
    digitalWrite(10,HIGH);
    digitalWrite(11,HIGH);
    digitalWrite(12,HIGH);
    digitalWrite(13,HIGH);
    for(int j=0;j<=4;j++){
        for(int i=11;i<=13;i++){
            digitalWrite(i,LOW);
            delay(100);
            digitalWrite(i,HIGH);
        delay(100);
        }
    }
}

Programar un cubo led de este estilo con Arduino es muy sencillo. Simplemente debemos de entender que para que se encienda un led tenemos que hacer dos cosas: que el polo positivo este en positivo y que el polo negativo del led este en negativo. Con esto claro ya podemos empezar a programarlo.Para poner un pin de Arduino en positivo o negativo podemos usar los siguientes comandos:

  • Para poner un pin en positivo -> digitalWrite(nºpin,HIGH);
  • Para pone un pin en negativo -> digitalWrite(nºpin,LOW);

Con esto ya podemos encender y apagar el led que queramos de nuestro cubo, ya que podemos poner cualquier fila en positivo y cualquier capa en negativo, lo que nos dará como resultado que se encienda el led que coincida en esa posición.

Déjame un comentario si te ha gustado!👍

proyecto con arduido robot

Proyecto "Robot que baila, saluda y anda solo"

Ya esta aquí, ya ha llegado, el proyecto de un robot que baila, camina y saluda con Arduino. Este proyecto esta hecho utilizando solo materiales que todos los kits de iniciación traen, como son los servomotores, placa de Arduino UNO y demás componentes básicos.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina.

Materiales necesarios para hacer el robot

A continuación hablaremos de los diferentes materiales utilizados para la construcción de este robot humanoide que es capaz de andar y bailar solo. Si te interesa realizar este proyecto pero te falta alguno de los materiales de la lista, puedes comprarlos de forma muy sencilla en lo enlaces.

Kit iniciación ArduinoKit iniciación ArduinoESUS
Placa Arduino UnoPlaca Arduino UnoESUS
Cables Macho HembraCables Macho HembraESUS
Servomotores ArduinoServomotores ArduinoESUS
ProtoboardProtoboardESUS

Video explicación del proyecto

Más abajo tienes el código de programación y el esquema de conexiones para realizar este proyecto, pero si tienes alguna duda o no entiendes alguno de los pasos, aquí tienes el video de YouTube original en el cual se hace este proyecto con Arduino paso a paso, explicando todo lo que necesitas saber para poder montarlo sin ningún problema. Y recuerda, si te gusta esta clase de contenido, no olvides SUSCRIBETE 😉

Esquema de conexiones Arduino

Otra parte muy importante de un proyecto con Arduino es el esquema de conexiones. Aquí tienes todas las conexiones que hay que realizar para hacer este proyecto. Te recomiendo comprobar muy bien que todas están exactamente igual que las de la imagen para asegurarte de que el código de programación que hay mas adelante funciona sin necesidad de ninguna adaptación.

esquema conexiones proyecto arduino robot que anda

Código de Arduino para la proframación del robot

Para finalizar con este proyecto del brazo robótico, a continuación te dejamos el código de programación desarrollado específicamente para este proyecto.

Respecto al código, recuerda instalar las librerías “Servo.h”. También asegúrate de que el puerto donde esta conectada la placa de Arduino es el que esta seleccionado.

Si tienes dudas sobre cómo usar o instalar el entorno de programación empleado para Arduino, te dejamos un link de comó descargar el IDE de Arduino

//Canal YouTube -> RobotUNO
//Robot Bipedo 
#include <Servo.h>
Servo der_arriba;
Servo der_abajo;
Servo izq_arriba;
Servo izq_abajo;
void setup() {
  der_arriba.attach(5);
  der_abajo.attach(6);
  izq_arriba.attach(7);
  izq_abajo.attach(8);  
  posicion_inicial(); 
  delay(3000); 
}
int f=0;
void loop() {
  if (f==0) {
    saludar();
    caminar();
    bailar();
    
    f=1;
  }
}
void posicion_inicial(){
  der_arriba.write(0); delay(100);
  der_abajo.write(0); delay(100);
  izq_arriba.write(90); delay(100);
  izq_abajo.write(90); delay(100);
}
void saludar(){
  for (int i=0;i<2;i++){
    der_abajo.write(50); delay(100);
    izq_abajo.write(40); delay(100);
    der_abajo.write(0); delay(100);
    izq_abajo.write(90); delay(100);
  }
}
void caminar(){
  int vel=50; //Velocidad a la que anda
  
  for (int i=0;i<30;i++){
    der_arriba.write(90); delay(vel);
    der_abajo.write(50); delay(vel);
    der_arriba.write(0); delay(vel);
    der_abajo.write(0); delay(vel);
    
    izq_arriba.write(0); delay(vel);
    izq_abajo.write(40); delay(vel);
    izq_arriba.write(90); delay(vel);
    izq_abajo.write(90); delay(vel);
  }
}
void bailar(){
  for (int i=0;i<5;i++){
    der_abajo.write(50); delay(300);
    izq_abajo.write(40); delay(150);
    der_abajo.write(0); delay(300);
    izq_abajo.write(90); delay(150);
    der_arriba.write(90); delay(500);
    izq_arriba.write(0); delay(500);
    der_arriba.write(0); delay(500);
    izq_arriba.write(90); delay(500);
    der_arriba.write(90); delay(500);
    izq_arriba.write(0); delay(500);
    der_arriba.write(0); delay(500);
    izq_arriba.write(90); delay(500);
  }
}

Recordad antes de montar todos los servomotores, estos deben colocarse en la posición inicial neutra, es decir, los servomotores deben de estar situados en la mitad de su movimiento total para tener capacidad de moverse en ambos sentidos. 

Para hacer esto puedes utilizar el código que te dejo aquí abajo. Te recomiendo que lo ejecutes en una nueva ventana de Arduino IDE y pongas los servomotores en la posición media, para esto pon uno a uno (tal y como se explica en el vídeo) los servomotores en el pin número 5 de la placa de Arduino UNO.

Para el servomotor de abajo a la derecha utiliza este código:

#include <Servo.h>
Servo servomotor;

void setup() {
  servomotor.attach(5);
}

void loop() {
  servomotor.write(0);//Para el de abajo a la derecha
}

 En cambio, para el servomotor de abajo a la izquierda utiliza este otro código:

#include <Servo.h>
Servo servomotor;

void setup() {
  servomotor.attach(5);
}

void loop() {
  servomotor.write(90);//Para el de abajo a la izquierda
}

Una vez que tengas esto, ya puedes continuar con el proyecto, montarlo todo y colocarle los servos a robot.

lampara con arduino proyecto

Proyecto "Lampara de noche con Arduino"

En este proyecto vamos a realizar una lampara de noche o un flexo para estudiar con Arduino. En esta pagina encontraras todos los recursos necesarios para realizarlo, tanto el código de programación como el esquema de conexiones o la lista de materiales. Por lo que si te interesa o estas pensando en hacerte tu una lampara de forma casera, te recomiendo que te quedes aquí.

Explicación del proyecto paso a paso

Este proyecto consiste en una lampara que se puede utilizar tanto como lampara de noche como flexo para estudiar. Esta completamente realizado con Arduino y con materiales genéricos que suelen venir en todos los kits de Arduino para principiantes.

El funcionamiento se basa en un botón que nos permite el tono de luz (de luz mas cálida a luz mas fría) y un potenciómetro, el cual nos permite cambiar el brillo de los leds.

Además, se ha colocado un interruptor el cual corta la alimentación de todo el proyecto. La alimentación se ha realizado con un cargador de móvil que funciona a 5V y 2A, lo cual es mas que suficiente para alimentar los 12 leds RGB que trae el anillo led, ya que cada led RGB consume unos 20mA x 3 leds RGB x 12 leds da un total de 720mA, por lo que se puede alimentar de sobra con un cargador de 5V y 2A.

Materiales empleados en la fabricación de la lampara

A continuación veremos los diferentes materiales que se van a utilizar para realizar este proyecto con Arduino y una breve descripción de los mismos. Además, si estas interesado en realizar este proyecto y te falta alguno de los componentes, solo tienes que pinchar en el enlace de compra.

Kit iniciación ArduinoKit iniciación ArduinoESUS
Placa Arduino UnoPlaca Arduino UnoESUS
Anillo LED RGBAnillo LED RGBESUS
Cables Macho HembraCables Macho HembraESUS

Video con explicación paso a paso del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

Esquema de conexiones Arduino

Uno de los errores más comunes a la hora de realizar un proyecto con Arduino que vemos por internet, es realizar de forma incorrecta alguna conexión, haciendo que el proyecto no funcione. Por este motivo, aquí te traigo un esquema de conexiones muy visual sobre como realizar las conexiones. 

Todas estas conexiones son las que se han tenido en cuenta a la hora de programar el proyecto, por lo que no deberían de darte ningún error. Si te aparece un error, coméntalo por los comentarios del video de YouTube o por los comentarios de esta pagina web y entre todos intentaremos solucionártelo.

esquema de conexiones arduino lampara

Código de Arduino para programar una lampara

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar esta grúa y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

Si tienes dudas sobre cómo usar o instalar el entorno de programación empleado para Arduino, te dejamos un link de comó descargar el IDE de Arduino

//Canal de YouTube -> RobotUNO
//Proyecto -> Lampara casera

#include <Adafruit_NeoPixel.h>
Adafruit_NeoPixel lampara  = Adafruit_NeoPixel(12 , 2 , NEO_GRB + NEO_KHZ800); //(nºleds, pin din, NEO_GRB + NEO_KHZ400);

int contador=0, R=0, G=0, B=0;

void setup() {
  Serial.begin(9600);
  
  pinMode(A1,INPUT);
  pinMode(3,INPUT);
  
  lampara.begin();
  lampara.show();
  
}

void loop() {
  
  int potenciometro = analogRead(A1);
  int boton = digitalRead(3);
  
  Serial.println("potenciometro = ");
  Serial.print(potenciometro);
  Serial.println("\n");
  
  Serial.println("boton = ");
  Serial.print(boton);
  Serial.println("\n");

  //BRILLO
  int luz=0.249266*potenciometro;
  luz=round(luz);
  lampara.setBrightness(luz);

  //COLOR
  if (boton==1){
    contador=contador+1;
    
    if (contador==1){ //Nivel luz 1 (1000 Kº)
      R=255;
      G=56;
      B=0;
    }
    else if (contador==2){ //Nivel luz 2 (1500 Kº)
      R=255;
      G=109;
      B=0;
    }
    else if (contador==3){ //Nivel luz 3 (2000 Kº)
      R=255;
      G=138;
      B=18;
    }
    else if (contador==4){ //Nivel luz 4 (2500 Kº)
      R=255;
      G=161;
      B=72;
    }
    else if (contador==5){ //Nivel luz 5 (3000 Kº)
      R=255;
      G=180;
      B=107;
    }
    else if (contador==6){ //Nivel luz 6 (3500 Kº)
      R=255;
      G=196;
      B=137;
    }
    else if (contador==7){ //Nivel luz 7 (5000 Kº)
      R=255;
      G=228;
      B=206;
    }
    else { //Lo apaga todo
      R=0;
      G=0;
      B=0;

      contador=0;
    }
    
   delay(500);
  }
  
  lampara.setPixelColor(0,R,G,B);
  lampara.setPixelColor(1,R,G,B);
  lampara.setPixelColor(2,R,G,B);
  lampara.setPixelColor(3,R,G,B);
  lampara.setPixelColor(4,R,G,B);
  lampara.setPixelColor(5,R,G,B);
  lampara.setPixelColor(6,R,G,B);
  lampara.setPixelColor(7,R,G,B);
  lampara.setPixelColor(8,R,G,B);
  lampara.setPixelColor(9,R,G,B);
  lampara.setPixelColor(10,R,G,B);
  lampara.setPixelColor(11,R,G,B);
  lampara.show();
  
  delay(100);
}

Déjame un comentario si te ha gustado!👍

proyecto arduino esquivar meteoritos tutorial

Minijuego con Arduino: "Esquiva los meterioritos!"

Se trata de uno de los juegos más famosos del mundo. Consiste en esquivar los meteoritos que van cayendo del cielo, pero ¡hay un problema! cada vez caen más y más rápido, ¿la solución? moverte más rápido.

¿Te ves capaz? Pues te animo a realizar este proyecto, para el cual necesitarás una matriz LED de 8x8 y 2 botones para moverte hacia los lados.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina.

Explicación y funcionamiento del minijuego

El funcionamiento de este proyecto es muy sencillo: debemos de tratar esquivar los máximos meteoritos posibles. Fácil ¿no? Pues bien, el problema esta que a medida que pasa el tiempo, cada vez caen más meteoritos y más rápido, por lo que cada vez se hace mas difícil esquivarlos.

Para movernos debemos de pulsar 2 botones, con uno nos movemos hacia la izquierda y con el otro hacia la derecha, de esta forma es posible esquivar todos los meteoritos que van cayendo.

Esto es un proyecto con Arduino muy interesante, ya que pese a que el código de programación es bastante complejo, el montaje del proyecto es muy sencillo. Además, al realizar este proyecto, aprenderemos el funcionamiento de las matrices de LEDs 8x8.

Materiales empleados para realizar el proyecto

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

A continuación tienes una lista con los enlaces de compra en diferentes sitios.

Kit iniciación ArduinoKit iniciación ArduinoESUS
Placa Arduino UnoPlaca Arduino UnoESUS
Cables Macho HembraCables Macho HembraESUS
ProtoboardProtoboardESUS
Matriz LED 8x8Matriz LED 8x8ESUS
Botones ElectrónicaBotones ElectrónicaESUS

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Video con explicación paso a paso del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

Esquema de conexiones de Arduino para el montaje del proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen.

Esquema conexiones esquivar meteoritos minijuego arduino

Código de Arduino para la programación del minijuego

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar este proyecto y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

//Canal de YouTube -> RobotUNO
//Proyecto esquivar meteoritos en matriz led

#include "LedControl.h"
LedControl lc=LedControl(12,11,10,1);
unsigned long delaytime=1000;
String scoreString;
int score;
int hundreds;
String scoreStr;
String scoreArr[] = {"" ,"" ,"" };
int pinLeft = 2;
int pinRight = 3;
volatile unsigned long buttonPressed;
int buttonDelay = 150; 
volatile bool gameOver = false;
int tick;
int tickCounter = 1;
unsigned long now;
int ship;
int columns[] = {0,0,0,0,0,0,0,0};
int randomInt;

void setup() {
  gameOver = false;
  hundreds = 0;
  scoreArr[0] = "";
  scoreArr[1] = "";
  scoreArr[2] = "";
  score = 0;
  tick = 300;
  tickCounter = 1;
  ship = 3;
  now = millis();
  buttonPressed = millis();
  randomSeed(analogRead(15));
  for(int i = 0; i<8; i++)
    columns[i] = 0;;
  lc.shutdown(0,false);
  lc.setIntensity(0,1);
  lc.clearDisplay(0);
  pinMode(pinLeft, INPUT_PULLUP);
  pinMode(pinRight, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(pinLeft), left, FALLING);
  attachInterrupt(digitalPinToInterrupt(pinRight), right, FALLING);
}

void left()
{
  if(millis() - buttonPressed > buttonDelay)
  {
        if(ship != 0)
        ship--;
      else
        ship = 7;
      lc.clearDisplay(0);
      buttonPressed = millis();
  }
  if(gameOver == true){
  gameOver = false;
  setup();
  }
}

void right()
{
    if(millis() - buttonPressed > buttonDelay)
    {
      if(ship != 7)
        ship++;
      else
        ship = 0;
      lc.clearDisplay(0);
       buttonPressed = millis();
    }
  if(gameOver == true){
  gameOver = false;
  setup();
  }   
}

void loop() { 
  if(millis() - now > tick){
    score++;
    now = millis();

    if(tickCounter == 1){
       tick = tick/1.02;
      randomInt = random(0, 8);
      if(columns[randomInt] == 0){  
        columns[randomInt] = 1;
      }
    }
    if(tickCounter != 4)
      tickCounter++;
     else
      tickCounter = 1;
    for(int i = 0; i<8; i++){
      if(columns[i] == 10)
        columns[i] = 0;
      if(columns[i] != 0)
        columns[i]++;
    }

    lc.clearDisplay(0);
  }
  lc.setLed(0, 7, ship, true);
  for(int i = 0; i<8; i++){
    if(columns[i] > 0){
      lc.setLed(0, columns[i]-2, i, true);
      lc.setLed(0, columns[i]-3, i, true);
     }
  }
  if(columns[ship] == 10 or columns[ship] == 9){
    lc.clearDisplay(0);
    for(int i = 0; i<4; i++){
      lc.setLed(0,7,ship+i,true);
      lc.setLed(0,7,ship-i,true);
      lc.setLed(0,7-i,ship+i,true);
      lc.setLed(0,7-i,ship-i,true);
      lc.setLed(0,7-1.5*i,ship,true);
      unsigned long time = millis();
      int randomSound=1000;
      while(millis() - time <= 250)  {  
        randomSound--;
        tone(9, random(randomSound, 1000));
      lc.clearDisplay(0);
      noTone(9);
    }
    delay(500);
    scoreStr = String(score);
    scoreArr[0] = scoreStr.charAt(0);
    scoreArr[1] = scoreStr.charAt(1);
    scoreArr[2] = scoreStr.charAt(2);
    if(score < 100){
        for(int i = 0; i<2; i++){
          if(scoreArr[i] == "0")
            draw0(1+i*4);
          if(scoreArr[i] == "1")
            draw1(1+i*4);
          if(scoreArr[i] == "2")
            draw2(1+i*4);
          if(scoreArr[i] == "3")
            draw3(1+i*4);
          if(scoreArr[i] == "4")
            draw4(1+i*4);
          if(scoreArr[i] == "5")
            draw5(1+i*4);
          if(scoreArr[i] == "6")
            draw6(1+i*4);
          if(scoreArr[i] == "7")
            draw7(1+i*4);
          if(scoreArr[i] == "8")
            draw8(1+i*4);
          if(scoreArr[i] == "9")
            draw9(1+i*4);
        }
        }
    else{
        for(int i = 1; i<3; i++){
          if(scoreArr[i] == "0")
            draw0(1+(i-1)*4);
          if(scoreArr[i] == "1")
            draw1(1+(i-1)*4);
          if(scoreArr[i] == "2")
            draw2(1+(i-1)*4);
          if(scoreArr[i] == "3")
            draw3(1+(i-1)*4);
          if(scoreArr[i] == "4")
            draw4(1+(i-1)*4);
          if(scoreArr[i] == "5")
            draw5(1+(i-1)*4);
          if(scoreArr[i] == "6")
            draw6(1+(i-1)*4);
          if(scoreArr[i] == "7")
            draw7(1+(i-1)*4);
          if(scoreArr[i] == "8")
            draw8(1+(i-1)*4);
          if(scoreArr[i] == "9")
            draw9(1+(i-1)*4);
        }
        for(int i = 1; i<10; i++){
          if(scoreArr[0] == String(i))
            hundreds = i;
        }
        for(int i = 1; i <= hundreds; i++){
          lc.setLed(0,0,i-1,true);
          lc.setLed(0,1,i-1,true);
          delay(200);          
        }
    }
   gameOver = true;
    while(gameOver == true){
      }
  }
}

void draw1(int position){
    lc.setColumn(0,0+position,B00001000);
    lc.setColumn(0,1+position,B00011111);
}

void draw2(int position){
    lc.setColumn(0,0+position,B00010111);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011101);  
}
void draw3(int position){
    lc.setColumn(0,0+position,B00010001);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011111);  
}
void draw4(int position){
    lc.setColumn(0,0+position,B00011100);
    lc.setColumn(0,1+position,B00000100);
    lc.setColumn(0,2+position,B00011111);  
}
void draw5(int position){
    lc.setColumn(0,0+position,B00011101);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00010111);  
}
void draw6(int position){
    lc.setColumn(0,0+position,B00011111);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00010111);  
}
void draw7(int position){
    lc.setColumn(0,0+position,B00010000);
    lc.setColumn(0,1+position,B00010011);
    lc.setColumn(0,2+position,B00011100);  
}
void draw8(int position){
    lc.setColumn(0,0+position,B00011111);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011111);  
}
void draw9(int position){
    lc.setColumn(0,0+position,B00011101);
    lc.setColumn(0,1+position,B00010101);
    lc.setColumn(0,2+position,B00011111);  
}
void draw0(int position){
    lc.setColumn(0,0+position,B00011111);
    lc.setColumn(0,1+position,B00010001);
    lc.setColumn(0,2+position,B00011111);  
}
proyecto con arduino uno robot uno diana punteria laser

Minijuego con Arduino: "Diana laser"

¿Tienes buena puntería? Bueno, no importa, con este proyecto hecho con Arduino seguro que la mejoras. Por si, ni mas ni menos que este mini juego trata de realizar una diana que detecte un laser, para así poder practicar nuestra puntería y nuestro pulso. 

Este proyecto incluye diferentes modos de juego, los cuales nos ayudaran a mejorar nuestra puntería.

Si te interesa como realizar este proyecto de forma muy fácil y rápida, quédate en esta pagina. 

Explicación y funcionamiento del minijuego

El objetivo de este proyecto es el siguiente: debemos de intentar que el laser toque la fotorresistencia, que en este caso es nuestra diana. Cada vez que el laser incida sobre la fotorresistencia, el contador sumará uno. Cuando le demos 5 veces (se puede cambiar este valor) se acabará la partida.

Otro modo de juego es intentar aguantar el máximo tiempo posible con la luz del laser sobre la fotorresistencia. Cada 0.5 segundos el led rojo se encenderá y una vez que se encienda 5 veces, el juego se acaba.

Como he comentado antes, todos estos valores se pueden cambiar en el código de programación de una forma muy sencilla, por defecto viene el numero 5, pero este se puede cambiar y poner el valor que deseemos.

Es un proyecto muy interesante con Arduino ya que nos permite entender el funcionamiento de las fotorresistencias así como la utilización de contadores dentro del código de programación. Sin duda un minijuego muy recomendable.

Materiales empleados en la realización del proyecto

Los materiales para realizar este proyecto son muy sencillos y no debería de ser ningún problema conseguirlos, aun así, para que te sea más fácil, aquí tienes una lista con todos los componentes.

Kit iniciación ArduinoKit iniciación ArduinoESUS
Placa Arduino UnoPlaca Arduino UnoESUS
Kit de LEDsKit de LEDsESUS
Cables Macho HembraCables Macho HembraESUS
ProtoboardProtoboardESUS

Si tienes alguna duda sobre los materiales que se utilizan en este proyecto, no dudes en dejar un comentario, te responderemos lo antes posible.

Video paso a paso con la explicación del proyecto

Si lo que buscas es ver de una forma mucho más detallada de como realizar este proyecto desde el inicio hasta el final y una explicación del código, a continuación se muestra el video con dicho contenido, mucho mas visual y fácil de comprender. Y recuerda, si te gusta esta clase de contenido, no olvides suscribirte 😉

Esquema de conexiones Arduino para realizar el proyecto

Para que te sea más fácil montar este proyecto, aquí tienes el esquema de conexiones. Todas las conexiones de este esquema corresponden con el código de programación que hay justo abajo, así que asegúrate de que todas están tal y como se muestra en esta imagen. 

esquema Fritzing minijuego diana laser arduino

Código de Arduino para la programación del minijuego

A continuación se muestra el código de programación desarrollado específicamente para este proyecto. Los pines que puedes encontrar en el código son los mismos que encontrarás en el esquema de conexiones previamente mostrado.

Si quieres una explicación más detallada de las diferentes partes del código empleado para programar este proyecto y de su funcionamiento, te recomiendo que te veas el video que te hemos dejado más arriba.

Lo que debes de hacer para utilizar este código es muy sencillo, simplemente tienes que copiarlo y pegarlo en tu compilador de Arduino (por ejemplo, Arduino IDE). Si no lo tienes instalado, haz click aquí para ver un tutorial sobre como instalártelo de forma totalmente gratuita.

Si tienes cualquier duda, deja un comentario en esta pagina y te responderemos lo antes posible.

//Canal de YouTube -> RobotUNO
//Entrenamiento punteria con un laser

#define led_rojo 11
#define led_verde 12
int sensor=0, contador=0;

int valor = 0;  
void setup() { 
  Serial.begin(9600);
  
  pinMode(led_rojo,OUTP
  UT);
  pinMode(led_verde,OUTPUT);
  pinMode(sensor,INPUT);
} 
void loop() {
  sensor = analogRead(A0);
  Serial.print(sensor);
  Serial.print("\n");

  if(sensor>500){ //CALIBRAR EL SENSOR
    digitalWrite(led_rojo,HIGH);
    delay(500);
    digitalWrite(led_rojo,LOW);
    contador++;
  }

  if(contador==5){
    digitalWrite(led_verde,HIGH);
  }
  
  delay(100);
}