Arduino Color Sensors - TCS230 & ISL29125

Sdílet
Vložit
  • čas přidán 24. 07. 2024
  • In today's colorful episode we will learn to calibrate and use the TCS230 and ISL29125 Color Sensors with an Arduino.
    Article with code at dronebotworkshop.com/arduino-...
    More tutorials and projects at dronebotworkshop.com
    Discuss this on the Forum at forum.dronebotworkshop.com
    Join the newsletter - dronebotworkshop.com/subscribe/
    Today we will be working with two different color sensors. I’ll show you how they work, how to hook them up, how to calibrate them, and how to extract RGB values from them.
    The TCS230 (also known as the TCS3200) is a popular and inexpensive color sensor that operates on a wide voltage range. It outputs a square wave whose frequency reflects the color intensity.
    The Sparkfun ISL29125 is a more capable sensor that provides a 16-bit digital output using the I2C bus. It also has a programmable interrupt feature that you can set to trigger in response to a specific color.
    Both of these sensors will be useful in designing color-following robots, Rubik's Cube solvers or jelly bean sorters. But before you use them you’ll need to calibrate them.
    I’ll show you how to calibrate the sensors and then use that calibration data to extract actual RGB values from them.
    Here is what we will be covering today:
    00:00 - Introduction
    01:15 - Color Sensor Operation
    02:51 - TCS230 Intro
    05:31 - TCS230 Arduino Hookup
    06:18 - TCS230 Calibration
    12:10 - TCS230 RGB Extract
    17:26 - ISL29125 Intro
    19:52 - ISL29125 Arduino Hookup
    21:46- ISL29125 Library & Calibration
    27:19 - ISL29125 RGB Extract
    You’ll find an accompanying article to this video at dbot.ws/color, along with all of the code I used.
    I hope that you enjoy this video and that it adds some color into your life!
    Thanks for watching!
  • Jak na to + styl

