//Programa : Detector de cores usando modulo TCS230
//Alteracoes e comentarios : Arduino e Cia
//
//Baseado no programa original de Martin Mason
//Pinos de conexao do modulo TCS230
#include <Servo.h>
Servo motor1;
Servo motor2;
Servo motor3;
Servo motor4;
Servo motor5;
Servo motor6;
const int s0 = 8;
const int s1 = 9;
const int s2 = 12;
const int s3 = 11;
const int out = 10;
//Pinos dos leds
int pinoledverm = 2;
int pinoledverd = 7;
int pinoledazul = 4;
//Variaveis que armazenam o valor das cores
int red = 0;
int green = 0;
int blue = 0;
void setup()
{
motor1.attach(13);
motor2.attach(7);
motor3.attach(6);
motor4.attach(5);
motor5.attach(4);
motor6.attach(3);
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
Serial.begin(9600);
digitalWrite(s0, HIGH);
digitalWrite(s1, HIGH);
}
void loop() {
color(); //Chama a rotina que le as cores
//Mostra no serial monitor os valores detectados
Serial.print("Vermelho :");
Serial.print(red, DEC);
Serial.print(" Verde : ");
Serial.print(green, DEC);
Serial.print(" Azul : ");
Serial.print(blue, DEC);
Serial.println();
//Verifica se a cor vermelha foi detectada
if (red < blue && red < green && red>45)
{
Serial.println("PRETO");
preto();
}
//Verifica se a cor azul foi detectada
else if (blue > red && blue < green && blue<15)
{
Serial.println("BRANCO");
branco();
}
//Verifica se a cor verde foi detectada
else if (green > red && green < blue && green >10)
{
Serial.println("AMARELA");
amarelo();
}
else if (blue < red && blue < green)
{
Serial.println("cor não identificada");
descarte();
}
Serial.println();
delay(500);
}
void color()
{
//Rotina que le o valor das cores
digitalWrite(s2, LOW);
digitalWrite(s3, LOW);
//count OUT, pRed, RED
red = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s3, HIGH);
//count OUT, pBLUE, BLUE
blue = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
digitalWrite(s2, HIGH);
//count OUT, pGreen, GREEN
green = pulseIn(out, digitalRead(out) == HIGH ? LOW : HIGH);
}
void preto()
{
motor1.write(180);
// motor2.write(10);
//motor1.write(180);
// motor4.write(10);
// motor5.write(10);
// motor6.write(10);
}
void amarelo()
{
motor1.write(0);
// motor2.write(10);
//motor1.write(180);
// motor4.write(10);
// motor5.write(10);
// motor6.write(10);
}
void branco()
{
}
void descarte()
{
}
Tags:
Trabalho de TCC ?
Não. é um trabalho, mas não é TCC.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por