Op facebook hebben we een cool project geplaatst:
https://www.facebook.com/AZDelivery.de/videos/421956858229574/
We laten u hier zien hoe u de elektronica of sensor recreëren.
Wat hebben we nodig:
Microcontroller, compatibel met Arduino UNO R3
Ultrasone sensor HC-SR04
Plug-in bruggen
Servomotor
Ultrasone sensor bij Arduino
Software voor de Arduino
Lange afstand1 = 0; Lange afstand2 = 0; Lange Tijd=0; Int Nummer = 15; Int Waarden[16]; Void Setup() { #define Trigger 3 Arduino Pin 3 naar HC-SR04 Trig #define Echo 2 Arduino Pin 2 naar HC-SR04 Echo Seriële.Beginnen(115200); Seriële Baud-tarief pinMode(LED_BUILTIN, Output); } Void Lus() { Voor (Int I.=0; I. <= Nummer-1; I.++){ Tijd=0; noInterrupts(); Onderbrekingen uitschakelen digitalWrite(Trigger, Lage); delayMicroseconds(3); digitalWrite(Trigger, Hoge); Trigger Pulse 10 ons delayMicroseconds(20); digitalWrite(Trigger, Lage); Tijd = pulseIn(Echo, Hoge); Echotijd meten Interrupts(); Interrupts activeren Waarden[I.] = Tijd; vertraging (1); } afstand1 = 0; Voor (Int I.=0; I. <= Nummer -1; I.++){ afstand1 = afstand1 + Waarden[I.]; } afstand2 = afstand1 / Nummer; Seriële.println(afstand2); Als (afstand2 > 9550){ digitalWrite(LED_BUILTIN, Hoge); Seriële.println("open"); Vertraging(3000); digitalWrite(LED_BUILTIN, Lage); Vertraging(1000); } }
Nu onze Arduino met de ultrasone sensor detecteert ten minste eenmaal als we naderen en toont dit met de ingebouwde LED.
In de volgende stap controleren we een servomotor om het afval te openen.
Nu breiden we onze bedrading uit met een servomotor.
en de software aan te passen:
#include <Servo.H> Servo servo1; Lange afstand1 = 0; Lange afstand2 = 0; Lange Tijd=0; Int Nummer = 15; Int Waarden[16]; Int Aan = 5; Int Op = 95; Void Setup() { #define Trigger 3 Arduino Pin 3 naar HC-SR04 Trig #define Echo 2 Arduino Pin 2 naar HC-SR04 Echo Seriële.Beginnen(115200); Seriële Baud-tarief pinMode(LED_BUILTIN, Output); servo1.Koppelen(8); servo1.Schrijven(Aan); } Void Lus() { Voor (Int I.=0; I. <= Nummer-1; I.++){ Tijd=0; noInterrupts(); Onderbrekingen uitschakelen digitalWrite(Trigger, Lage); delayMicroseconds(3); digitalWrite(Trigger, Hoge); Trigger Pulse 10 ons delayMicroseconds(20); digitalWrite(Trigger, Lage); Tijd = pulseIn(Echo, Hoge); Echotijd meten Interrupts(); Interrupts activeren Waarden[I.] = Tijd; vertraging (1); } afstand1 = 0; Voor (Int I.=0; I. <= Nummer -1; I.++){ afstand1 = afstand1 + Waarden[I.]; } afstand2 = afstand1 / Nummer; Seriële.println(afstand2); Als (afstand2 > 9550){ digitalWrite(LED_BUILTIN, Hoge); Seriële.println("open"); servo1.Schrijven(Op); Vertraging(3000); digitalWrite(LED_BUILTIN, Lage); servo1.Schrijven(Aan); Vertraging(1000); } }
U nu gebruik maken van de sensor en servo motor voor verschillende controles.
Zoals te zien is in de Facebook-video, kan een iris worden geopend.
Wij wensen u veel plezier met de nabijheidssensor en kijken uit naar uw doeleinden.
3 Reacties
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