de:arduino:distant

No renderer 'pdf' found for mode 'pdf'

Entfernungsmessung

Entfernungsmesser messen die Entfernung einiger emittierter Schwingungen (Schall oder Licht), die von einem bestimmten Objekt im Laufe der Zeit reflektiert werden. Von schallbasierten (Sonar-) Entfernungsmessern sind lichtbasierte genauer, und auch hier ist die Lasermessung genauer als die Infrarotreflexionsmessung (im Prinzip, wenn die Hardware zuverlässig ist). Typen:

Schallbasierte (Sonar-) Sensoren
Die technische Lösung English Ultra-Sonic Ranger besteht aus zwei Elementen: einem Lautsprecher (oder Signalgeber), der Schallimpulse abgibt, und einem Mikrofon (Signalempfänger), das deren Reflexion erfasst. Aus der zwischen Ausgabe und Wahrnehmung verstrichenen Zeit kann die Entfernung berechnet werden, indem die Geschwindigkeit der Schallausbreitung bekannt ist. Hierher gehören:

Schema der Triangulationsmethode Infrarot-Abstandssensoren
Der Sensor arbeitet nach der sogenannten Triangulationsmethode. Der Sensor sendet einen schmalen Infrarotlichtstrahl (IR-Lichtwellenlänge 850 nm ± 70 nm) aus. Das emittierte IR-Licht wird von Objekten reflektiert. Der Sensor verwendet eine Optik, um das reflektierte Licht auf ein CCD abzubilden. Je nachdem, wie weit das Ziel entfernt ist, kehrt das reflektierte Licht unter verschiedenen Winkeln zurück und fokussiert entsprechend auf verschiedene CCD-Pixel. Daraus kann bereits die Entfernung ermittelt werden.

Laser-Abstandssensoren
Lasersensoren arbeiten wie IR-Sensoren mit der sogenannten Triangulationsmethode. Der vom Sensor emittierte Laserstrahl, der von der gemessenen Oberfläche reflektiert wird, wird durch eine Linse auf die Oberfläche des CCD- oder CMOS-Lichtsensors des Sensors projiziert. Wenn sich die reflektierende Oberfläche nähert oder bewegt, ändert sich auch die Position des auf den Lichtsensor projizierten Punkts, und die Elektronik bestimmt die Entfernung.

TOF10120 Laser-Distanzsensormodul

Die Entfernungsmessung des TOF10120 wird vom Hersteller mithilfe der Sharp SPAD-Methode (Single Photon Avalanche Diodes) implementiert, die unter Verwendung von CMOS verwendet wird. Es liefert genauere Ergebnisse, ist widerstandsfähiger gegen Umgebungslicht und dank seines optischen Designs ist die Form-Erkennung auch zuverlässiger.Das Modul verwendet für die Messung einen Klasse 1 940-nm-Laser, dessen Erfassungsabstand 10 bis 180 cm beträgt. Sein Ausgang ist UART, seine Kommunikation kann RS-232, I²C oder IIC sein.

  • Erfassungsabstand: 100 .. 1800 mm
  • Stromversorgung: 3 .. 5V DC
  • Stromaufnahme: 35mA
  • Betriebstemperatur: -20 .. +70 ° C.
  • UART: 9600 Baud, 8N1, Flusskontrolle: Keine
  • ①GND Black
  • ②VCC Red
  • ③RXD Yellow
  • ④TXD white
  • ⑤SDA blue
  • ⑥SCL purple

Die Verdrahtung hängt davon ab, ob I²C oder Seriell verwendet wird. Es ist nicht notwendig, alle 6 Drähte gleichzeitig anzuschließen, 4 sollten ausreichen.

TOF10120Arduino pinAnm.
1.feketeArduino GNDGND
2.pirosArduino 5v DC5v DC
3.sárgaPin 1 TxRxD : Muss bei serielle Kommunikation angeschlossen sein
4.fehérPin 0 RxTxD : Muss bei serielle Kommunikation angeschlossen sein
5.kékPin A4SDA : Muss bei I²C angeschlossen sein
6.zöldPin A5SCL : Muss bei I²C angeschlossen sein

Die Verwendung von seriellem Pin 1 Rx und Pin 0 Tx blockiert den seriellen Download und die Verwendung von seriellen Monitoren.

Verdrahtung des Laser-Distanzsensormoduls TOF10120 mit dem Arduino

Die folgende Software verwendet I²C für die Kommunikation, dh Arduino Pin0 und Pin1 müssen nicht gemäß der obigen Tabelle verbunden werden.

Software anzeigen

Software anzeigen

/*
  TOF10120 Distance Sensor Demonstration
  TOF10120-Demo.ino
  Demonstrates use of TOF10120 Distance Sensor
  Adapted from code from SurtrTech
  Displays results on Serial Monitor
 
  DroneBot Workshop 2019
  https://dronebotworkshop.com
*/
 
#include <Wire.h>
 
unsigned char ok_flag;
unsigned char fail_flag;
 
