Onze kleurensensor TCS230 (zonder bibliotheek)

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

ProduktvorstellungenSensoren

2 Kommentare

AndreasK

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

RalfK

Also so eine M&M Sortiermaschine wäre schon ein Cooles Projekt :)

Einen Kommentar hinterlassen

Alle Kommentare werden vor der Veröffentlichung moderiert

Aanbevolen blog berichten

  1. Installeer ESP32 nu van de raad van bestuur
  2. Lüftersteuerung Raspberry Pi
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1
  4. ESP32 - das Multitalent
  5. OTA - Over the Air - ESP Programmeren via Wi-Fi