Übersetzungen dieser Seite:

Ultraschall Entfernungsmessung mit Arduino Befehlen

Grove - Ultrasonic Modul

Abstände misst man meist mit dem Maßband, dieses lässt sich aber nur schwer an einen Arduino anschließen. Eine Alternative sind Sensormodule wie der Grove-Ultrasonic, welche die Länge einer Strecke per Ultraschall bestimmen können. Wie diese funktionieren, warum man dazu Zeit messen muss und wie sich die Sensoren mit Arduino verwenden lassen - das schauen wir uns an.

Stromversorgung

Die Stromversorgung erfolgt über den Merkurboard Programmer (USB-Seriel Wandler 3.3V). Dieser liefert genug Strom um den Sensor zu versorgen.

Datenanschluss

Stecke den Ultrasonic Ranger an Port D3 des Arduino Grove-Steckers an.

Funktionsweise

Code

/***************************************************************************/
//      Function: Measure the distance to obstacles in front and print the distance
//                        value to the serial terminal.The measured distance is from
//                        the range 0 to 400cm(157 inches).
//      Hardware: Grove - Ultrasonic Ranger
/*****************************************************************************/

extern "C" {
#include "arduino-process.h"
#include "rest-engine.h"
#include "net/netstack.h"
#include "Ultrasonic.h"

extern resource_t res_battery, res_distance;
#define LED_PIN 4    /* LED Pin */

}

Ultrasonic ultrasonic(3);

long RangeInInches;
long RangeInCentimeters;

void setup (void)
{
    // switch off the led
    pinMode(LED_PIN, OUTPUT);
    digitalWrite(LED_PIN, HIGH);
    // init coap resourcen
    rest_init_engine ();
    #pragma GCC diagnostic ignored "-Wwrite-strings"
    rest_activate_resource (&res_battery, "s/battery");
    rest_activate_resource (&res_distance, "s/distance");
    #pragma GCC diagnostic pop
    
    printf("The distance to obstacles in front is: \n");
}

void loop (void)
{
//        RangeInInches = ultrasonic.MeasureInInches();
//        printf(" %ld inch\n",RangeInInches);

        RangeInCentimeters = ultrasonic.MeasureInCentimeters(); // two measurements should keep an interval
        printf(" %ld cm\n",RangeInCentimeters);//0~400cm
}

Hier findest du das Beispielprojekt auf Ardu-Contiki:

https://github.com/osdomotics/ardu-contiki/blob/master/examples/arduino-distance/sketch.pde

Material


de/tutorials/arduino-contiki/grove-ultrasonic.txt · Zuletzt geändert: 2019/04/08 23:08 von harald42