Arduino färgsensor (4 / 5 steg)

Steg 4: Steg 3: skriva kod

Här är min Arduino kod. Du kommer att behöva kalibrera const värden baserat på hur mycket ljus är i rummet - kommentera bort den angivna delen av metoden loop() och observera de RGB-värden visas för olika färgade kort. Lagra de RGB-värdena i den ICOLOR const int [] 's i början av skriptet. Om du gjorde ett bra jobb med ljus-proofing rutan, bör samma RGB värden arbeta med olika nivåer av bakgrunden ljus.

/ ** Körs en färgsensor på Arduino
* Starta programmet samtidigt visar det vita kortet. När RGB LED släcks,
* (snabbt) växla till svart kort. Efter RGB LED: n blinkar vitt, är det redo.
*/
PIN-ID
int blå = A2;
int grön = A1;
int rött = A0;
int redOut = 9.
int greenOut = 10;
int blueOut = 11;
räknar antalet slingor - brukade tid händelser
int count = 0;
lagrar den aktuella RGB-ingången
int ut [3].
ICOLOR = RGB input från transistor som är den färgen.
FÄRG = RGB utgång göra RGB LED visar att färg
int IWHITE [3] = {175,48,455}. int vit [3] = {224,226,243}.
int IBLACK [3] = {42,5,20}. int av [3] = {0,0,0}.
int IRED [3] = {145,15,38}. int rött [3] = {200,0,0}.
int IYELLOW [3] = {175,40,60}. int gul [3] = {255,150,0}.
int IMAGENTA [3] = {150,16,83}. int MAGENTA [3] = {200,0,200}.
int IBLUE [3] = {57,7,160}. int blå [3] = {0,0,200}.
int IGREEN [3] = {41,6,50}. int GREEN [3] = {0,200,0}.
int NONE [3].
[0] av dessa är min, [1] är max.
int redConvert [2].
int greenConvert [2].
int blueConvert [2].

läser i den aktuella färgen
readColor() {int *
int ret [3];
ret [0] = analogRead(red);
ret [1] = analogRead(green);
ret [2] = analogRead(blue);
återvändande ret;
}

kontrollerar att varje element i color1 är inom dev av
det motsvarande elementet i refColor
booleska inRange (int color1 [], int refColor [], int dev) {
tillbaka (abs (color1 [0] - refColor[0]) < = dev) & &
ABS (color1 [1] - refColor[1]) < = dev & &
ABS (color1 [2] - refColor[2]) < = dev;
}

Anger färg RGB LED
void setColor (int color[]) {
analogWrite (redOut, color[0]);
analogWrite (greenOut, color[1]);
analogWrite (blueOut, color[2]);
}

värdena för svart och vitt
void calibrate() {
setColor(RED);
Delay(500);
setColor(GREEN);
Delay(500);
setColor(BLUE);
Delay(500);
setColor(WHITE);
int redSum = 0;
int greenSum = 0;
int blueSum = 0;
för (int jag = 1; jag < = 5; i ++) {
redSum += analogRead(red);
greenSum += analogRead(green);
blueSum += analogRead(blue);
Delay(333);
}
int whiteCal [3] = {redSum/5, greenSum/5, blueSum/5};
redSum = blueSum = greenSum = 0;
setColor(OFF);
Serial.Print ("vita Cal (RGB):");
Serial.Print(whiteCal[0]);
Serial.Print("");
Serial.Print(whiteCal[1]);
Serial.Print("");
Serial.println(whiteCal[2]);
Serial.println ("Infoga svart kort");
While(inRange(readColor(),whiteCal,50)) {
Delay(1000);
Serial.Print ("röd grön blå:");
Serial.Print(analogRead(Red));
Serial.Print("");
Serial.Print(analogRead(Green));
Serial.Print("");
Serial.println(analogRead(Blue));
setColor(out);
}
Serial.println ("nytt kort upptäcks - jag hoppas det är svart");
Delay(5000);
för (int jag = 1; jag < = 5; i ++) {
redSum += analogRead(red);
greenSum += analogRead(green);
blueSum += analogRead(blue);
Delay(100);
}
int blackCal [3] = {redSum/5, greenSum/5, blueSum/5};
Serial.Print ("svart Cal (RGB):");
Serial.Print(blackCal[0]);
Serial.Print("");
Serial.Print(blackCal[1]);
Serial.Print("");
Serial.println(blackCal[2]);
beräkna konverteringsfunktioner
redConvert [0] = blackCal [0];
redConvert [1] = whiteCal [0];
greenConvert [0] = blackCal [1].
greenConvert [1] = whiteCal [1].
blueConvert [0] = blackCal [2].
blueConvert [1] = whiteCal [2].
}

