Ozeki Matrix Ultrasonic Control Code

Ultrasonic sensors measure distance with ultrasonic waves. It measures timeframe from emitting sound until receiving the rebounced soundwaves. By knowing the soundspeed (340.29m/s), the ultrasonic controller can calculate the distance in 0.01cm accuracy. You can always ask the current distance between any object and the sensor. This a perfect tool for building small robots.

required hardware
Figure 1 - Ozeki Ultrasonic Module with Ultrasonic sensor(s)

Required hardware

Source code to install on controller


Before you upload this code to your Arduino, please format the EEPROM...
#include <OzIDManager.h>
#include <OzUltraSonicSensor.h>

// global pointers
OzIDManager* manager;
OzUltraSonicSensor* ultraSonicSensor_01;
OzUltraSonicSensor* ultraSonicSensor_02;
OzUltraSonicSensor* ultraSonicSensor_03;
OzUltraSonicSensor* ultraSonicSensor_04;

const int triggerPin_01 = 14;
const int echoPin_01 = 15;
const int triggerPin_02 = 4;
const int echoPin_02 = 2;
const int triggerPin_03 = 5;
const int echoPin_03 = 3;
const int triggerPin_04 = 8;
const int echoPin_04 = 9;

void setup()
{
  Serial.begin(115200);

  manager = new OzIDManager;
  manager->_sendACK = true;
  manager->_checksum = true;

  OzCommunication::setIDManager(manager);

  ultraSonicSensor_01 = new OzUltraSonicSensor(triggerPin_01, echoPin_01);
  ultraSonicSensor_02 = new OzUltraSonicSensor(triggerPin_02, echoPin_02);
  ultraSonicSensor_03 = new OzUltraSonicSensor(triggerPin_03, echoPin_03);
  ultraSonicSensor_04 = new OzUltraSonicSensor(triggerPin_04, echoPin_04);

  int x=1;
  manager->sendLinkSetup();
  manager->PrintWelcomeLine(ultraSonicSensor_01, x++, "Ultra_1");
  manager->PrintWelcomeLine(ultraSonicSensor_02, x++, "Ultra_2");
  manager->PrintWelcomeLine(ultraSonicSensor_03, x++, "Ultra_3");
  manager->PrintWelcomeLine(ultraSonicSensor_04, x++, "Ultra_4");

  Serial.println("c=welcome&type=OzMatrixUltraSonic&id=OZMULT");
}

void loop()
{
  ultraSonicSensor_01->ownLoop();
  ultraSonicSensor_02->ownLoop();
  ultraSonicSensor_03->ownLoop();
  ultraSonicSensor_04->ownLoop();

  OzCommunication::communicate();
}

More information