A few months ago, I saw an instructable by fjordcarver on how to build a coloursensor with an RGB led and an LDR. It inspired me to try whether I could improve his design.
Here are the things that I wanted:
- The sensor should have as few pins as possible.
- It should work as a stand-alone device. All calculations should be done on the device.
- It should have a triggered mode and a continuous mode.
- All parameters should be programmable.
- Calibration parameters should be stored in the EEPROM of the microcontroller.
- Firmware updates should be made possible
- And finally: size does matter ⇒ The smaller the better.
I did choose an smd attiny85 as the brain of the sensor. It has a small footprint but a large enough flash for the calculations. It also has just enough pins for the project (all eight pins are used).
One of the problems of the attiny is that it doesn't have a build in bootloader sector. So I needed to find a bootloader that would work on it. I tried a few and most didn't work for me, until I stumbled on the tinyloader bootloader. It's fast and only 256 bytes long and it did the trick. It also allowed me to make a sensor with only 4 pins : Vcc, GND, TX and RX.
I made my sensor with smd parts but you can ofcourse make yours with thru-hole parts
Remove these ads by
Signing UpStep 1: How does it work?
With our led we send 3 different wavelenghts to a surface (aka red, green and blue). The LDR measures how much of each wavelength is reflected and sets its resistance accordingly. The LDR is set up with a 10K resistor as a voltage divider. The resulting voltage for each wavelength is read by the ADC of the microcontroller and the results are 3 bytes, one for each colour.
These 3 bytes can then be used to reconstruct the colour.










































Visit Our Store »
Go Pro Today »




Vraagje, hoe programmeer jij practisch je smd microcontrollers? met een dil kan ik hem in een voetje steken en later weer in de desbtrefefnde schakeling maar met SMD gaat dat wat lastig. Enige tips?
Ik wil, als is het maar om het weer eens een keer te proberen, een smd versie van een attiny85 schakeling proberen.
Als het een project is waar genoeg ruimte is op de print, voorzie ik gewoon programeerpinnen zodat ik een programmer op de print kan aansluiten. Dit werkt gemakkelijk en je kan altijd nog herprogrammeren indien nodig.
Ik heb ook een aantal converters van smd naar dil daanmee kan je je smd microcontroller gewoon inpluggen in je breadboard en daar programmeren en testen. Nadeel is wel dat als de controller eenmaal gesoldeerd is, hij niet meer te programmeren valt.
Een derde methode is met een bootloader zoals beschreven in deze instructable. Ik gebruik het voetje om een bootloader in de controller te programmeren en daarna heb ik maar 2 pinnen nodig op mijn printje om te kunnen programmeren. Dit is handig op extreem kleine printjes en het zorgt er ook voor dat je de reset-pin kan gebruiken voor andere doeleinden. Nadelen zijn dat de bootloader plaats inneemt (hoewel dat op een attiny85 geen probleem mag zijn) en dat je, doordat je de reset-pin afsluit, een high voltage programmer nodig hebt wil je later een andere bootloader ofzo inlezen.
smd8 naar dil8 voetjes zijn voor minder dan 10 euro te koop op ebay en meestal nog gratis verzonden.
Als ik daar dan ook de SPI pinen in heb, is hij ook in die schakeling weer te progarmmeren neem ik aan :-)
Bootloader voor de 85, ja, misschien moet ik dat ook eens proberen. Gaat mij erom dat ik een heel klein schakelingetje kan maken. Nou is het met DIL ook wel klein te maken, maar wilde na 35 jaar weer eens smd proberen. Bovendien hebben ze bij smdshop leuke componenten. Enige wat ik er niet kon vinden was een 5V regulator die meer dan 100-150 mA kan leveren
Nogmaals bedankt
Thanks for info on bootloaders too.
How much have you experimented with different casings for the color sensor?