Go Down

Topic: Can't read Atlas Scientific colour detector (Read 4827 times) previous topic - next topic

summersgillb

I'm trying to read from the Atlas Scientific colour detector ENV-RGB, which is supposed to return a string.  Using the demo software I get nothing back.  I tweaked the software a little bit and it seems to be returning something, but just random characters rather than the "rrr, ggg, bbb" string that's in the spec.  Has anyone used this sensor?  Is it tricky?

AWOL

Quote
I tweaked the software a little bit
...but you didn't think to post it, or give any reference to the sensor?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

summersgillb

Thank you so much.  Clearly friendliness is not one of the things you are moderating for.  I'm sorry I joined. 

AWOL

#3
Feb 02, 2013, 07:27 pm Last Edit: Feb 02, 2013, 08:49 pm by AWOL Reason: 1
But still no code?

Quote
Clearly friendliness is not one of the things you are moderating for.

"My car wouldn't start this morning. It's a white car. What is wrong?".

See why we ask the questions we ask?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

robtillaart

Quote
but just random characters rather than the "rrr, ggg, bbb" string that's in the spec


This might point to wrong communication setting or so. Is it a string of digits or a string of bytes (I have not read the datasheet) as typically every color would fit into one byte (and yes these may appear as the complete alphabet and more if interpreted as digits in a string.

I found the sensor after some googling here - http://atlas-scientific.com/product_pages/sensors/env-rgb.html -

Many questions pop up, the top 6:
What settings do you use in your code?
baud rate?
parity?
etc
Can you see the comma's appearing in the output?
Do you synchronize upon the <CR> character in your code?
Did you double check TX & RX?



Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

phil88

I bought one of these sensors a week ago and struggling to get it working properly. The code they provided did not work.

Ive managed to get a reading through the serial, digital 0, 1 pins and then entering this code:

Code: [Select]

void setup() {}
void loop(){}


opening the serial reader and entering "C" to start taking a reading at 620ms. you should get something like this.

Code: [Select]
14,8,414,14,1410,10,1413,18,18

What I would like to know is how can you use soft serial and strings to be able to take a reading that arduino can then do something with.

robtillaart

From the specs I've seen, this should do a basic capture. Give it a try

Code: [Select]

#include <NewSoftSerial.h>

NewSoftSerial mySerial(2, 3); 

void setup() 
{
  Serial.begin(115200);
  Serial.println("Start color sensor");

  // set the data rate for the NewSoftSerial port
  mySerial.begin(38400);
  mySerial.write('C');
}

void loop()
{
  char c;
  if (mySerial.available())
  {
    char c = mySerial.read()
    Serial.print(c);
    if (c == ',') Serial.println(); // split the R G and B
    if (c == 13) Serial.println(); // extra newline
  }
}
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

phil88

Thanks for that,

ive just tried verify this and get the following error:

'NewSoftSerial' does not name a type.

im running 1.0.3

Cheers,

Phil

AWOL

#8
Feb 03, 2013, 08:43 pm Last Edit: Feb 03, 2013, 08:46 pm by AWOL Reason: 1
Use "SoftwareSerial" instead.


Quote
I'm sorry I joined. 

Quote
Members from IP (range) xx.xxx.xxx.xx
IP address    Display name
xx.xxx.xxx.xx    Summersgill, summersgillb

So sorry, you joined twice?
"Pete, it's a fool looks for logic in the chambers of the human heart." Ulysses Everett McGill.
Do not send technical questions via personal messaging - they will be ignored.

robtillaart

Sorry, retry
Code: [Select]

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); 

void setup() 
{
  Serial.begin(115200);
  Serial.println("Start color sensor");

  // set the data rate for the NewSoftSerial port
  mySerial.begin(38400);
  mySerial.print('C');
}

void loop()
{
  if (mySerial.available())
  {
    char c = mySerial.read();
    Serial.print(c);
    if (c == ',') Serial.println(); // split the R G and B
    if (c == 13) Serial.println(); // extra newline
  }
}
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

phil88

thanks for that,

I open up the serial monitor and get this...

Code: [Select]
͹ÙL

(values change when i close and re-open the monitor) for example:

Code: [Select]
Ô»Ðó

Code: [Select]
ݽùÌ

robtillaart

that looks like some ascii code very promising (said the optimist)
Code: [Select]

#include <SoftwareSerial.h>

SoftwareSerial mySerial(2, 3); 

void setup() 
{
  Serial.begin(115200);
  Serial.println("Start color sensor");

  // set the data rate for the NewSoftSerial port
  mySerial.begin(38400);
  mySerial.print('C');
}

void loop()
{
  if (mySerial.available())
  {
    char c = mySerial.read();
    Serial.print(c, DEC);  // <<<<<<<<<<<<<<<<<<<<<<<<<<<<< line changed
    if (c == ',') Serial.println(); // split the R G and B
    if (c == 13) Serial.println(); // extra newline
  }
}

can you give it a try?
Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

phil88

cool,

im getting a new reading roughly every second now...

Code: [Select]
ɵÁ\?Ё? p?aà°?ÁY` 1?aÿ?ðÉÜp?aàЁ?£ p?#à°???¡ p?#øÐÅ?£ p?#àðÉ??! p?øÌùñ 0?apÀ̹±?á cøÐÅ?£ p?#à°?ÁK°cà?Ùpcà

robtillaart

There are coming to much bytes, could also be a loose wire(!)

Have you try alternative baud rates?
9600, 19200, 38400 (already tested), 115200?

Rob Tillaart

Nederlandse sectie - http://arduino.cc/forum/index.php/board,77.0.html -
(Please do not PM for private consultancy)

summersgillb

Thanks, robtillaart.  I tried your code, too, but I still don't get anything back.  

Go Up