top of page
PROJETO 08
Diagrama de Blocos
#define RED 4
#define GREEN 5
#define BLUE 6
void setup() {
// put your setup code here, to run once:
pinMode(RED, OUTPUT);
pinMode(BLUE, OUTPUT);
pinMode(GREEN, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
for (int a=0;a<=255;a++){
for (int b=0;b<=255;b++){
for (int c=0;c<=255;c++){
analogWrite(RED, a);
analogWrite(GREEN, b);
analogWrite(BLUE, c);
}
}
}
}
Na internet podemos encontrar tabelas com as diversas combinações de cores para o LED RGB.
#define pinoR 3
#define pinoG 5
#define pinoB 6
//para led anodo comum, caso contrário comentar a linha abaixo e faça ajustes no programa
#define COMMON_ANODE
void setup(){
pinMode(pinoR, OUTPUT);
pinMode(pinoG, OUTPUT);
pinMode(pinoB, OUTPUT);
}
void loop(){
int Vermelho = 0;
//ajuste cor para led ANODO (R,+,G,B)
#ifdef COMMON_ANODE //SE O LED RGB FOR ANODO COMUM
int vR = 255;
int vG = 255;
int vB = 255;
#endif
// vermelho
analogWrite(pinoR, vR-255);
analogWrite(pinoG, vG-0);
analogWrite(pinoB, vB-0);
delay(1000);
// verde
analogWrite(pinoR, vR-0);
analogWrite(pinoG, vG-255);
analogWrite(pinoB, vB-0);
delay(1000);
//azul
analogWrite(pinoR, vR-0);
analogWrite(pinoG, vG-0);
analogWrite(pinoB, vB-255);
delay(1000);
//amarelo
analogWrite(pinoR, vR-255);
analogWrite(pinoG, vG-255);
analogWrite(pinoB, vB-0);
delay(1000);
//azul aqua
analogWrite(pinoR, vR-0);
analogWrite(pinoG, vG-255);
analogWrite(pinoB, vB-255);
delay(1000);
}
Figura MD35 - Protótipo de 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 - Projeto 08 - 1 Sensor
// 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);
}
}
}
Exercício
Desenvolver um projeto utilizando potenciômetro e um LED RGB.
bottom of page