De blogpost van vandaag die we willen gebruiken om TCS-kleurensensormodule Introduceren. De functie wordt snel uitgelegd, in het midden van het bord is er een fotosensor met 64 diodes of pixels, 16 van hen zonder filters en 16 elk met rode, blauwe of groene kleurfilters. De 4 5mm leds worden gebruikt om het te scannen object zo gelijkmatig en neutraal mogelijk te verlichten. Praktische tip: voor meting moet u omgevingslicht of strooilicht vermijden, omdat dit de resultaten kan vervormen. Afhankelijk van de toepassing is het soms handig om de fotosensor af te schermen met een klein buisje om constante waarden te verkrijgen.
De output van de IC is een rechthoekssignaal evenredig met de respectievelijke golflengte. S0 en S1 schalen de frequentie van het uitgangssignaal, S2 en S3 worden gebruikt om de R/B/G- en W-waarden op te vragen.OE schakelt de module in of uit (inschakelen actief laag)
De bedrading:
De code:
Const Int s0 = 8; Pinnen Const Int s1 = 9; Const Int s2 = 12; Const Int s3 = 11; Const Int Uit = 10; Int Rode = 0; Var Int Groene = 0; Int Blauwe = 0; Void Setup() { Seriële.Beginnen(115200); pinMode(s0, Output); pinMode(s1, Output); pinMode(s2, Output); pinMode(s3, Output); pinMode(Uit, Input); digitalWrite(s0, Hoge); ingestelde modus digitalWrite(s1, Hoge); } Void Lus() { Kleur(); Seriële.Afdrukken("rood = "); Seriële.Afdrukken(Rode, Dec); Seriële.Afdrukken(" groen = "); Seriële.Afdrukken(Groene, Dec); Seriële.Afdrukken(" blauw = "); Seriële.Afdrukken(Blauwe, Dec); Als (Rode < Blauwe && Rode < Groene && Rode < 20) rood filter { Seriële.println(" - (rode kleur gedetecteerd)"); } Anders Als (Blauwe < Rode && Blauwe < Groene) blauw filter { Seriële.println(" - (blauwe kleur gedetecteerd)"); } Anders Als (Groene < Rode && Groene < Blauwe) groen filter { Seriële.println(" - (groene kleur gedetecteerd)"); } Anders { Seriële.println(); } Vertraging(400); } Void Kleur() { digitalWrite(s2, Lage); digitalWrite(s3, Lage); Rode = pulseIn(Uit, digitaalLezen(Uit) == Hoge ? Lage : Hoge); digitalWrite(s3, Hoge); Blauwe = pulseIn(Uit, digitaalLezen(Uit) == Hoge ? Lage : Hoge); digitalWrite(s2, Hoge); Groene = pulseIn(Uit, digitaalLezen(Uit) == Hoge ? Lage : Hoge); }
Afhankelijk van waar de module is geïnstalleerd, kan het nodig zijn om het kleurenfilter aan te passen.
Dit betekent dat niets uw M&Ms sorteermachine in de weg staat :-)
Overigens hebben we ook Servo's & Stepper motorbestuurder
2 Reacties
AndreasK
Hallo, ich arbeite im Druckgewerbe. Dort ist der Einsatz von so genannten Spektralphotometern an der Tagesordnung. Nachteil: Die Finger sind richtig teuer und verschleißen mit der Zeit. Gibt der verwendete Chip eine exakte Messung her? Oder wie konstant misst er?
Ich denke, daraus kann man was machen.
RalfK
Also so eine M&M Sortiermaschine wäre schon ein Cooles Projekt :)