Beskrivelse
Fargesensor TCS3200, oppgradert fra TCS230, er en avansert sensor konstruert for nøyaktig deteksjon av synlige farger. Denne sensoren inneholder 64 fotodioder plassert på en enkelt brikke i et 8-pinners SOIC-overflatemonteringspakke. Fotodiodene er inndelt i fire typer:
- 16 fotodioder med rødt filter
- 16 fotodioder med grønt filter
- 16 fotodioder med blått filter
- 16 fotodioder uten filter, tillater all optisk informasjon gjennom
Plasseringen av fotodiodene er designet for å minimere ikke-uniformitet fra innkommende stråling, og øker dermed fargeregistreringens nøyaktighet. Sensoren jobber med to programmerbare pinner for dynamisk valg av ønsket filter. Med en typisk utgangsfrekvens fra 2 Hz til 500 kHz, kan brukere også justere skaleringsfaktoren for sensorens utgang.
Viktige funksjoner og spesifikasjoner:
- Brikke: TCS3200
- Strømforsyning: 3-5V
- Beskyttelse: Motlysskjerming
- LED: Hvit, kan styres av/på
- Gjenkjennelsesegenskap: Kan detektere farge på ikke-lysende objekter
- Dimensjoner: 33mm x 25mm
Pakkeliste: Fargesensor TCS3200-modul x 1
Enkel Testprosedyre: For å sette opp og teste sensoren er det inkludert en testprosedyre med eksempelkode for seriell kommunikasjon. Koden gjør bruk av en 8051 mikrokontroller (som den kjente reg52.h antyder) for å kommunisere med sensoren og sende data gjennom en seriell port.
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit S0 = P1 ^ 0;
sbit S1 = P1 ^ 1;
sbit S2 = P1 ^ 3;
sbit S3 = P1 ^ 4;
sbit OE = P1 ^ 2;
void RS232_init() {
TMOD = 0X20;
SCON = 0x50;
PCON = 0X80;
TH1 = TL1 = 0XFF;
TR1 = 1;
TI = 0;
RI = 0;
}
void send_char(uchar a) {
SBUF = a;
while (TI == 0);
TI = 0;
}
uchar get_char() {
while (RI == 0);
RI = 0;
return SBUF;
}
uint color_display(uchar m) {
uint time, a;
a = m;
TMOD = 0x61;
TH0 = TL0 = 0;
TH1 = TL1 = 0;
S0 = 1;
S1 = 1;
S2 = m & 0x01;
S3 = m & 0x02;
OE = 0;
TR0 = TR1 = 1;
while (TL1 <250);
TR1 = TR0 = 0;
OE = 1;
time = TH0 * 256 + TL0;
return (time);
}
void main() {
uint temp;
RS232_init();
OE = 1;
while (1) {
temp = color_display(get_char());
RS232_init();
send_char(temp / 1000);
send_char(temp % 1000 / 100);
send_char(temp % 100 / 10);
send_char(temp % 10);
}
}
Omtaler
Det er ingen omtaler ennå.