Komentáře • 99

  • @scottwood1143
    @scottwood1143 Před 4 lety +11

    Wow, lots of great info here. It was good to have the demo and explanation of the calibration process, and then show how to normalize the sensor data for useful output. I’ll definitely have rewatch to understand better, and follow the link to the article. Always appreciate the time and effort you put into these projects. Thank you!

  • @tilmanaboeck6706
    @tilmanaboeck6706 Před 4 lety +10

    To me the best tutorial channel by far. Thank you so much for your work.

  • @WayneHe15
    @WayneHe15 Před 2 lety

    Thanks a lot. This helps my one of my current project.

  • @pareshmhatre4019
    @pareshmhatre4019 Před 4 lety +1

    Very detailed information
    Best video!

  • @pfow2006
    @pfow2006 Před 4 lety +1

    another great vid Bill, cant wait for break up so I can catch up on all your vids, and maybe some time to play with some hard ware

  • @TheMcdrewb
    @TheMcdrewb Před 4 lety

    That is a nice workshop

  • @MikeBramm
    @MikeBramm Před 4 lety +6

    Nice tutorial. Now I have a craving for jelly beans.

  • @pfow2006
    @pfow2006 Před 4 lety

    wow you've really added more content.

  • @tinkmarshino
    @tinkmarshino Před 4 lety +1

    Bill you never cease to amaze me.. the subjects you choose to talk about... it is like you have some kind of direct connection to this scrambled brain of mine.. Many time I will have a discussion with or friend or another about something and there it is.. on your site .. Do me a favor next time your in there if you see the loose wire on my internat gps could you re solder it.. I seem to be having problems with my directions these days.. thanks my friend.. carry on.. it's all good!

  • @tpobrienjr
    @tpobrienjr Před 4 lety +1

    This is a good, very complete explanation of rgb sensing. My imaginary robot would use such a sensor and software to follow the red line through a room, ignoring the lines of other colors. Fun.

  • @youandi995
    @youandi995 Před 2 lety

    Best explanation for how colour sensors works👍

  • @austinchang4891
    @austinchang4891 Před 4 lety

    Great video

  • @rethinkscience8454
    @rethinkscience8454 Před 4 lety +1

    Can you make a 3d measuring scanner probe which will digitise the real time space within a room

  • @jurgenpurps9720
    @jurgenpurps9720 Před 8 měsíci

    Wie immer ein tolles Tutorial - man kann sich immer auf deine Ausführungen verlassen - ich bin wie immer begeistert.

  • @estianhattingh3624
    @estianhattingh3624 Před 4 lety

    Love your vids😍😋

  • @sledgeHammerRulez
    @sledgeHammerRulez Před 4 lety

    Tx professor arduino :p I just bought such color sensor and was looking for just this info. IOU! I will use it to retrieve the position of my garage door, together with colored tape ... But first I will finish (3D designing & printing) my 2 powerbenches from your other videos. KUTGV(ideos)!!

  • @JohnClulow
    @JohnClulow Před 4 lety +3

    I love this channel -- so glad I happened upon it. I'm looking forward to doing a project using the Spark Fun module you covered or perhaps a newer TCS offering, 34725, which has an IR filter. Commercial instruments I've used frequently use a 45°-0 angle of illumination relative to the angle of observation which is at 90° with respect to the plane of the subject as in your video. With the illuminant at a 45°, specular reflectance is minimized and diffuse reflectance maximized (angle of incidence = angle of reflection) so that the sensor sees less contamination from the white illuminant.

  • @hughaskew6550
    @hughaskew6550 Před 4 lety +1

    Why are the readings of the PW values so variable?

  • @wolfgangboettcher3126
    @wolfgangboettcher3126 Před 4 lety

    Das wird richtig interessant

  • @aberateklehaimanot9804

    Thank you.

  • @valtherkjaer7129
    @valtherkjaer7129 Před 4 lety

    Hello
    I know my question doesn't relate to the today subject
    Is there any way it possible to see which software there are flashed into an arduino (eg. grbl 09 or 1,1) thanks in advance

  • @dotancohen
    @dotancohen Před 4 lety +3

    @21:30 Why isn't the 3.3v ground connected also to the Arduino's ground? If I'm not mistaken, the logic level board's GND pin is to get a reference ground to compare to 3.3, not to provide a reference ground for the connected device.

  • @raahimirfan5996
    @raahimirfan5996 Před 4 lety +1

    Can I please know which animation software or video editing software is used here 1:15
    Thanks in advance!

  • @WhoWantsToKnow81
    @WhoWantsToKnow81 Před 4 lety +1

    Excellent! This will be very useful for a candy bot that I hope to make (one day) :)

  • @startobytes
    @startobytes Před 4 lety

    Hi could you make it with you about the nrf24l01 Module and how to Connect it with the Arduino Uno?!

  • @vaughnscott1856
    @vaughnscott1856 Před 4 lety

    My favorite

  • @valtherkjaer7129
    @valtherkjaer7129 Před 4 lety

    whats the difference between to download(to run a sketch) or flash a bootloader a grbl

  • @defaulta51
    @defaulta51 Před 10 měsíci

    Is there a way to boost the distance say for instance i wanna point a laser at something and it tells me the color?

  • @xianyingzhang1106
    @xianyingzhang1106 Před rokem

    Awesome, taught me a lot, thank you so much

  • @il400
    @il400 Před 3 lety

    is it possible to use two isl29125's at the same time? my arduino is seeing both of them as the same address, i understand why but i'd like to know if there is a work around

  • @joseyanez2342
    @joseyanez2342 Před 4 lety

    Can I calibrate ISL29125 sensor with an recently calibrated sRGB monitor and then calibrate an RGB LED?.

  • @wishicouldarduino8880
    @wishicouldarduino8880 Před 4 lety

    You know better than doing anything to do with color or LEDs now i m gonna have a hundred of these things on the duce robot but it will be fun😁👍🌞

  • @busybraintinkering465
    @busybraintinkering465 Před 6 měsíci

    I'm in the process of making a bead sorter for my kids, but those beads are tiny! How would you approach that tiny read area? Ive thought about fiber optic, but im afraid there are to much loss and hard to attach the fiber to the sensor (TCS3200 in my case), or a focal lens, but im unsure how to focus it. Any advice?

  • @javierzarba4206
    @javierzarba4206 Před 4 měsíci

    Great video, but i have a question: i saw that you try the sensors placing the colour papers very close to them (to the sensors i mean). Is there a maximun distance to which they lose accuracy? and if so, where can i find this info? i would like to test the sensors in a wider distance. Thanks!

  • @techsl1829
    @techsl1829 Před rokem

    Let me know, can it use single sensor LED instead of four 4 led to detect small point

  • @davitkooliver3856
    @davitkooliver3856 Před 2 lety

    How can I set different pins if I want use other than A4 and A5 ? For example A0 and A1.

  • @mastermoarman
    @mastermoarman Před 4 lety

    Have you considered trying a adafruit TCS34725

  • @creativekitties2741
    @creativekitties2741 Před 2 lety

    I love your videos. Thanks for the good info! Great channel btw super underrated. 😊😸

  • @perfectpakka8151
    @perfectpakka8151 Před 3 lety

    Someone pls help me!
    Can I use ISL29125 as a optical receiver (or as an alternate to a Photodiode)?
    How much will be maximum distance so between the sensor and the subject so that it will be able to sense properly?

  • @eastbandit23
    @eastbandit23 Před 4 měsíci

    Question
    Will the sensor still give out values if you remove the led lights?
    Thanks

  • @tatianasilatchom200
    @tatianasilatchom200 Před 2 lety

    please these are what values ​​you are getting as output? I would like to know

  • @devanshubansal3144
    @devanshubansal3144 Před 4 měsíci

    can i interface arduino uno directly with ISL29125 sensor without logic controller b/se I don't have that one?

  • @andymouse
    @andymouse Před 4 lety

    great!

  • @marcelbron6128
    @marcelbron6128 Před 4 lety +1

    I reall appreciate your work, thank you very much. I have a question about the constrain command for the ISL29125 sensor. Why is it set to 255 (8 bits?) when the sensor is capable of producing a 16 bits value of 65536 ? Thanks for your efforts and time, kind regards from the Netherlands.

  • @skillerlarva8270
    @skillerlarva8270 Před rokem

    Sir do you have modul library fritzing TCS230/3200 , If you have I need

  • @Abdelhamid_Helal
    @Abdelhamid_Helal Před 3 lety

    Why didn't you add this video in playlist? Sometimes , I don't find some videos in playlist.

  • @taruntanwar8369
    @taruntanwar8369 Před 2 lety

    Is it able to detect dust color?

  • @littlesmallmook5406
    @littlesmallmook5406 Před 3 lety

    10:16 What is the unit of those value?

  • @shaheerahmed4746
    @shaheerahmed4746 Před rokem

    can w make this exact circuit using arduino nano?

  • @ArifRahman-ex2vx
    @ArifRahman-ex2vx Před 2 lety

    Sir, is it possible to make white colour censor scissor

  • @awaagrikh8331
    @awaagrikh8331 Před 2 lety

    hi, can it detect color of liquid?

  • @surenbono6063
    @surenbono6063 Před 10 měsíci

    ..how to software decode color in SD card file at certain coordinate on that file?... Example: decode timezone & country name with GPS coor on a 2d color world map file just by software..

  • @farougshiyab
    @farougshiyab Před rokem

    Hello...
    I have a project that needs a color recognition sensor with longer Detection distance(400 mm)

  • @GJGAMES
    @GJGAMES Před 3 lety

    This really helped my i tried to make a color sorter for my finally school project but i couldnt get it done. so i had a raspberry pi but i couldnt find any info on how to do it with raspberry pi. so i bought an arduino i watched your video a second time and finally got it. Now im probably able to do this with a raspberry to because i know understand why i have to use that raw data code and how to. so i subscribed and liked.

  • @quadracycle4000
    @quadracycle4000 Před 4 lety

    Could've used the plotter for those, no?

  • @bahrilnugroho1474
    @bahrilnugroho1474 Před 4 lety

    i get negative value for dark brown, i calibrated the sensor using dark roasting coffee bean and light roasting coffee bean , can you tell me the reasin why i got negative values? please i really appreciate if anyone can help me

  • @bahrilnugroho1474
    @bahrilnugroho1474 Před 3 lety

    when i check the black colour , the value showed negative , what happen? please help , thankyou

  • @johnflores8810
    @johnflores8810 Před rokem

    Can I make multiple color sensor in just one arduino board ?

  • @premprasad3511
    @premprasad3511 Před 3 lety +1

    Excellent tutorial again ! I cannot understand one point though: How to choose the frequency scaling value ? Yes, it is 20% for arduino, but what is the basis ? What if I have a another controller like say a microbit ? How about a raspberry pi ? Any response will be very much appreciated !

  • @Al_Maha_Alateef
    @Al_Maha_Alateef Před 2 měsíci

    I want this dataset how to get it from you?

  • @scotchcrofter9964
    @scotchcrofter9964 Před 4 lety

    Cool

  • @muhammadaqil2869
    @muhammadaqil2869 Před 3 lety +1

    perfect tutor...would you plz make tut for HSL or HSV color sensing using ISL censors?

  • @henrikjensen3278
    @henrikjensen3278 Před 4 lety +1

    I recently needed a color sensor and found one called TCS34725, it is also a digital sensor like the ISL29125, but has a 5V interface on the module and a white led. Because I needed the color I made a function to return the hue (from the color circle), it is much more useful when wanting to detect a specific color.
    To detect blueish I can use "if (hue>240-30 & hue

    • @cyabd8515
      @cyabd8515 Před 2 lety

      Can you explain this more please, I'm also interested to use the Hues thanks.

  • @GMan12321
    @GMan12321 Před 4 lety +3

    Love your channel. Questions.. Why must we use the logic converter for the second sensor, if we can make it work without it? Strengths and weaknesses of using a logic converter for such a circuit?

    • @kissingfrogs
      @kissingfrogs Před 4 lety +3

      Is that level shifter? or logic converter? Assuming level shifter then I think a level shifter/converter attempts to ensure that the 0-5v outputs are accurately level shifted for the 0-3.3v inputs. There are other ways to do this with various associated tradeoffs.

  • @EwertonMoreira80
    @EwertonMoreira80 Před 3 lety

    Will it work with liquids?

  • @4STEVEJOY34
    @4STEVEJOY34 Před 4 lety

    Have you done a video on using a "#-Channel Relay Module" with an Arduino? Working my way through all your videos. Thanks

  • @papageorgiou4355
    @papageorgiou4355 Před 3 lety +1

    2 questions, first why you use 255 as you max and not 65535 which is the max of the data type that you are using (int) to have a better resolution, and second why you selected 20% width scaling? i think the arduino wouldnt have any problem for the 100% which based on the datasheet of the sensor has a typical value of 600khz

    • @cyabd8515
      @cyabd8515 Před 2 lety +1

      I wish he would answer these questions

  • @VenujanSrithar
    @VenujanSrithar Před měsícem

    Sometimes I got values for white is more than 255 like 270 and for black I got in minus (-188) why ?

  • @basemaus3728
    @basemaus3728 Před 4 lety

    I have hooked my tc3200 sensor up, just like you described it and used your code,
    i am receiving data from it, but the rgb values stay 0,0,0,
    also, the leds won't turn on.
    Could you or anyone give me some advice to fix it?
    because i don't know whats wrong

    • @Oh-ou4lp
      @Oh-ou4lp Před 3 lety

      Check that its wired right, if it is then led should light up mine had 2 out of 4 the other 2 were in backwords(thanks china)

  • @dotancohen
    @dotancohen Před 4 lety +2

    Hi Bill! At @20:15 there are four white LED lamps used for illumination. Instead of powering each one via a resistor, wouldn't it be better to power them two in serial with a smaller 100Ω resistor? The 100Ω will prevent a power surge when the LEDs are initially powered and have little resistance, and after that the circuit will use much less power.

  • @jump_on_it8381
    @jump_on_it8381 Před rokem

    Hi!, I'm new to the arduino and am wondering if you could use analog pins instead of digital pins for the connecting of the colour sensor.

  • @arjunps8349
    @arjunps8349 Před 3 lety +1

    Why am I always getting FFFF from isl29121

  • @byronwatkins2591
    @byronwatkins2591 Před 4 lety +1

    If the delay is to allow the sensor to stabilize, why do you read the sensor BEFORE it stabilizes? I would think that select color, stabilize, and then measure would be the correct order.

  • @syedshozab3305
    @syedshozab3305 Před 4 lety +1

    Can we calibrate the sensor for other than red,green an blue color?what changes would be required in the code?

  • @julienmina7276
    @julienmina7276 Před 4 lety

    💎🌲🥇 perfect

  • @noZionism1
    @noZionism1 Před 4 lety

    Hello,
    one question please, can I use ESP8266 instead Arduino uno controller? Which pins can be used for sda and scl?
    Thanks a lot!
    Nidal

  • @theronsosachavez2757
    @theronsosachavez2757 Před rokem

    Is there a way to know the wave length of the light detected in nano meters once we have received the values of the sensor?

  • @hariharankrishnan7189
    @hariharankrishnan7189 Před 2 lety

    Dear Sir! Thank you for the tutorial. I have a doubt. @21:19 How to test, whether my ISL29125 sensor hardware works fine or not? Is there any way to check it? Currently, I have Uno, TXB0108 Bi-directional Level Shifter and ISL29125 sensor wired up and I couldn't able to observe any readings on my Serial Monitor? Can you please help in troubleshooting the sensor? Thanks and Love from India...

  • @tinsp253
    @tinsp253 Před rokem

    Hi, hope everything goes well. May I ask if this sensor able to sense the color of the water?

  • @hazqier
    @hazqier Před 2 lety

    Is it normal for me to get values up in the hundreds?
    Regardless of the values, after calibration, the RBG values seems to be accurate. Thank you for the tutorial.

  • @wolfgangboettcher3126
    @wolfgangboettcher3126 Před 4 lety

    Ok nicht vergessen den helper programmer

  • @user-oi2ny9jf8l
    @user-oi2ny9jf8l Před 3 lety

    有没有翻译官

  • @nextwave5164
    @nextwave5164 Před 3 lety

    RGB(0,0,0) = black RGB(255,255,255) = white. The output from functions confused me for a sec, then i thought .. return 255 - PW = more sense .. just me though ;)

  • @poepflater
    @poepflater Před 3 lety

    all LEDs are photo diodes and can be used as inputs as well as outputs... Going to let you think about that for a second.

  • @slakjawnotsayin5451
    @slakjawnotsayin5451 Před rokem +1

    Darn, I was hoping the sensors wouldn't need a delay to stabilize, and would be able to pick up a colored light as it passes by the sensor quickly.

  • @wolfgangboettcher3126
    @wolfgangboettcher3126 Před 4 lety

    Ich weiß der Sensor ist in Ofen verbaut

  • @marielysbrijaldo9237
    @marielysbrijaldo9237 Před 3 lety

    Nice video but have a doubt. When you´re explaining the redPW, greenPW, bluePW functions i think you got wrong. You defined S2 & S3 as LOW (both) in redPW function which is cool, but you switched S2 & S3´values in greenPW and bluePW functions and I wonder why?
    I mean, as you explained before we have to set-up
    - for RED: S2(LOW) & S3 (LOW)
    - for GREEN: S2(L) & S3(H) *
    - for BLUE: S2(H) & S3(H) *
    In the GREEN and BLUE cases you coded it different. I don´t know if I´m explaining my doubt well.

  • @yuvigerstein
    @yuvigerstein Před 2 lety

    1.5x

  • @paulabraham2550
    @paulabraham2550 Před 4 lety

    Using the constraints in this test program is not a good idea - you want to know if you are getting out of range values. For example the 0, 0, 0 values for black looks perfect but you cannot know that you're not masking huge negative values there and that the calibration is actually way out.
    You'd probably need it in the final application, though.

    • @kamii3783
      @kamii3783 Před 3 lety

      So, how would you do it? it would be very helpful

  • @420Sumanta
    @420Sumanta Před 11 měsíci

    I think the white LEDs have impurity and the code needs something called as "gamma correction" or "white balancing" to cancel out the influence of the blue tinted white LEDs.

  • @big_guy9604
    @big_guy9604 Před 4 lety

    Not nearly as interesting as Ground Hog Day. Silly......