Circuito detector de cores com código Arduino

Neste post, vamos construir um circuito que pode detectar cores e ativar os respectivos relés atribuídos. Este projeto é realizado com o sensor de cores TCS3200 e a placa Arduino.

Detecção de cores pelo TCS3200

Se você não leu o artigo anterior, confira onde discutimos a noções básicas de detecção de cores com o TCS3200

O projeto proposto pode ser útil se você desejar que um circuito faça medições com base nas cores. Existem oceanos de aplicações baseadas na detecção de cores em vários campos industriais.

Este projeto dará uma idéia de como podemos programar o sensor de cores para detectar cores diferentes e ativar os relés.

Vamos considerar as cores primárias: VERMELHO, VERDE e AZUL para este projeto. Este projeto pode diferenciar essas três cores e ativar os relés, cada relé para cada cor.

O TCS3200 pode detectar qualquer número de cores, mas, para que o projeto seja compreensível e o código do programa seja simples, estamos nos concentrando apenas nas cores primárias.

Diagrama de circuito:

Interface do sensor de cores Arduino e TCS3200

O esquema acima é para a interface do sensor de cores Arduino e TCS3200.

Conexões de relé:

Conexões de relé do sensor de cores Arduino e TCS3200

Ligue o Arduino com um adaptador de 9V com pelo menos 500mA. O transistor atua como um amplificador para o relé, já que os pinos GPIO do Arduino não podem fornecer corrente suficiente para retransmitir.

O diodo 1N4007 absorve picos de alta tensão da bobina do relé, protegendo o restante dos componentes semicondutores.

Isso conclui o hardware.

Agora vamos ver como carregar o código e calibrar o sensor de acordo com seus requisitos.
A sensibilidade da cor pode variar de módulo para módulo, e a luz ambiente pode alterar drasticamente a sensibilidade da cor.

Todos os sensores do TCS3200 têm alguma variação durante a fabricação. Você precisa medir os parâmetros de cores do sensor que você possui atualmente, para que esses parâmetros possam ser usados ​​no código para detectar cores com mais precisão.

Para calibrar e otimizar as leituras do sensor, siga as etapas com precisão:

Etapa 1: carregue o seguinte código com a configuração completa de hardware.

//--------------Program Developed by R.GIRISH--------------//
const int s0 = 4;
const int s1 = 5;
const int s2 = 6;
const int s3 = 7;
const int out = 8;
int frequency1 = 0;
int frequency2 = 0;
int frequency3 = 0;
int state = LOW;
int state1 = LOW;
int state2 = HIGH;
void setup()
{
Serial.begin(9600);
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
//----Scaling Frequency 20%-----//
digitalWrite(s0, state2);
digitalWrite(s1, state1);
//-----------------------------//
}
void loop()
{
//-----Sensing RED colour-----//
digitalWrite(s2, state1);
digitalWrite(s3, state1);
frequency1 = pulseIn(out, state);
Serial.print("RED = ");
Serial.print(frequency1);
Serial.print(" |");
delay(100);
//------Sensing Green colour----//
digitalWrite(s2, state2);
digitalWrite(s3, state2);
frequency2 = pulseIn(out, state);
Serial.print(" Green = ");
Serial.print(frequency2);
Serial.print(" |");
delay(100);
//------Sensing Blue colour----//
digitalWrite(s2, state1);
digitalWrite(s3, state2);
frequency3 = pulseIn(out, state);
Serial.print(" Blue = ");
Serial.println(frequency3);
delay(100);
Serial.println("---------------------------------------");
delay(400);
}
//--------------Program Developed by R.GIRISH--------------//

Etapa 2: Abra o monitor serial, você encontrará os parâmetros de cores como este:

1590354991 161 circuito detector de cores com codigo arduino projetos de

Traga o objeto colorido (preferencialmente papel colorido) vermelho, azul e verde.

Etapa 3:

• Coloque o papel colorido vermelho perto do sensor TCS3200.
• Anote as leituras R, G, B (todas as três cores) enquanto carrega o papel vermelho.
• Registre a leitura R, G, B da mesma forma para papéis verde e azul.

• NOTA: Ao colocar qualquer uma das três cores na frente do TCS3200, anote todas as leituras de vermelho, azul e verde de cada papel colorido, que devem ser inseridas no programa principal de detecção de cores.

