Arduino Automatic Gate Project

Introduction: Arduino Automatic Gate Project

Neste projeto vou simular um portão de um parque de estacionamento, para isso vou usar um sensor ultrassónico para abrir e fechar o portão quando uma distância é atingida.

Step 1: Hardware

- Ultrasonic sensor (sensor ultrassónico)

- Arduino Uno

- Servo Motor

- Jumper cable

Step 2: Como Funciona

O sensor ultrassónico vai detetar, a uma certa distância, um possível objeto que passará em frente do mesmo. O sensor ultrassónico vai enviar uma onda sonora, que ao detetar o objeto, irá fazer ricochete, e fará com que a onda volte para trás, sendo recebida pelo mesmo sensor, isto irá dar instruções ao arduino microcontroller para abrir o portão, depois o arduino vai dar instruções ao servo para abrir o portão a 90º.

Step 3: Conecção Do Sensor Ultrasónico

- Vcc para o 3.3V do arduino

- trig para a porta 4 do arduino

- echo para a porta 6 do arduino

- Gnd para o Gnd do arduino

Step 4: Conecção Do Servo Motor

- fio castanho para Gnd do Arduino

- fio vermelho para o 5V do Arduino

- fio laranja para a porta 9 do Arduino

Step 5: Conclusão

No final deste projeto isto vai ser o aspeto do mesmo.

Neste projeto, qualquer objeto que se atravesse em frente do sensor de distância irá fazer com que o portão se abra.

Isto é apenas uma ideia para uma aplicação simples e divertida.

Step 6: O Código

#include

Servo myservo; const int trigPin=4; // Definir a constante TrigPin como inteira const int echoPin=6; // Definir a constante EchoPin como inteira long tempodur; // Definir a constante Tempodur como long int distancia; // Definir a constante Distancia como Inteira

void setup() {

myservo.attach(9); // porta em que o Motor esta ligada ao Arduino pinMode(trigPin,OUTPUT); //Definir o pino de "disparo do sensor" como output pinMode(echoPin,INPUT); //Definir o pino de "Receção de Informação do sensor" como input Serial.begin(9600); //Iniciar o monitor de série myservo.write(0); //Definir a posição do motor servo nos 0º

}

void loop() { digitalWrite(trigPin,LOW); delayMicroseconds(3); digitalWrite(trigPin,HIGH); delayMicroseconds(11); digitalWrite(trigPin,LOW); //Rotina de Envio e receção de dados do sensor para poder calcular a distancia do objecto (Neste caso o carro) tempodur=pulseIn(echoPin,HIGH); distancia=(0.034*tempodur)/2; //Conversão dos dados do sensor para a unidade de medida de distancia cm

if(distancia<=16){ myservo.write(0); //Quando o valor de distancia estiver menor ou igual a 16 cm o sensor aciona para a posição 0º } else{ myservo.write(90);} // Quando o valor de distancia estiver maior que 16 cm o sensor aciona para a posição 90ª Serial.print("distancia:"); Serial.println(distancia); // Rotina de envio de info da Distancia para o serial monitor delay(1500); // Atraso de 1,5s durante para ciclo de forma a dar tempo ao veiculo de passar debaixo da cancela.

}

Be the First to Share

    Recommendations

    • Box Challenge

      Box Challenge
    • Toys & Games Contest

      Toys & Games Contest
    • Furniture Contest

      Furniture Contest

    Comments