Sensores de aproximación con ultrasonido y control de servidor (papelera automática)

En facebook publicamos un proyecto genial:

https://www.facebook.com/AZDelivery.de/videos/421956858229574/

Le mostraremos cómo puede recrear la electrónica o el sensor aquí.

 

¿Qué necesitamos:

Microcontrolador, compatible con Arduino UNO R3
Sensor ultrasónico HC-SR04

Puentes enchufables
Servomotor

 

Sensor ultrasónico en Arduino

 

Software para el Arduino

Largo distancia1 = 0;
Largo distancia2 = 0;
Largo hora=0;
Int Número = 15;
Int Valores[16];

Vacío Configuración() {   #define detonante 3                     Arduino Pin 3 a HC-SR04 Trig   #define Eco 2                        Arduino Pin 2 a HC-SR04 Echo   Serial.Comenzar(115200);                 Tasa de Baud serie   pinMode(LED_BUILTIN, Salida);
}

Vacío Bucle() {   Para (Int Ⅰ.=0; Ⅰ. <= Número-1; Ⅰ.++){     hora=0;     noInterrupts();                     Desactivación de interrupciones     digitalWrite(detonante, Bajo);     delayMicroseconds(3);     digitalWrite(detonante, Alto);        Disparador Pulse 10 nosotros     delayMicroseconds(20);     digitalWrite(detonante, Bajo);     hora = pulseEn(Eco, Alto);         Medir el tiempo de eco     Interrumpe();                       Activación de interrupciones     Valores[Ⅰ.] = hora;     (1);   }   distancia1 = 0;   Para (Int Ⅰ.=0; Ⅰ. <= Número -1; Ⅰ.++){     distancia1 = distancia1 + Valores[Ⅰ.];   }   distancia2 = distancia1 / Número;   Serial.println(distancia2);   Si (distancia2 > 9550){     digitalWrite(LED_BUILTIN, Alto);     Serial.println("Abierto");     Retraso(3000);     digitalWrite(LED_BUILTIN, Bajo);     Retraso(1000);   }
}


 

Ahora nuestro Arduino con el sensor ultrasónico detecta al menos una vez a medida que nos acercamos y muestra esto con el LED incorporado.

En el siguiente paso, controlamos un servomotor para abrir la basura.

Ahora estamos extendiendo nuestro cableado con un servomotor.

 

 

y ajustar el software:

#include <Servo.H>
Servo servo1;

Largo distancia1 = 0;
Largo distancia2 = 0;
Largo hora=0;
Int Número = 15;
Int Valores[16];
Int Para = 5;
Int En = 95;

Vacío Configuración() {   #define detonante 3                     Arduino Pin 3 a HC-SR04 Trig   #define Eco 2                        Arduino Pin 2 a HC-SR04 Echo   Serial.Comenzar(115200);                 Tasa de Baud serie   pinMode(LED_BUILTIN, Salida);   servo1.adjuntar(8);   servo1.Escribir(Para);
}

Vacío Bucle() {   Para (Int Ⅰ.=0; Ⅰ. <= Número-1; Ⅰ.++){     hora=0;     noInterrupts();                     Desactivación de interrupciones     digitalWrite(detonante, Bajo);     delayMicroseconds(3);     digitalWrite(detonante, Alto);        Disparador Pulse 10 nosotros     delayMicroseconds(20);     digitalWrite(detonante, Bajo);     hora = pulseEn(Eco, Alto);         Medir el tiempo de eco     Interrumpe();                       Activación de interrupciones     Valores[Ⅰ.] = hora;     (1);   }   distancia1 = 0;   Para (Int Ⅰ.=0; Ⅰ. <= Número -1; Ⅰ.++){     distancia1 = distancia1 + Valores[Ⅰ.];   }   distancia2 = distancia1 / Número;   Serial.println(distancia2);   Si (distancia2 > 9550){     digitalWrite(LED_BUILTIN, Alto);     Serial.println("Abierto");     servo1.Escribir(En);     Retraso(3000);     digitalWrite(LED_BUILTIN, Bajo);     servo1.Escribir(Para);     Retraso(1000);   }
}


Ahora puede utilizar el sensor y el servomotor para varios controles.
Como se puede ver en el video de Facebook, se podría abrir un iris.

Le deseamos mucha diversión con el sensor de proximidad y estamos esperando sus propósitos.
Para arduinoProyectos para principiantesSensores

3 comentarios

Hartmut Zipper

Hartmut Zipper

Habe ich in mein Rasenroborter am Schleifenempfänger eingebaut. Jetzt stop er vor Hindernissen bei 10 cm. Bei mir Aldi Easy Mover ist es Pin 6 am Schleifenempfänger. Bei High Stop zurück (Pip,Pip,Pip) zurück drehen und weiter mähen.
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED, HIGH); // zum Schalten mit Vorwiderstand 100 Ohm oder Testen
Serial.println(“open”);
delay(300);
Serial.println(“LED”);
digitalWrite(LED, LOW);
digitalWrite(LED_BUILTIN, LOW);
delay(5000);

Rudolf Reiber

Rudolf Reiber

Guten Tag,
bei mir tat der erste Sketch erst zuverlässig nach dem Einfügen von:

pinMode(echo, INPUT);
pinMode(trigger, OUTPUT);

in der SetUp-Routine.

T.Geffe

T.Geffe

Hallo,
ein schoenes Projekt aber wo bekommt man den so einen Papierkorb zu kaufen?

Gruss Toralf

Deja un comentario

Todos los comentarios son moderados antes de ser publicados

Artículos de blog

  1. Ahora instalamos el esp32 a través de la administración.
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. Transporte Aéreo - programación de ESP mediante redes locales inalámbricas