Vaughn Johnson
Published

Project 04 - DIG3602C

Vaughn Johnson UCF-Spring 2023-DIG3602C-Davis Project 04

BeginnerShowcase (no instructions)22
Project 04 - DIG3602C

Things used in this project

Hardware components

Tube Liquid Sensor, Phototransistor
Tube Liquid Sensor, Phototransistor
couldn't find the real light sensor.
×1
Arduino UNO
Arduino UNO
×1
LED (generic)
LED (generic)
×1
Resistor 220 ohm
Resistor 220 ohm
×1
Resistor 100 ohm
Resistor 100 ohm
×1

Software apps and online services

Arduino IDE
Arduino IDE

Story

Read more

Schematics

project_04_image_eS4L41mT3W.png

project_04_schematic_f10i91ztPK.pdf

Code

Code

C#
const int greenLEDPin = 9;  // LED connected to digital pin 9
const int redLEDPin = 10;   // LED connected to digital pin 10
const int blueLEDPin = 11;  // LED connected to digital pin 11

const int redSensorPin = A0;    // pin with the photoresistor with the red gel
const int greenSensorPin = A1;  // pin with the photoresistor with the green gel
const int blueSensorPin = A2;   // pin with the photoresistor with the blue gel

int redValue = 0;    // value to write to the red LED
int greenValue = 0;  // value to write to the green LED
int blueValue = 0;   // value to write to the blue LED

int redSensorValue = 0;    // variable to hold the value from the red sensor
int greenSensorValue = 0;  // variable to hold the value from the green sensor
int blueSensorValue = 0;   // variable to hold the value from the blue sensor

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);

  // set the digital pins as outputs
  pinMode(greenLEDPin, OUTPUT);
  pinMode(redLEDPin, OUTPUT);
  pinMode(blueLEDPin, OUTPUT);
}

void loop() {
  // Read the sensors first:

  // read the value from the red-filtered photoresistor:
  redSensorValue = analogRead(redSensorPin);
  // give the ADC a moment to settle
  delay(5);
  // read the value from the green-filtered photoresistor:
  greenSensorValue = analogRead(greenSensorPin);
  // give the ADC a moment to settle
  delay(5);
  // read the value from the blue-filtered photoresistor:
  blueSensorValue = analogRead(blueSensorPin);

  // print out the values to the Serial Monitor
  Serial.print("raw sensor Values \t red: ");
  Serial.print(redSensorValue);
  Serial.print("\t green: ");
  Serial.print(greenSensorValue);
  Serial.print("\t Blue: ");
  Serial.println(blueSensorValue);
  Serial.println(" ");
  /*
    In order to use the values from the sensor for the LED, you need to do some
    math. The ADC provides a 10-bit number, but analogWrite() uses 8 bits.
    You'll want to divide your sensor readings by 4 to keep them in range
    of the output.
  */
  redValue = redSensorValue / 4;
  greenValue = greenSensorValue / 4;
  blueValue = blueSensorValue / 4;

  // print out the mapped values
  Serial.print("Mapped sensor Values \t red: ");
  Serial.print(redValue);
  Serial.print("\t green: ");
  Serial.print(greenValue);
  Serial.print("\t Blue: ");
  Serial.println(blueValue);
  Serial.println(" ");
  /*
    Now that you have a usable value, it's time to PWM the LED.
  */
  analogWrite(redLEDPin, redValue);
  analogWrite(greenLEDPin, greenValue);
  analogWrite(blueLEDPin, blueValue);

  delay(250);
}

Credits

Vaughn Johnson
11 projects • 3 followers

Comments