RGB szenzor használata pH beállításhoz

Az ötlet

50ml- es Falcon csövekben szeretnék sejteket tenyészteni, ami 1, max. két napig működik, aztán a pH leesik, a közeg oxigénhiányos lesz, ezután lassan elkezdenek pusztulni a sejtek. Ehhez a project-hez rendeltem ezt az áramkört: SparkFun RGB Light Sensor – ISL29125

https://www.sparkfun.com/products/12829

Amúgy a webkamerás megoldás lehet precízebb lenne, de ugye 10 Falcon csövet ellátni kamerával nem túl hatékony megoldás.

A modul használata nagyon egyszerű, I2C-n kommunikál az Arduino-val, négy kábelt kell a megfelelő helyre kötni aztán működik is.

Kód

/******************************************************************************
ISL29125_basics.ino
Simple example for using the ISL29125 RGB sensor library.
Jordan McConnell @ SparkFun Electronics
11 Apr 2014
https://github.com/sparkfun/SparkFun_ISL29125_Breakout_Arduino_Library
This example declares an SFE_ISL29125 object called RGB_sensor. The 
object/sensor is initialized with a basic configuration so that it continuously
samples the light intensity of red, green and blue spectrums. These values are
read from the sensor every 2 seconds and printed to the Serial monitor.
Developed/Tested with:
Arduino Uno
Arduino IDE 1.0.5
Requires:
SparkFun_ISL29125_Arduino_Library
This code is beerware.
Distributed as-is; no warranty is given. 
******************************************************************************/

#include <Wire.h>
#include "SparkFunISL29125.h"

// Declare sensor object
SFE_ISL29125 RGB_sensor;

void setup()
{
  // Initialize serial communication
  Serial.begin(115200);

  // Initialize the ISL29125 with simple configuration so it starts sampling
  if (RGB_sensor.init())
  {
    Serial.println("Sensor Initialization Successful\n\r");
  }
}

// Read sensor values for each color and print them to serial monitor
void loop()
{
  // Read sensor values (16 bit integers)
  unsigned int red = RGB_sensor.readRed();
  unsigned int green = RGB_sensor.readGreen();
  unsigned int blue = RGB_sensor.readBlue();
  
  // Print out readings, change HEX to DEC if you prefer decimal output
  Serial.print("Red: "); Serial.println(red,HEX);
  Serial.print("Green: "); Serial.println(green,HEX);
  Serial.print("Blue: "); Serial.println(blue,HEX);
  Serial.println();
  delay(2000);
}

A soros porton a következő adatokat lehet látni

Decimális Hexadecimális Hozzá tartozó szín
R: 9086
G:4007
B:16362
#8F3EFF  lila
R:32529
G:43160
B:15001
 #C1FF5B  zold

A második esetben a megvilágítástól függően (kisebb fényintenzitással megvilágítva) az RGB kód 11220,14556,5264, ami kb. ugyanazt a színt reprezentálja (#C5FF5F).

Az összeállítás pedig így néz ki

Egy fehér fényű leddel szemből megvilágítom, az most nem látszik a képen. A küvettában brómkrezol lila indikátorral megfestett oldat van, ami a pH függvényében változtatja a színét. It is colored yellow below pH 5.2, and violet above pH 6.8.

Itt van még egy mintakód, ha segít:  https://github.com/sparkfun/ISL29125_Breakout/blob/V_H1.0_L1.0.1/Libraries/Arduino/examples/ISL29125RGBLED/ISL29125RGBLED.ino

Szóval itt valami olyan kellene, ha a szín átmegy sárgába, zöldbe, így a lila szín eltűnik akkor mondjuk Az Arduino valamielyik pinjét 5V ra húzza.

 

 

Share This:

 
Loading Facebook Comments ...

Leave a Comment