3D-skrivare glödtråden färg fjärranalys humör ljus (3 / 5 steg)
Steg 3: Koden
Istället för bara dumpning koden kommer jag först förklara lite hur koden fungerar. Om du inte är intresserad av kan du bara ladda ner koden i slutet av detta steg.
Koden kräver Adafruit_Neopixel biblioteket. Till installera den gå till skiss -> inkludera bibliotek -> hantera bibliotek och skriv Neopixel i sökrutan, klicka på den Adafruit NeoPixel och klicka på installera.
Med sensor nu hakas upp kan vi försöka läsa några värden från den. Detta är faktiskt ganska lätt. Allt vi behöver göra är att välja den färg som vi är intresserade och räkna hur många gånger utgångsstiftet ändras från hög till låg i en viss tid. Vi sedan upprepa detta för varje färg och vi har våra mätningar. Hämta och packa upp koden för att följa med förklaringen nedan.
Läsning från sensorn:
Funktionen mäta färg gör allt arbete. Den yttre loopen är en slinga som loopar 3 gånger, en gång för rött, grönt och blått. Den aktuella tiden lagras inuti loop och ett tag loop är angiven för 25ms. Inuti while loopen vi hålla kontrollera tillståndet för ut PIN-koden, om det ändras från hög till låg eller låg till hög vi öka antalet och spara staten. Vi Fortsätt med detta tills mättiden är upp. Efter detta vi spara räkningen som raw värdet för den färgen, återställa den och välj nästa färg. När denna funktion är avslutat ColorData har struct rå uppmätta värdena för rött, grönt och blått. Det är så enkelt.
Konvertera till färger:
För att få de faktiska färgerna kommer vi att kalibrera sensorn, kommer vi i nästa steg. Men först kan förklara vad vi kalibrera. Vi antar att sensorn är linjär, så om antalet output ökar mängden ljus ökar i samma takt. https://en.wikipedia.org/wiki/Linear_function Därför färgen ges av en funktion i form av färg = en * (antal) + b. Detta förklaras för sensorn på https://arduinoplusplus.wordpress.com/2015/07/15/tcs230tcs3200-sensor-calibration/ och vi kommer att använda samma metod för att kalibrera sensorn.
Det sista vi kommer att göra är skala upp den färg vi kände. Vi gör detta för att förhindra dim lysdioder. Så vi tar den högsta färgen och sätta den maximalt 255 och skala de andra två färgerna därmed.
RGB LED:
Lysdioderna ligger i den viktigaste loopen. Efter att ha läst färgen kommer att vi loopa igenom alla lampor och färg på lysdioderna att färgen vi läser.