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.
3 comentarios
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
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
Hallo,
ein schoenes Projekt aber wo bekommt man den so einen Papierkorb zu kaufen?
Gruss Toralf