Tarefa Arduino ultra-som
user_5974404
c_cpp
2 years ago
1.6 kB
5
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