Olá, sou iniciante na programação de arduino, e precisava criar um projeto, no qual consiste em um sensor ultrassonico que lê a distância, e se detectar um objeto a menos de 70 cm, aguarda 3 segundos e aciona a saída 10 por 200ms, e quando o objeto se afasta, a saída 9 é acionada por 200ms.
Falai @PeMarchezi, cara posta ai seu código e tuas duvidas que teremos o imenso prazer em te ajudar.
Bloco de Citação
#include “Ultrasonic.h” //INCLUSÃO DA BIBLIOTECA NECESSÁRIA PARA FUNCIONAMENTO DO CÓDIGO
const int echoPin = 6; //PINO DIGITAL UTILIZADO PELO HC-SR04 ECHO(RECEBE)
const int trigPin = 7; //PINO DIGITAL UTILIZADO PELO HC-SR04 TRIG(ENVIA)
const int pinoAv = 10; //PINO DIGITAL EM QUE RELE DE AVANÇO ESTÁ CONECTADO
const int pinoRc = 9; //PINO DIGITAL EM QUE O RELE DE RECUO ESTÁ CONECTADO
Ultrasonic ultrasonic(trigPin,echoPin); //INICIALIZANDO OS PINOS
int distancia; //CRIA UMA VARIÁVEL CHAMADA “distancia” DO TIPO INTEIRO
void setup(){
// inicia a comunicação serial com 9600 bits por segundo:
Serial.begin(9600);
pinMode(echoPin, INPUT); //DEFINE O PINO COMO ENTRADA (RECEBE)
pinMode(trigPin, OUTPUT); //DEFINE O PINO COMO SAÍDA (ENVIA)
pinMode(pinoRc, OUTPUT); //DECLARA O PINO COMO SENDO SAÍDA
pinMode(pinoAv, OUTPUT);//DECLARA O PINO COMO SENDO SAÍDA
}
void loop(){
hcsr04(); // FAZ A CHAMADA DO MÉTODO “hcsr04()”
if(distancia <= 70){// SE A DISTÂNCIA ENTRE O OBJETO E O SENSOR ULTRASONICO FOR MENOR QUE 70CM, FAZ
delay(3000);
digitalWrite(10, LOW);;//ACIONA O RELE DE AVANÇO
delay(200);
digitalWrite(10, HIGH);
a=a+1;
delay(5000);
digitalWrite(9,LOW);
delay(200);
digitalWrite(9,HIGH);
}
}
//MÉTODO RESPONSÁVEL POR CALCULAR A DISTÂNCIA
void hcsr04(){
digitalWrite(trigPin, LOW); //SETA O PINO 6 COM UM PULSO BAIXO “LOW”
delayMicroseconds(2); // DELAY DE 2 MICROSSEGUNDOS
digitalWrite(trigPin, HIGH); //SETA O PINO 6 COM PULSO ALTO “HIGH”
delayMicroseconds(10); // DELAY DE 10 MICROSSEGUNDOS
digitalWrite(trigPin, LOW); //SETA O PINO 6 COM PULSO BAIXO “LOW” NOVAMENTE
// FUNÇÃO RANGING, FAZ A CONVERSÃO DO TEMPO DE
//RESPOSTA DO ECHO EM CENTÍMETROS E ARMAZENA
//NA VARIÁVEL “distancia”
distancia = (ultrasonic.Ranging(CM)); // VARIÁVEL GLOBAL RECEBE O VALOR DA DISTÂNCIA MEDIDA
delay(500); //INTERVALO DE 500 MILISSEGUNDOS
Serial.println(distancia);
delay(1);
}
Bloco de Citação