unsigned short lenth_val = 0;
unsigned char i2c_rx_buf[16];
unsigned char dirsend_flag=0;
 
 
void setup() {
  Wire.begin(); 
  Serial.begin(9600,SERIAL_8N1); 
  printf_begin();          
 
}
 
void loop() {
 
 
   int x=ReadDistance();
 
   Serial.print(x);
   Serial.println(" mm");
 
}
 
int serial_putc( char c, struct __file * )
{
  Serial.write( c );
  return c;
}
 
void printf_begin(void)
{
  fdevopen( &serial_putc, 0 );
}
 
 
 
void SensorRead(unsigned char addr,unsigned char* datbuf,unsigned char cnt) 
{
  unsigned short result=0;
  // step 1: instruct sensor to read echoes
  Wire.beginTransmission(82); // transmit to device #82 (0x52)
  // the address specified in the datasheet is 164 (0xa4)
  // but i2c adressing uses the high 7 bits so it's 82
  Wire.write(byte(addr));      // sets distance data address (addr)
  Wire.endTransmission();      // stop transmitting
  // step 2: wait for readings to happen
  delay(1);                   // datasheet suggests at least 30uS
  // step 3: request reading from sensor
  Wire.requestFrom(82, cnt);    // request cnt bytes from slave device #82 (0x52)
  // step 5: receive reading from sensor
  if (cnt <= Wire.available()) { // if two bytes were received
    *datbuf++ = Wire.read();  // receive high byte (overwrites previous reading)
    *datbuf++ = Wire.read(); // receive low byte as lower 8 bits
  }
}
 
int ReadDistance(){
    SensorRead(0x00,i2c_rx_buf,2);
    lenth_val=i2c_rx_buf[0];
    lenth_val=lenth_val<<8;
    lenth_val|=i2c_rx_buf[1];
    delay(300); 
    return lenth_val;
}

