Tutorial 4 – Proyecto detector de distancia

Bienvenido a otro de mis tutoriales de Arduino. Esta semana el proyecto que voy a realizar es un detector de proximidad con Arduino y sensor de ultrasonidos.

Para visualizar la salida del sensor utilizamos un display Oled de 128×64 y un par de LEDs para que la alarma sea mas visual en caso de un objeto próximo al sensor.

Este sería el resultado final

Para realizar este proyecto necesitamos los siguientes componentes:

  • Arduino UNO
  • OLED 128×64
  • 2 LEDS (verde y rojo)
  • 2 Resistencias 220 Ohm
  • Sensor ultrasonidos
  • Protoboard y cables de conexión

Esquema de conexiones

Código Fuente del programa

Como siempre el código fuente esta disponible libremente para editarlo a tu gusto y necesidades.

//Sensor de ultrasonidos con datos mostrados en Display Oled
//Alex Edo 11.10.2020
//puedes usar, modificar este software como desees

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define OLED_RESET 4
#define trigPin 13
#define echoPin 12
#define ROJO 7
#define VERDE 6


Adafruit_SSD1306 display(128, 64, &Wire, OLED_RESET);


void setup(){
  //ULTRASONIDOS Y OLED
 
  pinMode(trigPin,OUTPUT);
  pinMode(echoPin, INPUT);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 
  display.clearDisplay();
  //LEDS ESTADO
  pinMode(ROJO,OUTPUT);
  pinMode(VERDE,OUTPUT);
  digitalWrite(ROJO,LOW);
  digitalWrite(VERDE,HIGH);
  
  
  
}

void loop() {
  long duracion, distancia;
  digitalWrite(trigPin,LOW);
  delay(2);
  digitalWrite(trigPin,HIGH);
  delay(10);
  digitalWrite(trigPin, LOW);

  duracion = pulseIn(echoPin,HIGH);

  distancia = (duracion/2) / 29.1;
  


  //alarma LEDS

  if(distancia<=10){
    //LEDS
    digitalWrite(ROJO,HIGH);
    digitalWrite(VERDE,LOW);
    
    //AVISO DISPLAY
    display.clearDisplay();
    display.setTextSize(2);    
    display.setTextColor(WHITE);
    display.setCursor(22,20);
    display.println("PELIGRO");
    display.setCursor(22,40);
    display.println("IMPACTO");
    display.display();
    display.clearDisplay();
 
  }else{
    digitalWrite(ROJO,LOW);
    digitalWrite(VERDE,HIGH);
    display.clearDisplay();
    display.setTextColor(WHITE);
    display.setTextSize(2);
    display.setCursor(15,0);
    display.println("DISTANCIA");
    display.setTextSize(3);    
    display.setCursor(22,35);
    display.println(distancia);
    display.setCursor(85,35);
    display.setTextSize(3);
    display.println("cm");
    display.display();
    delay(500);
  
  }
  
  }

El Arduino alimenta con 5V la breadboard que es de donde vamos a coger todas las alimentaciones y GND para facilitar el conexionado de todos los componentes.

El proyecto de esta semana lo he montado de la siguiente manera, he conectado el sensor de ultrasonidos al arduino de la siguiente manera. Gnd y 5V a la tira de la breadboard que alimenta Arduino. Los pins Trig a la 13 digital, el pin Echo a la 12 digital.

Los Leds cada uno con su resistencia van a los pines 6 para el Verde y 7 para el Rojo.

El display se conecta por I2C, Gnd y 5V a la tira de la breadboard y SLC al PIN analogicoA5 y el SDA al pin analógico A4.

Por software he puesto la alarma de conexión a una distancia de 10 cm del sensor que es cuando aparece el mensaje de colisión y se enciende el Led rojo. En caso contrario el display muestra la distancia y el Led verde esta encendido.

La logica del programa es un simple if que tiene la condicion de distancia menor de 10 actua, mayor de 10 no actua y muestra la distancia de los objetos cercanos al sensor.

Y hasta aquí el proyecto de esta semana, espero que sea interesante y hasta la semana próxima. En los comentarios podéis preguntar o proponer proyectos para que vaya realizando si queréis.

Vídeo Canal YouTube

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *