Ultrazvuk - streda 2526

From Krúžok Robotiky CENADA
Jump to navigation Jump to search
#define TRIG 3
#define ECHO 4

void setup() {
  Serial.begin(9600);
  pinMode(TRIG, OUTPUT);
  pinMode(ECHO, INPUT);
}

int meraj()
{
  // 1. vysli 10 usec pulz na pin TRIG
  digitalWrite(TRIG, 1);
  delayMicroseconds(10);
  digitalWrite(TRIG, 0); 
  // 2. cakaj kym sa na ECHO neobjavi hodnota 1 (kym je tam 0, cakaj)
  while (digitalRead(ECHO) == 0) {}  
  // 3. zisti aky je prave cas (funkcia micros()) a zapamataj si ho 
  unsigned long cas1 = micros();
  // 4. cakaj kym sa na ECHO neobjavi hodnota 0 (kym je tam 1, cakaj)
   while (digitalRead(ECHO) == 1) {}  
  // 5. zisti aky je prave cas, premenna cas2
  unsigned long cas2 = micros();
  // 6. vypocitaj vzdialenost v cm  (cas2 - cas1) / 58 a vrat tu hodnotu
  return (cas2 - cas1) / 58;
}

void loop() {
  Serial.println(meraj());
  delay(500);
}