GP2Y0A21 IR-Abstandssensoren}
===== Sharp IR-Abstandssensoren =====
{{anchor:gp2y0a21

Sharp Fernsensoren sind beliebt für Projekte, die eine genaue Entfernungsmessung erfordern. Diese Serie von Infrarotsensoren unterscheidet sich von anderen IR-Sensoren durch ihre Zuverlässigkeit. Es kann einfach an Mikrocontroller angeschlossen werden: Ein Analogausgang kann für Entfernungsmessungen an einen Analog-Digital-Wandler angeschlossen werden, oder der Ausgang kann an einen Kompensator zur Schwellenwerterkennung angeschlossen werden.

Der Erfassungsbereich der verschiedenen Versionen beträgt ungefähr 10 cm bis 150 cm; Der Abstand wird von den Maßeinheiten immer auf die Ausgangsspannung abgebildet.

Die meisten Sharp-Modelle verwenden einen 3-poligen JST-Anschluss, der das 3-polige JST-Kabel mit Sharp-Fernsensoren verbindet. Von hinten gesehen sind die drei Verbindungen von links nach rechts Strom (rot), Masse (schwarz) und Ausgangssignal (gelb).

Die Sharp IR-Fernsensoren verwenden einen PSD-Sensor zu messen:

PSD-Sensor

Es ist wichtig zu wissen, dass die Distanz-Spannungs-Umwandlung von Sensoren auch aus Versehen nicht linear ist. Die folgende Abbildung zeigt beispielsweise die Spannungsabstandskurve für GP2Y0A21YK:

Spannungsabstandskurve für GP2Y0A21YK

TypBetriebsspannungStromaufnahmeEntfernungsmessung
Bereich
Hinweis
GP2Y0A60SZ(LF)2 működési mód
3V: 2,7..3,6V
5V: 2,7V..5,5V
33 mA10..150 cmModul: 3V Pololu
Reaktionszeit: 16.5 ± 4 ms
Es hat auch ein Enable-switch
GP2Y0A02(YK0F)4,5..5,5 V33 mA20..150 cmAusgangsspannungsdifferenz im Entfernungsbereich: 2,05 V
Reaktionszeit: 38.3ms ± 9.6ms
GP2Y0A21(YK0F)4,5..5,5 V30 mA10..80 cm (4..32)Vielleicht der am häufigsten verwendete Typ
Ausgangsspannungsdifferenz im Entfernungsbereich: 1,9 V
Reaktionszeit: 38.3ms ± 9.6ms
GP2Y0A41(SK0F)0,4..2,5 V12 mA4..30 cmAusgangsspannungsdifferenz im Entfernungsbereich: 2,3 V
Reaktionszeit: 16.5 ± 4 ms
GP2Y0A51(SK0F)0,4..2,5 V12 mA2..15 cmAusgangsspannungsdifferenz im Entfernungsbereich: 1,65 V
Reaktionszeit: 16.5 ± 4 ms

Sharp IR-Fernsensoren

rot (Stromversorgung): Arduino +5V DC
schwarz (Grund): Arduino GND
gelb (Signal): Arduino Analogeingang

Aufgrund des internen Timings der IR-LED können Interferenzsignale vom Messgerät ausgegeben werden. Um diese zu beseitigen, empfehlen einige, dass Sie einen 1..10μF-Filterkondensator zwischen der Strom- und der Erdungsleitung installieren.

GP2Y0A21(YK0F), GP2Y0A41(SK0F):
Beispielsoftware aus Github: https://github.com/jeroendoggen/Arduino-distance-sensor-library

HC‑SR04

Das Modul leitet die Entfernung durch Messen der Zeit der Schallreflexion ab, d. H. Es arbeitet nach dem Sonarprinzip (wie das Sonar von U-Booten). Natürlich ist dieses Modul auch unter mehreren Namen bekannt, zum Beispiel: SRF04 - Ultra-Sonic Ranger.

Die Messung kann mit einem 10 μs TTL-Impuls gestartet werden. Das Modul sendet dann 8 Zyklen lang 40-kHz-Schallimpulse aus und erkennt dann deren Reflexion mit dem Mikrofon. Die Entfernung beträgt Reaktionszeit (μs) / 58 = Abstand (cm)
oder
Reaktionszeit (μs) / 148 = Abstand (Zoll)

Der Hintergrund dieser Berechnung ist:

Die Entfernung wird durch Beobachtung der Reflexion der Schallwellen gemessen. Bei Kenntnis der Zeit der Emission und der Rückkehr von Schallwellen kann die Zeit der Messung berechnet werden.

HC-SR04 Funktionsprinzip eines Sonarsensors

Dies muss mit der Schallgeschwindigkeit multipliziert werden. Die dafür erforderliche Verdrehung bei der Berechnung besteht darin, dass die Schallgeschwindigkeit auch in Abhängigkeit von atmosphärischem Druck und Temperatur variiert. In diesem Fall wird nur die Temperaturkorrektur in die Berechnung einbezogen. Die dafür erforderliche Formel lautet:

331.5 + 0.6 * t

Wenn beispielsweise die Temperatur 20 °C beträgt, beträgt die Schallausbreitungsgeschwindigkeit 331,5 + 0,6 × 20 = 331,5 + 12 = 343,5 m / s, d.H. 0,03435 cm / us. Daraus kann auch umgerechnet werden, dass Schall 29.112 Mikrosekunden benötigt, um einen Zentimeter zu erzeugen (1 / 0,03435 cm / µs = 29,112 µs / cm). Im Falle von Geräuschen muss natürlich auch die Hin- und Rückfahrt berechnet werden, damit sie oben herauskommt (gerundet):

Reaktionszeit (μs) / 58 = Abstand (cm)

Messungen sollten nicht innerhalb von 60 ms wiederholt werden, da sie sich gegenseitig stören können:

Betrieb von HC-SR04

Die Erfahrung hat gezeigt, dass es ratsam ist, das Modul an die Stromversorgung anzuschließen, damit der Grund (GND) zuerst auf das Modul angewendet wird.

Die Messung wird unsicher, wenn die Reflexionsfläche weniger als 0,5 m² beträgt.

Die meiste Software gibt einen Wert von 0 zurück, wenn die Überwachungszeit ohne Antwort abgelaufen ist (d.H. Der Abstand ist zu groß), was in der Software separat getestet werden muss.

ParameterWert
BetriebsspannungDC 5V
Stromaufnahme15 mA
Betriebsfrequenz40 kHz
Maximale Entfernung4m – sehr theoretisch
Mindestabstand2cm
Messgenauigkeit> 3mm
Messbereich (Winkel)15°
Triggersignal10 μs TTL-Impuls
PinFunktion
VccStromversorgung, 5V DC
Trigping Signal
EchoAntwort (Echo) auf ping
GNDGrund

Arduino 5V ↔ HC-SR04 Vcc
Arduino GND ↔ HC-SR04 Gnd
Arduino pin 11 ↔ HC-SR04 Echo
Arduino pin 12 ↔ HC-SR04 Trig

HC‑SR04 Verdrahtung

Die Bibliothek und Beispielprogramme für das Modul können von Github heruntergeladen werden:

Ultrasonic Abstandsmesssensor Der Sensor, der in Autos als Umkehrradar fungiert, muss ähnlich wie der obige Sensor HC-SR04 verdrahtet und programmiert werden. Dies hat im Gegensatz dazu den Vorteil, dass es über größere Entfernungen erfasst und wasserdicht ist. Technische Daten:

Betriebsspannung: DC 5V
Standby-Stromaufnahme: 5mA
Betriebsstromaufnahme: 30mA
Übertragungsfrequenz: 40KHz
Maximale Entfernung: 5M
Totraum: 25cm
Genauigkeit: 0,5 cm
Betrachtungswinkel: <50 °
Betriebstemperatur: -10 bis 70 ° C
Lagertemperatur: -20 bis 80 ° C
Größe: 41×28,5 mm
Kabellänge: 2,5 m

  • de/arduino/distant.txt
  • 2022/04/21 15:00
  • ()