Etapa 4: Leia a Etapa 5 e carregue o código principal abaixo (programa de detecção de cores)

//--------------Program Developed by R.GIRISH--------------//
const int Red_relay = 9;
const int Green_relay = 10;
const int Blue_relay = 11;
const int s0 = 4;
const int s1 = 5;
const int s2 = 6;
const int s3 = 7;
const int out = 8;
int var = 25;
int red = 0;
int green = 0;
int blue = 0;
int state = LOW;
int state1 = LOW;
int state2 = HIGH;
//----------------------Enter Values-----------------//
//For RED Colour:
int Rx1 = 92;
int Gx1 = 240;
int Bx1 = 53;
//For GREEN Colour:
int Rx2 = 228;
int Gx2 = 163;
int Bx2 = 64;
//For BLUE Colour:
int Rx3 = 300;
int Gx3 = 144;
int Bx3 = 45;
//---------------------------------------------------//
void setup()
{
Serial.begin(9600);
pinMode(Red_relay, OUTPUT);
pinMode(Green_relay, OUTPUT);
pinMode(Blue_relay, OUTPUT);
digitalWrite(Red_relay, LOW);
digitalWrite(Green_relay, LOW);
digitalWrite(Blue_relay, LOW);
pinMode(s0, OUTPUT);
pinMode(s1, OUTPUT);
pinMode(s2, OUTPUT);
pinMode(s3, OUTPUT);
pinMode(out, INPUT);
//----Scaling Frequency 20%-----//
digitalWrite(s0, state2);
digitalWrite(s1, state1);
//-----------------------------//
}
void loop()
{
int redH1 = Rx1 + var;
int redL1 = Rx1 - var;
int redH2 = Rx2 + var;
int redL2 = Rx2 - var;
int redH3 = Rx3 + var;
int redL3 = Rx3 - var;
int blueH1 = Bx1 + var;
int blueL1 = Bx1 - var;
int blueH2 = Bx2 + var;
int blueL2 = Bx2 - var;
int blueH3 = Bx3 + var;
int blueL3 = Bx3 - var;
int greenH1 = Gx1 + var;
int greenL1 = Gx1 - var;
int greenH2 = Gx2 + var;
int greenL2 = Gx2 - var;
int greenH3 = Gx3 + var;
int greenL3 = Gx3 - var;
//-----Sensing RED colour-----//
digitalWrite(s2, state1);
digitalWrite(s3, state1);
red = pulseIn(out, state);
delay(100);
//------Sensing Green colour----//
digitalWrite(s2, state2);
digitalWrite(s3, state2);
green = pulseIn(out, state); ;
delay(100);
//------Sensing Blue colour----//
digitalWrite(s2, state1);
digitalWrite(s3, state2);
blue = pulseIn(out, state);
delay(400);
if(red <= redH1 && red >= redL1)
{
if(green <= greenH1 && green >= greenL1)
{
if(blue <= blueH1 && blue >= blueL1)
{
Serial.println("Detected Colour: RED");
Serial.println("");
digitalWrite(Red_relay, HIGH);
delay(1000);
}
}
}
if(red <= redH2 && red >= redL2)
{
if(green <= greenH2 && green >= greenL2)
{
if(blue <= blueH2 && blue >= blueL2)
{
Serial.println("Detected Colour: Green");
Serial.println("");
digitalWrite(Green_relay, HIGH);
delay(1000);
}
}
}
if(red <= redH3 && red >= redL3)
{
if(green <= greenH3 && green >= greenL3)
{
if(blue <= blueH3 && blue >= blueL3)
{
Serial.println("Detected Colour: Blue");
Serial.println("");
digitalWrite(Blue_relay, HIGH);
delay(1000);
}
}
}
}
//--------------Program Developed by R.GIRISH--------------//

Etapa 5: No código acima, substitua os valores pelos valores que você anotou recentemente:

//-- -- -- -- -- -- -- -- -- -- -- Enter Values-- -- -- -- -- -- -- -- -//
//For RED Colour:
int Rx1 = 92;
int Gx1 = 240;
int Bx1 = 53;
//For GREEN Colour:
int Rx2 = 228;
int Gx2 = 163;
int Bx2 = 64;
//For BLUE Colour:
int Rx3 = 300;
int Gx3 = 144;
int Bx3 = 45;
//-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -//

