Coil mit Kupferdraht


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Abstandsmessung mit Keyence-Laser


Mit der folgenden Schaltung verlassen wir für eine Weile die Welt der Hobbybastler und machen einen kurzen Ausflug in die Welt der Profis. Am Beispiel von einfachen elektronischen Hobby-Sensoren kann man durchaus das Prinzip der Funktionalität solcher Geber erläutern. Wo jedoch Zuverlässigkeit, Genauigkeit und Robustheit gefragt werden, werden professionelle Sensoren, die für private Personen nur bedingt erhältlich sind, eingesetzt. Diesmal holen wir uns auf den Experimentiertisch einen solchen professionellen Sensor, mit dem wir Entfernung messen wollen. Den großen Unterschied zwischen „Hobby“ und „Profi“ kann man in diesem Fall bereits am Preis erkennen. Auf der einen Seite steht unsere Hobby-Gerätschaft, die man bereits für 20 Euro zusammenstellen kann. Auf der anderen ein Sensor, für den man tief in die Tasche greifen und nach Listenpreis bis zu 1000 Euro auf den Tisch legen muss.

Keyence Laser

Keyence Laser LR-TB5000CL

Bei dem Sensor LR-TB5000CL handelt es sich um einen Laser der japanischen Firma Keyence. Der Sensor misst die Entfernungen im Bereich von 50 bis 5000 mm und ist mit zwei E/A-Anschlüssen, die parametrierbar sind, ausgestattet. Je nach Bedarf können sie digitale oder analoge Signale ausgeben. Die möglichen Einstellungen sind:

1 - Out1+Out2 (Ausgang 1 / Ausgang 2)
2 – Input+Out1 (Externe Eingang / Ausgang 1)
3 – Out1+Analog (Ausgang 1 / Analogausgang)
4 – Input+Analog (Externer Eingang / Analogausgang)

Die digitalen E/As können wahlweise als NPN oder PNP definiert werden. Der analoge Ausgang kann als 4-20 mA oder 0-10 V analoger Ausgang fungieren. Hier einige technische Daten des Sensors:

Spannungsversorgung : 20 – 30 VDC
Messabstand: 50-5000 mm
Stromverbrauch: max 50 mA
Temperatur: -20 bis +55 °C

Für den Versuch wählen wir die dritte Alternative: Out1 + Analog. Der analoge Ausgang wird für 0-10 V parametriert. Der digitale Ausgang wird auf PNP eingestellt. Die maximale Entfernung beträgt in dem Versuch 500 mm.
Mit der Schaltung werden wir Entfernung messen und auf zwei Ausgabegeräten die Ergebnisse beobachten. Der Keyence-Sensor verfügt über eigenes Display, auf dem man die aktuelle Entfernung ablesen kann. Mit einem Maßband oder Zollstock kann schnell festgestellt werden, dass der Sensor einwandfrei funktioniert und richtige Ergebnisse liefert.
Sein zweiter Ausgang wurde als analoger Ausgang, der 0-10V liefern soll, definiert. Das Signal wird zu dem analogen Eingang A0 des Arduino geführt. Die Spannung ist für Arduino jedoch zu hoch, seine Pins vertragen lediglich 5 V. Hier kommt ein einfacher Spannungsteiler, der dem Arduino-Pin vorgeschaltet wird, zum Einsatz. Der Spannungsteiler, bestehend aus zwei gleichen Widerständen, soll die Sensorspannung halbieren. Die tatsächlichen Werte der beiden Widerstände weichen von den Nennwerten (10k) ein wenig ab. Auf Ergebnisse dürfte das aber keinen großen Einfluss haben.

Spannungsteiler

Spannungsteiler

Die Ergebnisse des ersten Tests sahen wie folgt aus:

Ergebnisse

Ergebnisse

