Tarefa Arduino ultra-som
user_5974404
c_cpp
2 years ago
1.6 kB
7
Indexable
float cm = 0;
long readUltrasonicDistance(int triggerPin, int echoPin)
{
pinMode(8, OUTPUT);
pinMode(triggerPin, OUTPUT);
digitalWrite(triggerPin, LOW);
delayMicroseconds(10);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
pinMode(echoPin, INPUT);
return pulseIn(echoPin, HIGH);
}
void setup()
{
Serial.begin(9600);
}
void loop()
{
cm = 0.01723 * readUltrasonicDistance(7, 7);
if ((cm > 200)&&(cm < 300)) {
digitalWrite(8, HIGH);
tone(8, 440, 200);
delay(300);
digitalWrite(8, LOW);
delay(300);
}
if ((cm > 100)&&(cm < 200)) {
digitalWrite(8, HIGH);
tone(8, 440, 150);
delay(150);
digitalWrite(8, LOW);
delay(150);
}
// Caso a distância medida esteja em 50 e 100 cm, emitir som curto e rápido
if ((cm > 50)&&(cm < 100)) {
digitalWrite(8, HIGH); // Define que o pino 8 está com tensão
tone(8, 440, 80); // Nota Lá (440 Hz)
delay(80); // Aguarda 80 milisegundos
digitalWrite(8, LOW); // Define que o pino 8 está sem tensão
delay(80); // Aguarda 80 milisegundos
}
// Caso a distância medida seja menor do que 50 cm, emitir som contínuo
if (cm < 50) {
digitalWrite(8, HIGH); // Define que o pino 8 está com tensão
tone(8, 440); // Nota Lá (440 Hz)
}
Serial.print(cm); // Imprimir no monitor serial a distância em cm
Serial.println(" cm"); // Imprimir no monitor serial a unidade cm e pular uma linha
delay(100); // Espera por 100 milisegundos (0,1s)
}Editor is loading...
Leave a Comment