Componentes
| Qtd | Descrição |
|---|---|
| 01 | Arduino Mega 2560 → |
| 01 | Protoboard→ |
| 01 | LED RGB→ |
| 03 | Resistores 220Ω para o Led→ |
| 01 | Micro Servo Motor 9g (SG90)→ |
| 02 | Sensores de Distância Ultrassônico (HC-SR04)→ |
| - | Jumpers→ |
Instruções
- 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.
Conhecimentos Requeridos
Observações Técnicas
-
Diagrama de Blocos
Protótipo do Circuito
Código do Projeto
Baixar .INO
#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 do Projeto - 1 SENSOR
Baixar .INO
#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);
}
}
}