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

Auf facebook haben wir ein cooles Projekt gepostet:

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

Wie ihr die Elektronik, bzw. den Sensor nachbauen könnt zeigen wir euch hier.

 

Was brauchen wir alles:

Arduino UNO R3
Ultraschall Sensor HC-SR04

Steckbrücken
Servo-Motor

 

Ultraschallsensor am Arduino

 

Software für den Arduino

long entfernung1 = 0;
long entfernung2 = 0;
long zeit=0;
int anzahl = 15;
int werte[16];

void setup() {
  #define trigger 3                     // Arduino Pin 3 an HC-SR04 Trig
  #define echo 2                        // Arduino Pin 2 an HC-SR04 Echo
  Serial.begin(115200);                 // Serial Baudrate
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {

  for (int i=0; i <= anzahl-1; i++){
    zeit=0;
    noInterrupts();                     // Deaktivieren von Interrupts
    digitalWrite(trigger, LOW);
    delayMicroseconds(3);
    digitalWrite(trigger, HIGH);        // Trigger Impuls 10 us
    delayMicroseconds(20);
    digitalWrite(trigger, LOW);
    zeit = pulseIn(echo, HIGH);         // Echo-Zeit messen
    interrupts();                       // Aktivieren von Interrupts
    werte[i] = zeit;
    //delay (1);
  }
  entfernung1 = 0;
  for (int i=0; i <= anzahl -1; i++){
    entfernung1 = entfernung1 + werte[i];
  }
  entfernung2 = entfernung1 / anzahl;
  Serial.println(entfernung2);
  if (entfernung2 > 9550){
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.println("open");
    delay(3000);
    digitalWrite(LED_BUILTIN, LOW);
    delay(1000);
  }
}


 

Jetzt erkennt unser Arduino mit dem Ultraschallsensor zumindest schon einmal wenn wir uns nähern und zeigt dies mit der eingebauten LED an.

Im nächsten Schritt steuern wir einen Servomotor an, der den Papierkorb öffnen soll.

Nun erweitern wir unsere Verdrahtung noch um einen Servomotor.

 

 

 und passen die Software an:

#include <Servo.h>
Servo servo1;

long entfernung1 = 0;
long entfernung2 = 0;
long zeit=0;
int anzahl = 15;
int werte[16];
int zu = 5;
int auf = 95;

void setup() {
  #define trigger 3                     // Arduino Pin 3 an HC-SR04 Trig
  #define echo 2                        // Arduino Pin 2 an HC-SR04 Echo
  Serial.begin(115200);                 // Serial Baudrate
  pinMode(LED_BUILTIN, OUTPUT);
  servo1.attach(8);
  servo1.write(zu);
}

void loop() {

  for (int i=0; i <= anzahl-1; i++){
    zeit=0;
    noInterrupts();                     // Deaktivieren von Interrupts
    digitalWrite(trigger, LOW);
    delayMicroseconds(3);
    digitalWrite(trigger, HIGH);        // Trigger Impuls 10 us
    delayMicroseconds(20);
    digitalWrite(trigger, LOW);
    zeit = pulseIn(echo, HIGH);         // Echo-Zeit messen
    interrupts();                       // Aktivieren von Interrupts
    werte[i] = zeit;
    //delay (1);
  }
  entfernung1 = 0;
  for (int i=0; i <= anzahl -1; i++){
    entfernung1 = entfernung1 + werte[i];
  }
  entfernung2 = entfernung1 / anzahl;
  Serial.println(entfernung2);
  if (entfernung2 > 9550){
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.println("open");
    servo1.write(auf);
    delay(3000);
    digitalWrite(LED_BUILTIN, LOW);
    servo1.write(zu);
    delay(1000);
  }
}


Ihr könnt nun den Sensor und Servo-Motor für diverse Ansteuerungen verwenden.
Wie in dem Facebookvideo zu sehen ist, könnte damit eine Iris geöffnet werden.

Wir wünschen euch viel Spass mit dem Näherungssensor und sind gespannt auf eure Einsatzzwecke.
Letzter Artikel Epoxidharz, eine wasserdichte Sache

Kommentar

T.Geffe - August 5, 2018

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

Gruss Toralf

Hinterlasse einen Kommentar

Kommentare müssen vor der Veröffentlichung überprüft werden

Erforderliche Angabe