Ultrasonico - HC-SR04

int trigPin = 2;
int echoPin = A0;
int led = 9;

void setup() {
  Serial.begin(9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(led, OUTPUT);
}

void loop() {
  long tiempo = clacularTiempo();
  long distancia = calcularDistanciaEnCm(tiempo);

  verDistanciaEnMonitorSerial(tiempo);

  //prenderLED(distancia);
  modularLED(distancia);
  delay(10);
}

void verDistanciaEnMonitorSerial(long tiempo) {
  Serial.print(calcularDistanciaEnCm(tiempo));
  Serial.println(" cm");
}

void prenderLED(long distancia) {
  if (distancia < 4) {
    digitalWrite(led,HIGH);
  } else {
    digitalWrite(led,LOW);
  }
}

void modularLED(long distancia) {
  if (distancia <= 34) {
    int intensidad = map(distancia, 0, 34, 0, 255);
    analogWrite(led, intensidad);  
  }
}

long clacularTiempo() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  return pulseIn(echoPin, HIGH); 
}

long calcularDistanciaEnCm(long tiempo) {
  return (tiempo / 2) / 29.1;
}

results matching ""

    No results matching ""