körs skärmkalibrering rutin och vänder på ljust vit innan
Start loop
void setup() {
Serial.BEGIN(9600);
Calibrate();
setColor(WHITE);
Delay(1000);
}

void loop() {
läser i nya värden
Out [0] = analogRead (röd), //0-1024
ut [1] = analogRead(green);
[2] = analogRead(blue);

uppdatera RGB LED och skriver ut mindre ofta
om (count % 5000 == 0) {
Serial.Print ("röd grön blå:");
Serial.Print(Out[0]);
Serial.Print("");
Serial.Print(Out[1]);
Serial.Print("");
Serial.println(Out[2]);

kommentera ut resten av denna slinga till bara visningsvärden och inte använda RGB LED
IF(inRange(out,IWHITE,10)) {
Serial.println("White!");
setColor(WHITE);
}
annat if(inRange(out,IRED,10)) {
Serial.println("Red!");
setColor(RED);
}
annat if(inRange(out,IBLUE,10)) {
Serial.println("Blue!");
setColor(BLUE);
}
annat if(inRange(out,IYELLOW,10)) {
Serial.println("Yellow!");
setColor(YELLOW);
}
annat if(inRange(out,IMAGENTA,10)) {
Serial.println("magenta!");
setColor(MAGENTA);
}
annat if(inRange(out,IGREEN,10)) {
Serial.println("Green!");
setColor(GREEN);
}
annat setColor(OFF);
}
greve ++;
}

Se Steg
Relaterade Ämnen

DIY Arduino färgsensor

Hur man gör en DIY Arduino färgsensorSteg 1: delar 4 lysdioder (grön, blå, röd, gul)4 220 ohms motstånd1 LDR1 10 k motståndKvinnliga PinsPCBSteg 2: Skär PCB Forma din design att PCB. Sedan skär den. Jag använde 3,5 cm 2,5 cmSteg 3: Starta lödning del...

Rörlig robotarm med PHIRO + Arduino

Vi är tillbaka med en annan tutorial att visa dig hur du sätter PHIRO Pro till en cool mobil robotarm som kan plocka och placera saker! Liknar våra tidigare PHIRO Arduino färgsensor instructable, vi kommer att använda Pocket koden på en Android-telef...

Spela Tetris-spel med Arduino

Utveckla Tetris spelet via Arduino och lär dig att utveckla ett simulerade spel snabbt för att återskapa klassiskt. Tetris spel hjälpa maker att studera användningen av LCD-skärmen och Arduino program.Demo från:Arduino avancerade kit som tillhandahål...

Färg sensorer och Arduino seriell kommunikation för nybörjare

