Der Touch-Sensor ist dafür ausgelegt mechanische Berührungen rückmelden zu können. Der Sensor liefert den Wert 1, wenn dieser gedrückt ist und 0, wenn dieser nicht gedrückt ist.
Programmbeispiel - Entscheidungsabfrage und Touch-Sensor
Das Einlesen von Sensoren erfolgt in der Regel innerhalb einer Schleife. Oft wird der Zustand oder der Wert eines Sensors eingelesen und dann mit einer Entscheidungsabfrage darauf reagiert. Am Eingang 1 ist ein EV3 Touch-Sensor angeschlossen. Wird der Sensor gedrückt, so leuchtet die LED am EV3 Brick grün, wird der Sensor nicht gedrückt, leuchtet die LED rot.
#include "evclibrary.h"
int main()
{
// 1. Konfiguration der angeschlossenen Sensoren und Motoren
SET_IN(IN_1, IN_EV3_TOUCH);
// 2. Initialisierung des EV3 Brick
EVC_INIT();
// 3. Steuerung des Roboters
while (NOTEXITBUTTON)
{
if (READ_IN(IN_1)==1)
{
WRITE_LED(LED_GREEN);
}
else
{
WRITE_LED(LED_RED);
}
}
// 4. Programmende
EVC_CLOSE();
return 0;
}
Erklärungen zu diesem Programmbeispiel
Zeile 5: SET_IN(IN_1, IN_EV3_TOUCH);
Mit der Funktion SET_IN(port, value) wird festgelegt, welcher Sensor an einem Eingang angeschlossen ist.
Der Parameter port beschreibt die Nummer des Eingangs: IN_1, IN_2, IN_3 oder IN_4.
Mit dem Parameter value wird der Typ des Sensors festgelegt: IN_EV3_TOUCH, IN_EV3_LIGHT, IN_EV3_COLOR, IN_EV3_SONAR, IN_EV3_GYRO
Zeile 11: if (READ_IN(IN_1)==1)
In der Bedingung dieser Entscheidungsabfrage wird die Funktion READ_IN(port) aufgerufen. Als Rückgabewert liefert diese Funktion den aktuellen Wert des angeschlossenen Sensors. Dieser kann bei einem Touch-Sensor 0 oder 1 sein.
Anschließend wird überprüft, ob der Rückgabewert gleich 1 ist. Das bedeutet bei einem Touch- Sensor, dass dieser gedrückt ist.
Wenn ja, wird die Funktion WRITE_LED(LED_GREEN) aufgerufen und die LED leuchtet grün.
Ist die Bedingung nicht erfüllt, werden die Anweisungen ausgeführt, die zwischen den geschwungenen Klammern nach dem Schüsselwort else stehen – hier: WRITE_LED(LED_RED)