Sketch VL53L0X con display e motore pp
/* 4
Utilizzo del modulo VL53L0X, del display e del motore pp. Si utilizza la nostra libreria Motorstep.
*/
#include <Motorstep.h>
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // Imposta l'indirizzo del display a 0x27 per 16 caratteri per 2 linee
#include <VL53L0X.h>
#define LONG_RANGE
#define HIGH_ACCURACY
VL53L0X sensor;
Motorstep Motorstep (8,9,10,11,25); // Pin utilizzati. Ultima cifra è la pausa in ms
int i;
void setup ()
{
 lcd.init(); // inizializza il display
 lcd.backlight(); //accende la retroilluminazione
 lcd.setCursor(0, 0);
 lcd.print("CORSO ARDUINO ED");

 lcd.setCursor(0, 1);
 lcd.print("ELEM.DI ROBOTICA");
 delay (3000);

 Serial.begin(9600);
 Wire.begin();
sensor.init();
 sensor.setTimeout(500);
 #if defined LONG_RANGE
 sensor.setSignalRateLimit(0.2);
 sensor.setVcselPulsePeriod(VL53L0X ::VcselPeriodPreRange, 18);
 sensor.setVcselPulsePeriod(VL53L0X ::VcselPeriodFinalRange, 14);
 #endif
 #if defined HIGH_ACCURACY
 sensor.setMeasurementTimingBudget(200000);
 #endif

 sensor.startContinuous();
}
void loop ()
{
 for (i = 0; i < 100; ++i) // Ciclo for crescente
 {
 Motorstep.orario(); Serial.print(i); Serial.print("\t");
 Serial.println(sensor.readRangeContinuousMillimeters());
 lcd.clear(); lcd.print(sensor.readRangeContinuousMillimeters());
 }
 delay (3000);
 for (i=100; i > 0; --i) // Ciclo for decrescente
 {
 Motorstep.antiorario(); Serial.print(i); Serial.print("\t");
 Serial.println(sensor.readRangeContinuousMillimeters());
 lcd.clear(); lcd.print(sensor.readRangeContinuousMillimeters());
 }
 delay (3000);
 Serial.println();
}