| Abstandsmessung mit 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:
Spannungsteiler Die Ergebnisse des ersten Tests sahen wie folgt aus: 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.
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 Testschaltung 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); } // ----------------------------------------------------------- KurzvideoKurzvideo: Abstandsmessung mit Laser Weitere Themen:
|