Hej alla, jag ska prata om färg sensorer: hur man bygger och kalibrera en och hur man använder det med seriell kommunikation genom en Arduino ombord.Det sista steget förklarar hur jag använde detta projekt för en Gimp (står för "GNU Image Manipulatio...

Styr Ikea Dioder LED Strip med Arduino + 16 X PWM LED Fader styrelsen

vi kommer att visa hur man binder upp och styra en Ikea DIODER LED strip med en arduino, med en 16 X PWM LED Fader styrelse som mellansteg.16 X PWM styrelsen är i grunden en massa mosfets under PWM kontroll (strömbrytare som slår på och av riktigt sn...

Anpassade Arduino Micro Quadcopter koncept

redigera 14 APRIL: Sorry killar för posten sen. livet har varit riktigt hektiskt nyligen för mig eftersom vi var tvungna att byta ut ett avloppsrör begravd i betongplattan vårt hus sitter på. Men vi har gjort vissa framsteg! koden kommit något in men...

Arduino färgseende

Färg avkänning tillämpningar kommer att göra en enkel ansökan har mycket kullanılmaktadır. Bu projekt i robotteknik och automation att upptäcka att vilka färger data från sensorn för att skriva ut det på LCD-skärmen, samt RGB lysdioder också är vilke...

Arduino system för Biomonstaaar bioreaktor

Detta projekt är inställningen för Arduino Sensor/motor navet för Biomonstaaar bioreaktor. Den färdiga produkten används till gränssnittet med sensorer och andra delar av reaktorn för att möjliggöra insamling av data eller automatiserade reaktorn kon...

Enkla RGB färg detektorn genom att använda Arduino

Hur ser du färger?Ljus är en elektromagnetisk vågrörelse som finns i vårt universum. Som människa ser vi bara en del av hela elektromagnetisk spectrum.Ta en röd boll: när ljuset träffar dess yta, det speglar den röda färgen (våglängd) och absorberar...

Enkla Arduino LED-färg Sensor för nybörjare

Det finns ett par olika typer av färg sensorer.Den som används i detta instructable är en "reflekterande" färgsensor som har rött ljus källa grönt ljus källa en blå ljuskälla (en R, G, B LED skulle fungera) och en ljussensor. Hur den fungerar är...

Din egen färgsensor med hjälp av lysdioder

Visste du att du kan göra en "billig" men effektiv färgsensor med några grundläggande komponenter?Denna superenkla instructable kommer guide du gör din egen färg med hjälp av sensor en massa lysdioder och en LDR.Jag har lyckats göra ett väl ordn...

Hur man gör en "kameleont" med Arduino

Du måste ha sett kameleonter skiftande färger och blandning i omgivningen, i ett fantastiskt sätt. Det sättet att kameleonter faktiskt gör detta är verkligen molekylär. Om man tittar på huden av en kameleont, hittar du att de har flera lager av speci...

Rad efterföljare Robot använder kameran Shield i 1Sheeld & Arduino

Det var så länge sedan min sista publicerade Instructables. Faktiskt, jag försökte göra mycket populära projektet men med en nya verktyg och ett lätt sätt särskilt i kodning. Jag arbetade på en rad efterföljare robot som spåra en vit linje och följa...

Arduino nybörjare och grundläggande elektronik Kit Primer

lärde jag mig att en av mina systerdöttrar hade ett intresse för programmering. Hon arbetade med robotics på gymnasiet och har en sommar praktikplats där de hade Arduinos. Jag tror att hon kunde låna en Arduino för att experimentera med hemma men var...

Programkontrollen & Arduino + PHIRO robot samtidigt med Pocket kod smartphone app

PHIRO Pro är en pedagogisk robot som hjälper barn lära sig till koden. Ett sätt att programmera och kontrollera PHIRO är via en Android app som kallas Pocket koden tillgänglig på Google spela för gratis. Pocket koden har förmågan att programmera och...

Hur man gör en Artbot: färg avkänning, ritning Arduino robotar att göra generativa art

För kursen hårdvara och fysiska Computing övervakas av Paul Klomp som en del av Media teknik programma vid Leiden University har skapat vi två ritning robotar. Varje robot var bygga runt en Arduino Uno och utrustad med två hjul drivs av DC-motorer, e...

Programmera din Arduino med en Android-enhet via Bluetooth

Hej världen, i detta Instructable jag vill visa dig, hur du programmerar din Arduino Uno med din Android-enhet via Bluetooth. Det är mycket enkelt och så billig. Det ger oss också möjlighet att programmera vårt Arduino där allt vi vill över trådlöst...

Android och Arduino SMS-baserade Home Automation

Nyligen fick jag en relativt billig Kvadranten Band GSM/GPRS-modul för att spela med. Det är en SIM800L modul, och kommunicerar med alla micro via en seriell port. Det kom med en panel mount antenn.Jag beslutade att bygga ett enkelt SMS Controller sy...

Arduino temperaturreglerade Fan

Jag och några medlemmar har beslutat att för sommaren, skulle det vara fördelaktigt att skapa en fläkt som tänds vid 70 grader Fahrenheit och fortsätter att öka i intensitet med värmen. Så det är vad vi gjorde. :)Steg 1: Gears Det första vi laser skä...