Arduino Als ISP
AtmoLight
Functie Generator
I2C Displays
ISP Bus - Digitale Potmeter
ISP Bus - 12 bit ADC
ISP Bus - 12 bit DAC
Rotary Encoder
YM2413
Arduino_SmartPhone
Bluetooth Tank
Kleurensensor
Robot_lijnvolger
Useless Machine
People_in_Space
EEPROM programmer
lichtkrant
Spectrumanalyzer
Robot Project
Automatische_LED
Spionage_Robot
Balancerende_robot
Relais_op_afstand
Tekstklok
Kerst_Die_Hard
Aftellen2021
woordklok
Dark_Awesom-o
C64_en_Awesomo
Home
Kleurensensor op Arduino!
In deze video expirimenteer ik met een kleursensor, de TCS230 TCS3200 Color sensor.
Deze sensor is goed verkrijgbaar via ebay, gebruik de zoektermen: Arduino TCS230 TCS3200 Color sensor
Schema
In de video gebruik ik dit schema (klik om te vergroten)
Sketch
In de video gebruik ik de volgende sketch
/* TCS230 Arduino Pins VCC 5V GND GND s0 GND s1 5V s2 3 s3 2 OUT 4 OE GND */ #include
#define ps2 3 #define ps3 2 #define pout 4 #define RGB_out 8 #define NUMPIXELS 1 // I only use ONE of the neopixels on the strip int red = 0; int green = 0; int blue = 0; Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, RGB_out, NEO_GRB + NEO_KHZ800); void setup() { Serial.begin(9600); pinMode(ps2, OUTPUT); pinMode(ps3, OUTPUT); pinMode(pout, INPUT); pinMode(RGB_out, OUTPUT); pixels.begin(); } void loop() { char tmp[3]; get_color(); pixels.setPixelColor(0, pixels.Color(red,green,blue)); pixels.show(); // This next bit sends the values ion HEX format back to the PC sprintf(tmp, "%02X", blue); Serial.print(tmp); sprintf(tmp, "%02X", green); Serial.print(tmp); sprintf(tmp, "%02X", red); Serial.print(tmp); Serial.println(); delay(100); } void get_color() { // S2 S3 Filter // 0 0 red // 0 1 blue // 1 1 green digitalWrite(ps2, LOW); // set filter to red digitalWrite(ps3, LOW); // set filter to red while(digitalRead(pout)){}; // wait for output to go LOW red = pulseIn(pout, LOW); // get the value for red digitalWrite(ps3, HIGH); // set filter to blue while(digitalRead(pout)){}; // wait for output to go LOW blue = pulseIn(pout, LOW); // get the value for blue digitalWrite(ps2, HIGH); // set filter to green while(digitalRead(pout)){}; // wait for output to go LOW green = pulseIn(pout, LOW); // get the value for green red=constrain(red,192,5200); // limit the values of r,g, and b green=constrain(green,202,5200); blue=constrain(blue,145,3800); red = map(red,192,5200,255,0); // remap the values so they fit into an 8 bit scale (0..255) green = map(green,202,5200,255,0); blue = map(blue,145,3800,255,0); }
De Video
Bekijk de video voor meer informatie!