LBotics.at

Der Ultraschall Abstandssensor SRF10 kommuniziert mit dem Mikrocontroller auf dem Arduino Nano Board über die I2C Schnittstelle. Es können mehrere Sensoren gleichzeitig angeschlossen werden, dabei ist zu beachten, dass diese verschiedene Adressen (OxE0, 0xE2, 0xE4, 0xE6) haben.

Die Berechnung des Abstands erfolgt bereits von einem Mikrocontroller auf der Sensorplatine. Man kann also den Abstand zwischen dem Sensor und einem Objekt direkt vom Sensor auslesen. Zusätzlich bietet dieser Sensor auch noch die Möglichkeit die Verstärkung des Empfängermikrophons und auch die Reichweite des Sensors einzustellen. Nähere Informationen dazu sind im Internet am Datenblatt dieses Sensors zu finden.

Programmbeispiel - Einlesen des Werts eines SRF10 Abstandssensors

Ein SRF10 Abstandssensor ist an einen beliebigen I2C-Port angeschlossen. Der aktuelle Wert des Abstandssensors wird eingelesen und am Display angezeigt.

#include "KeplerBRAIN_V4.h"
 
uint16_t distance;
 
void setup()
{
KEPLERBRAIN_INIT();
WRITE_LCD_TEXT(1, 1, "Entfernung:");
distance = 0;
WRITE_I2C_SRF10(0xE0, 0x04, 0x80);
}
 
void loop()
{
distance = READ_I2C_SRF10(0xE0);
WRITE_LCD_TEXT(1, 2, String(distance));
}
Erklärungen zu diesem Programmbeispiel

Zeile 10: WRITE_I2C_SRF10(0xE0, 0x04, 0x80);

Mit der Funktion WRITE_I2C_SRF10(address, gain, range) werden die Messgenauigkeit gain und der Messbereich range des Sensors konfiguriert.

Mit dem Parameter address wird die I2C Adresse des Sensors festgelegt: 0xE0, 0xE2, 0xE4, 0xE6

Mit dem Parameter gain wird die Verstärkung des Mikrofons (Messgenauigkeit) eingestellt: 0x00 - 0x10, Standardwert 0x04

Mit dem Parameter range wird der Messbereich festgelegt: 0x00 - 0xFF, Standardwert 0x80

Zeile 15: EntfernungWert = READ_I2C_SRF10(0xE0);

Mit der Funktion READ_I2C_SRF10(address) wird der Entfernungswert in cm aus dem Sensor ausgelesen und der Variable EntferungWert zugewiesen.

Mit dem Parameter address wird die I2C Adresse des Sensors festgelegt: 0xE0, 0xE2, 0xE4, 0xE6

Zeile 16: WRITE_LCD_INT(1, 2, EntfernungWert, 4);

Der Wert der Variable EntfernungWert wird in der zweiten Zeile an Position eins ausgegeben. Dabei ist zu berücksichtigen, dass der größte Wert (1023) eine Länge von 4 Zeichen benötigt, weshalb dieser Funktion die Zahl 4 als vierter Parameter übergeben wird.