Ao colocar o papel colorido vermelho no sensor, você teria três leituras, por exemplo R = 56 | G = 78 | B = 38.

Coloque os valores 56, 78, 38 assim:

// Para a cor VERMELHA:
int Rx1 = 56;
int Gx1 = 78;
int Bx1 = 38;

Da mesma forma, para duas outras cores e faça o upload do código.

Etapa 6:

• Abra o monitor serial e coloque qualquer uma das três cores na frente do sensor.
• Você verá a detecção de cores no monitor serial; simultaneamente, o relé de cores correspondente é ativado.

1590354991 904 circuito detector de cores com codigo arduino projetos de

• Você pressionou o botão de reset na placa do Arduino para desativar o relé.

NOTA 1: As cores podem não ser detectadas pelo circuito se você colocar uma tonalidade / tonalidade ligeiramente diferente do papel de objeto / cor VERMELHO / VERDE / AZUL após a calibração. Em outras palavras, você deve usar exatamente o mesmo objeto / papel de cor para detectar cores e ativar o relé.

NOTA 2: A luz ambiente pode afetar a detecção de cores, portanto, mantenha uma luz constante próxima ao sensor durante a calibração e também ao detectar cores.

Protótipo do autor:

Protótipo do sensor de cores Arduino

Se você tiver alguma dúvida sobre este projeto, expresse na seção de comentários, você pode obter uma resposta rápida.



FONTE

Nota: Este foi traduzido do Inglês para português (auto)

Pode conter erros de tradução

Olá, se tiver algum erro de tradução (AUTO), falta de link para download etc…

Veja na FONTE até ser revisado o post.

Status (Não Revisado)

Se tiver algum erro coloque nos comentários

Mas se gostou compartilhe!!!


Veja mais

Axtudo
Axtudohttps://www.axtudo.com/
“Solidários, seremos união. Separados uns dos outros seremos pontos de vista. Juntos, alcançaremos a realização de nossos propósitos.” (Bezerra de Menezes)

Comentários

DEIXE UMA RESPOSTA

Por favor digite seu comentário!
Por favor, digite seu nome aqui

Compartilhe

Últimos Posts

00:02:22

VOU ENSINAR A PROFISSÃO DO FUTURO PRA ELE –...

#VOU #ENSINAR #PROFISSÃO #FUTURO #PRA #ELE #Tiago #Fonseca FAÇA PARTE DA COMUNIDADE SECRETA- link➤https:dominacaodigital.com.br/video1/ Neste vídeo Tiago Fonseca...
00:10:39

STROGONOFF DE SALSICHA SIMPLES, FÁCIL, RÁPIDO E DELICIOSO

Nesse vídeo te ensino a fazer um Strogonoff de Salsicha super diferente mas que é muito simples, fácil, rápido de fazer e muito Delicioso....
00:02:18

COMPREI UM PRESENTE PARA ELE! com Tiago Fonseca.

#COMPREI #PRESENTE #PARA #ELE #Tiago #Fonseca FAÇA PARTE DA COMUNIDADE SECRETA- link➤https:dominacaodigital.com.br/video1/ Neste vídeo o nosso convidado eucomprei um presente para um entregador, veja o porque...

Moto G9 Plus ENFIM com Câmeras Boas e um...

#Moto #ENFIM #Câmeras #Boas #Design #Lindo #REVIEW #CanalJMS CLICA AQUI PRA SE INSCREVER 💚→ link➤http:goo.gl/vSPsIH Assista...

COMO CONSEGUIR MILHARES DE ACESSOS NOS PRIMEIROS MINUTOS

#COMO #CONSEGUIR #MILHARES #ACESSOS #NOS #PRIMEIROS #MINUTOS Leadlovers: link➤http:amoleads.com/leadlovers-peterj Copymaker: link➤https:amoleads.com/copymaker-peterj Os primeiros minutos de um post, seja ele...

O Luxo e a sofisticação dos Weintraub – Um...

#Luxo #sofisticação #dos #Weintraub #abraço #Lusa #para #Presidente #nossa #nova #aquisição FONTE - Duração...