Kód: Vybrať všetko
void setup() {
Serial.begin (9600);
//HC-SR04: GND <--> GND
pinMode(3, INPUT); //HC-SR04: Echo green
pinMode(2, OUTPUT); //HC-SR04: Trig blue
//HC-SR04: VCC <--> 5V
Serial.println("measure_min measure_max measure_mean error distance seconds");
}
int cm; //distance measured by hc_sr04()
//--------------------------------------
int hc_sr04() {
digitalWrite(2,LOW);
delayMicroseconds(2);
digitalWrite(2,HIGH);
delayMicroseconds(10);
digitalWrite(2,LOW);
return int(pulseIn(3,HIGH)/58.2);
}
//--------------------------------------
int do_it() {
int measure_min=999;
int measure_max=0;
int error=0;
unsigned long int total=0;
char format[80];
for(int i1=0;i1<99;++i1) {
int measure=hc_sr04();
if(measure>250) ++error;
else {
if(measure_min>measure) measure_min=measure;
if(measure_max<measure) measure_max=measure;
total+=measure;
}
}
int measure_mean=int(total/100);
int distance=int(total/(100-error));
sprintf(format,"%11d %11d %12d %5d %8d %7d",measure_min,measure_max,measure_mean,error,distance,millis()/1000);
Serial.println(format);
return distance;
}
//--------------------------------------
void loop() {
cm=do_it();
}