jg53fn55
Published © LGPL

High speed water droplets photography

High speed photography to capture water droplets collisions

IntermediateShowcase (no instructions)1,035
High speed water droplets photography

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Relay Module (Generic)
×1
Power MOSFET N-Channel
Power MOSFET N-Channel
×1
LED (generic)
LED (generic)
×1
10 LEDs Bar Array, Green
10 LEDs Bar Array, Green
red
×1
Resistor 220 ohm
Resistor 220 ohm
×10
Resistor 10k ohm
Resistor 10k ohm
×2
Resistor 4.75k ohm
Resistor 4.75k ohm
×1
Resistor 1k ohm
Resistor 1k ohm
×1
Rotary potentiometer (generic)
Rotary potentiometer (generic)
×1
Photodiode, 45 °
Photodiode, 45 °
×1
Laser Emitter, Small Spot
Laser Emitter, Small Spot
×1

Hand tools and fabrication machines

Soldering iron (generic)
Soldering iron (generic)

Story

Read more

Schematics

High speed photography

Pictures of falling droplets

Code

High speed photography

Arduino
make pictures of falling droplets
int sensorPin = A0;    // select the input pin for the fototransistor
int resistorPin = A1; // select the input for the potentiometer

byte relay = 3;
byte led1 = 4;
byte led2 = 5;
byte led3 = 6;
byte led4 = 7;
byte led5 = 8;
byte led6 = 9;
byte led7 = 10;
byte led8 = 11;
byte led9 = 12;
byte led10 = 13;
char ledbar[10] {led1, led2, led3, led4, led5, led6, led7, led8, led9, led10};
int sensorValue = 0;  // variable to store the value coming from the sensor
int resistValue = 0;  // Variable from the potmeter
unsigned long currentMillis;
long interval = 1000;
long previousMillis = 0;
//------------------------------------------------------------
void setup() {
  for (int z = 0; z < 10; z = z + 1) {
    pinMode(ledbar[z], OUTPUT);
  }
  pinMode(relay, OUTPUT);
  pinMode(sensorPin, INPUT);
  pinMode(resistorPin, INPUT);
  Serial.begin(9600);

}
//----------------------------------------------------------------
void ledson(byte x) {

  for (int z = 0; z < x; z = z + 1) {
    digitalWrite(ledbar[z], HIGH);
  }
}
//------------------------------------------------------------------
void ledbar1() {

  resistValue = analogRead(resistorPin);
  resistValue = map(resistValue, 0, 1023, 0, 400);

  AlleLedsUit ();
  if (resistValue > 0 & resistValue <= 40)
  {
    ledson(1);
  }
  else if (resistValue > 40  & resistValue <= 80)
  {
    ledson(2);
  }
  else if (resistValue > 80  & resistValue <= 120)
  {
    ledson(3);
  }
  else if (resistValue > 120  & resistValue <= 160)
  {
    ledson(4);
  }
  else if (resistValue > 160  & resistValue <= 200)
  {
    ledson(5);
  }
  else if (resistValue > 200  & resistValue <= 240)
  {
    ledson(6);
  }
  else if (resistValue > 240  & resistValue <= 280)
  {
    ledson(7);
  }
  else if (resistValue > 280  & resistValue <= 320)
  {
    ledson(8);
  }
  else if (resistValue > 320  & resistValue <= 360)
  {
    ledson(9);
  }
  else if (resistValue > 360  )
  {
    ledson(10);
  }
  //Serial.println(resistValue);

}
//------------------------------------------------------------------
void loop() {
  // read the value from the sensor:
  sensorValue = analogRead(sensorPin);
  sensorValue = map(sensorValue, 0, 1023, 0, 1000);
  //Serial.println(sensorValue);
  if (sensorValue < 500)
  {
    delay(resistValue);   // delay instellen voor de waterdruppel
    digitalWrite(relay, HIGH);
    delay(750);    // delay voor het relais
    digitalWrite(relay, LOW);
  }
  //============ een keer per seconde potmeter uitlezen ===========================
  currentMillis = millis();
  if (currentMillis - previousMillis > interval)
  {
    previousMillis = currentMillis;

    ledbar1();

  }
}
//----------------------------------------------------
void AlleLedsUit () {// all leds off
  for (int z = 0; z < 10; z = z + 1) {
    digitalWrite(ledbar[z], LOW);
  }

}

Credits

jg53fn55

jg53fn55

0 projects • 4 followers
I am retired.

Comments