Today at 02:44 pm
Hey guys,
im making a pneumatic M&M sorting machine for a school project this is what i have so far. I can't figure out how power the else if funtions with with the right colour. and i keep getting errormessags at the if and if else funtion. does any one have some tips or adjustments? I want the code to take the right action after the sensor reads the colour, however i dont know how to make my code do that. ive been googeling and watching how to youtube videos for hours now
thanks in advance!!!
#include <Wire.h>
#include "Adafruit_TCS34725.h"
byte gammatable(256);
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
void setup()
{
Serial.begin(9600);
Serial.println("GOEIE MIDDAG!");
if (tcs.begin()){ //checken is there is a sensor
Serial.println("sensor gevonden");
} else {
Serial.println("mongool je hebt het verkeerd gedaan");
while (1); //programma stopt
}
//PINS 2,3,4,5 --> S0-S3
//PIN 6 --> Signal OUT
pinMode(1, OUTPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, INPUT);
pinMode(A4, INPUT);
pinMode(A5, INPUT);
digitalWrite(2,HIGH);
digitalWrite(3,LOW);
}
}
void loop()
{
uint16_t clear, red, green, blue; //variable aantonen
delay (60);
tcs.getRawData(&red, &green, &blue, &clear);
Serial.print("C:\t"); Serial.print(clear); //kleuren weergeven
Serial.print("\tR:\t"); Serial.print(red);
Serial.print("\tG:\t"); Serial.print(green);
Serial.print("\tB:\t"); Serial.print(blue);
uint32_t sum = clear; //hex code omzetten
float r, g, b;
r = rood; r /= sum;
g = groen; g /= sum;
b = blauw; b /= sum;
r *= 256; g *= 256; b *= 256;
Serial.print("\t");
Serial.print((int)r, HEX); Serial.print((int)g, HEX); Serial.print((int)b, HEX);
Serial.println();
}
{ if (R<256 && B<256 && G<256){
Serial.println("red");
digitalWrite(1, HIGH); //cilinder in
delay(1000);
digitalWrite(2, HIGH); //cillinder out
digitalWrite(3, HIGH); //Ventiel aansturen voor groene M&M
delay(1000);
}
else if (R<256 && B<256 && G<256){
Serial.println("green");
digitalWrite(1, HIGH); //cilinder in
delay(1000);
digitalWrite(2, HIGH); //cillinder out
digitalWrite(4, HIGH); //Ventiel aansturen voor groene M&M
delay(1000);
}
else if (R<256 && B<256 && G<256){
Serial.println("blue");
digitalWrite(1, HIGH); //cilinder in
delay(1000);
digitalWrite(2, HIGH); //cillinder out
digitalWrite(5, HIGH); //Ventiel aansturen voor blauw M&M
delay(1000);
}
else if (R<256 && B<256 && G<256){
Serial.println("no colour");
digitalWrite(1, HIGH); //cilinder in
delay(1000);
digitalWrite(2, HIGH); //cillinder out
digitalWrite(6, HIGH); //ventiel aansturen voor geen kleur
delay(1000);
}
}
delay(1000);
}
[code]