sexta-feira, 7 de agosto de 2015

Usando o sensor RGB TCS230 (sensor de cor) no Arduino

Sistemas de classificação por cores, sistemas de detecção de cores e etc.


A ligação com o Arduino é simples e o código já está pronto em formato de biblioteca que pode ser importada sem maiores complicações e adaptada para qualquer tipo de aplicação.

Vamos já para o que interessa:

Ligue o pino Vcc do sensor em um pino 5V do Arduino. Ligue também o pino GND do sensor a um pino GND do Arduino.


Ligue o pino OE do sensor ao pino digital 8 do Arduino.


Ligue o pino S2 do sensor ao pino digital 12 do Arduino e o pino S3 do sensor ao pino digital 13 do Arduino.


Ligue o pino OUT do sensor ao pino digital 2 do Arduino.


Pronto. Com todas as ligações feitas vamos para a programação.

Precisaremos de uma biblioteca própria para usar esse sensor, ela pode ser baixada aqui.
Após fazer o download da biblioteca copie-a na pasta LIBRARIES no local onde sua IDE Arduino está instalada.
Abra a IDE do Arduino, vá ao menu FILE, em seguida em EXAMPLES, ai deve haver uma sub-opção MD_TCS230, selecione o exemplo SIMPLE_NB_TCS230. O código será:


// TCS230 sensor reading example
//
// This is just to show basic functionality without calibration.
// Utilises the non-blocking version of the reading function.
// Output uses the Serial console.
//
#include 
#include >
 
// Pin definitions
#define  S2_OUT  12
#define  S3_OUT  13
#define  OE_OUT   8    // LOW = ENABLED 
 
MD_TCS230  CS(S2_OUT, S3_OUT, OE_OUT);
 
void setup() 
{
 Serial.begin(57600);
 Serial.println("[TCS230 Simple NON_BLOCKING Example]");
 Serial.println("\nMove the sensor to different color to see the RGB value");
 Serial.println("Note: These values are being read in without sensor calibration");
 Serial.println("and are likely to be far from reality");
 
 CS.begin();
}
 
void readSensor()
{
 static  bool  waiting;
 
 if (!waiting)
 {
 CS.read();
 waiting = true;
 }
 else
 {
 if (CS.available()) 
 {
 colorData  rgb;
 
 CS.getRGB(&rgb);
 Serial.print("RGB [");
 Serial.print(rgb.value[TCS230_RGB_R]);
 Serial.print(",");
 Serial.print(rgb.value[TCS230_RGB_G]);
 Serial.print(",");
 Serial.print(rgb.value[TCS230_RGB_B]);
 Serial.println("]");
 
 waiting = false;
 }
 }
}
 
void loop() 
{
 readSensor();
}

Ligue o Arduino ao computador, você verá que os LEDs do sensor serão acionados assim como o sensor será ligado.


Faça upload desse scketch em seu Arduino e para ver tudo funcionar, basta abrir o Serial Monitor, mas ajuste a taxa de transmissão de dados para 57600 BAUDS.
Aproxime seu sensor à objetos coloridos e veja a resposta com codificação decimal RGB
← Postagem mais recente Postagem mais antiga → Página inicial

0 comentários:

Postar um comentário