Betrachtet man die Ergebnisse etwas genauer, stellt man fest, dass große Abweichungen im Spiel sind. Bei der Entfernung von 250 mm (gemessene Spannung 2,49 V) müsste der am Pin A0 ausgelese Wert bei 1023 / 2 =~ 511 und nicht 539 liegen. Bei allen anderen Werten (ausgenommen die erste Messung) sind ebenfalls Abweichungen, die im Schnitt bei 5,5 % liegen, festzustellen. Und tatsächlich: Arduino liefert den Wert 1023 bereits bei einer Spannung von ca. 4,7 V statt erst bei 5 V.
Um das Problem zu beseitigen, muss der Spannungsteiler etwas umgebaut werden. Hier muss man dafür sorgen, dass bei einem Sensorsignal von 10 V der Spannungsteiler eine Spannung von ca. 4,7 V zum Arduino schickt. Der neue Spannungsteiler sieht jetzt wie folgt aus:

Spannungsteiler mit Poti

Spannungsteiler mit Poti

Das LCD-Display 20x4 stellt das zweite Ausgabegerät dar. Hier werden die von Arduino am Pin A0 ausgelesene Werte, die Spannung und der auf der Basis errechneter Abstand zum Testobjekt angezeigt. Zusätzlich wird an den Ausgang Out1 des Lasers eine Leuchtdiode, die bei dem Abstand von 250 mm angehen soll, angeschlossen. Die komplette Versuchsanordnung sieht wie folgt aus:

Schaltplan

Schaltplan

Testschaltung

Testschaltung

Laser Lichtpunkt

Laser Lichtpunkt (Durchmesser einstellbar)

Das Programm (Sketch)

Mit dem Befehl „analogRead(AnalogPin)“ wird der aktuelle Spannungswert am anlogen Eingang A0 des Arduino ausgelesen. Der Wert, in einen digitalen Wert umgewandelt (5V=1023), wird auf dem Display angezeigt. Von diesem Wert ausgehend, wird die aktuelle Spannung und der Abstand zum Testobjekt berechnet und ebenfalls angezeigt.

// --------------------------------------------------------
// Abstandsmessung mit Laser
// Laser Keyence LR-TB5000CL
// Arduino Nano, IDE 1.8.12
// --------------------------------------------------------

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,20,4);  // LCD Parameter
int AnalogPin = A0;
long AnalogWert = 0;
char Ausgabe [4];
long Spannung = 0;
long Abstand = 0;

void setup() {

    lcd.init();                      // Display initialisieren 
    lcd.backlight();                 // Hintergrundbeleuchtung
    lcd.setCursor(2,0);              // Cursor Position
    lcd.print("Abstandsmessung");    // Displayausgabe
    lcd.setCursor(0,1);              
    lcd.print("Wert:");        
    lcd.setCursor(0,2);
    lcd.print("Spannung:   ,  V");
    lcd.setCursor(0,3);
    lcd.print("Abstand:       mm"); }

void loop() {

                  // Ausgabe analoger Wert ....................
    AnalogWert = analogRead(AnalogPin);
    sprintf(Ausgabe,"%4i", analogRead(AnalogPin));  
    lcd.setCursor(10,1);
    lcd.print(Ausgabe);
    
                  // Spannung .................................
    Spannung = analogRead(AnalogPin);
    Spannung = Spannung * 489 / 10000;                  
    sprintf(Ausgabe,"%2i", Spannung);
    lcd.setCursor(11,2);
    lcd.print(Ausgabe[0]);
    lcd.setCursor(13,2);
    lcd.print(Ausgabe[1]);
    
                  // Abstand .................................
    Abstand = analogRead(AnalogPin);           
    Abstand = Abstand * 1000 / 2046;
    sprintf(Ausgabe,"%4i", Abstand);  
    lcd.setCursor(10,3);
    lcd.print(Ausgabe);
    
    delay (300);
}

// -----------------------------------------------------------
    

Kurzvideo

Kurzvideo: Abstandsmessung mit Laser


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz