Näherungssensor mit Ultraschall und Servo ansteuerung (Automatischer Papierkorb) - AZ-Delivery

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.
Für arduinoProjekte für anfängerSensoren

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