top of page

Projeto - 08

Desenvolver um projeto utilizando dois sensores de distância ultrassônico e um micro servo para simular a abertura de uma cancela.

01 - Arduino Mega 2560
01 - Protoboard
02 - Sensor de Distância Ultrassônico
01 - Micro Servo 9g
01 - LED RGB
03 - Resistor de 220Ω para o LED
 Jumpers

Componentes

Qtd | Descrição

-LED RGB (RED na porta 3, GREEN na porta 5, BLUE na porta 6).
-Sensor Ultrassônico 1: VCC conectado em 5V, o trigger (saída) na porta digital 8, o echo (entrada) na porta 7, o GND no GDN do Arduino.
-Sensor Ultrassônico 2: VCC conectado em 5V, o trigger (saída) na porta digital 10, o echo (entrada) na porta 9, o GND no GDN do Arduino.
 
Para os sensores é necessário instalar a biblioteca #include Ultrasonic.h
Informar os dados para o arduino:
Sensor(Porta de Saída, Porta de Entrada)
 
-Micro servo na porta digital 11.
É necessário instalar a biblioteca
#include <Servo.h> para utilizar o Micro Servo.

Instruções

Conhecimentos

Observação:
-

Diagrama de Blocos

Diagrama de Blocos

Protótipo do Circuito

Projeto 08

#include <Ultrasonic.h>
#include <Servo.h>
#define servo1 11
#define red 4
#define green 5
#define blue 6
//Define os pinos para o trigger e echo
Ultrasonic sensor1(8,7);
Ultrasonic sensor2(10,9);
Servo s1;
long distanciaSensor1, distanciaSensor2;
int pos1; //posicao do servo
 
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(red, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(green, OUTPUT); 
  s1.attach(servo1);
  s1.write(0); // Iniciar servo 1 na posição zero
}
 
void loop() {
  // put your main code here, to run repeatedly:            
  digitalWrite(red, HIGH); 
  digitalWrite(green, LOW);
  digitalWrite(blue, LOW); 
  distanciaSensor1 = sensor1.Ranging(CM); //retorna em CM
  delay(20);  
  while (distanciaSensor1 < 20) {
        for (pos1 = 0; pos1 < 90; pos1++) {
            s1.write(pos1);
            delay(40);       
        }  
        distanciaSensor1 = sensor1.Ranging(CM);    
        distanciaSensor2 = sensor2.Ranging(CM);    
        while (distanciaSensor1 < 20 || distanciaSensor2 < 20) {    
           digitalWrite(red, LOW); 
           digitalWrite(GREEN, HIGH);
           digitalWrite(BLUE, LOW);        
           distanciaSensor1 = sensor1.Ranging(CM);    
           distanciaSensor2 = sensor2.Ranging(CM);    
        }
        digitalWrite(RED, HIGH); 
        digitalWrite(GREEN, LOW);
        digitalWrite(BLUE, LOW);
        for(pos1 = 90; pos1 > 0; pos1--)
        {
          s1.write(pos1);
          delay(40);      
        }   
  }
 
}

Código

// programa para 1 sensor
#include <Ultrasonic.h>
#include <Servo.h>
#define servo1 11 
#define red 3
#define green 5
#define blue 6
//Define os pinos para o trigger e echo
Ultrasonic sensor1(8,7);
Servo s1;
long distanciaSensor1;
int pos1; //posicao do servo
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(red, OUTPUT);
  pinMode(blue, OUTPUT);
  pinMode(green, OUTPUT);  
  s1.attach(servo1);
  s1.write(0); // Iniciar servo 1 na posição zero
}
void loop() {
  // put your main code here, to run repeatedly: 
  int valor = 255; // para rgb anodo            
  digitalWrite(red, valor-255);  
  digitalWrite(green, valor - 0);
  digitalWrite(blue, valor - 0);  
  distanciaSensor1 = sensor1.Ranging(CM); //retorna em CM 
  delay(20);   
  Serial.println(distanciaSensor1);             
  while (distanciaSensor1 < 20) {
        for (pos1 = 0; pos1 < 90; pos1++) {
            s1.write(pos1);
            delay(40);        
        }   
        distanciaSensor1 = sensor1.Ranging(CM);        
        while (distanciaSensor1 < 20 ) {     
           digitalWrite(red, valor-0);  
           digitalWrite(green, valor-255);
           digitalWrite(blue, valor-0);         
           distanciaSensor1 = sensor1.Ranging(CM);                
        }
        digitalWrite(red, valor-255);  
        digitalWrite(green, valor - 0);
        digitalWrite(blue, valor - 0);  
        for(pos1 = 90; pos1 > 0; pos1--)
        {
          s1.write(pos1);
          delay(40);       
        }    
  }
}

Código - 1 Sensor

bottom of page