How-to-make-a-stroboscope-using-arduino

image

Hello friends in this post we will see how to make Stroboscope using arduino. Stroboscope an instrument for studying periodic motion or determining speeds of rotation by shining a bright light at intervals so that a moving or rotating object appears stationary.

A stroboscope, also known as a strobe, is an instrument used to make a cyclically moving object appear to be slow-moving, or stationary. It consists of either a rotating disk with slots or holes or a lamp such as a flashtube which produces brief repetitive flashes of light. Usually,

the rate of the stroboscope is adjustable to different frequencies. When a rotating or vibrating object is observed with the stroboscope at its vibration frequency (or a submultiple of it), it appears stationary. Thus stroboscopes are also used to measure frequency.

Strobe_2

COMPONENT REQUIRED

image

Arduino Nano :- https://amzn.to/2NyDX4u
0.96" OLED Display :- https://amzn.to/2NDva11
10W LED :- https://amzn.to/2NCZdFW
10K POT :- https://amzn.to/2x81M8W
Toggle S/W :- https://amzn.to/2NafZ05
2222A Transistor :- https://amzn.to/2QojE8b
Custom PCB

CIRCUIT DRAWING

image

Stroboscopes produce carefully timed pulses of light in order to make a rotating object appear still. While this may seem like something of an exotic concept, YouTuber Mr. Innovative decided to build his own using an Arduino Nano.

His project uses a PN2222A transistor to drive a 10W LED, which acts as the device’s light source. The spinning RPM is set via a potentiometer, and a small OLED provides user feedback.

Let’s do some mathematical calculation

We had designed this circuit for LXML-PWC1-0100 LUXEON LED.

Voltage required to illuminate LED i.e. Vin

V_{in} = V_t + (V_f \times nLED) Here we are using three LED in series, hence number of LED nLED = 3

V_t = 2 V_f = 3.99V (voltage required to powering the single LED)

Now, wee can calculate the Vin voltage

V_{in} = 2 + (3.99 \times 3) = 13.97 \approx 14V So, we required approximately 14V per column.

After calculating required voltage for powering the LED, let’s calculate supply voltage by LM317

CUSTOM PCB

image image

I have design circuit and PCB in easyEDA and ordered PCB from JLCPCB

This is the link of PCB editabl file

Yes PCB are the heart of the electronics based project usually we hesitate to try custom PCB and opt to homemade solutions

like breadboard or Zero PCB earlier I also was in the same boat, I hesitate to try custom PCB my belief was they are much expensive.

but then I came to know about JLCPCB.COM and I was totally surprised how low price PCB's are they offering

there PCB quality is best in market, now I always go with PCB for my project and JLCPCB.COM is my trusted

If you planing to order any PCB for your projects so you can consider JLCPCB.com because

I always prefer JLCPCB.com for my PCB needs, JLCPCB.com have best deals for their customers $2 for 1-4 Layer PCBs, free SMT assembly monthly.

If you seriously need quality PCB quickly in your hand then you must have to try JLCPCB PCB manufacturing service. They have Special offer of $2 for 1-4 Layer PCBs, free SMT assembly monthly. If new user signup today from this link JLCPCB.com you will get welcome coupons from JLCPCB.

image image

SMT Assembly service of JLCPCB.com is cherry on top now get your PCB fully assembled and save your time and money Select components for your PCB from there Parts Library of 200k+ in-stock components they are offering $30 valued New User coupons & $24 SMT coupons every month $8.00 setup fee, and $0.0017 per joint

Now no need to order components separately for you PCB and get free from stress of soldering them on PCB just try PCB SMT assembly service and get you PCB with components pre assembled and ready for the project

👉 Try PCBA service of JLCPCB.com and save your time and money, get PCB ready for project, 200K+ components in library of JLCPCB.com as well as 3rd party parts to choose from. Assembly will support 10M+ parts from Digikey, mouser

👉 $30 valued New User coupons

👉 $24 SMT coupons every month

For more detials & offers please visit JLCPCB.com

PROCEDURE

image

first of all we collect all the required components like Arduino Nano, 0.96" OLED Display, 10W LED, 10K POT, Toggle S/W, Toggle S/W, 2222A Transistor, Custom PCB

image

Then I shholder the Display pins to the PCB basically pin cofiguration are as below

I2C display Arduino SCL A5 SDA A4 5V 5V GND GND

image image image

Then I bring sun board sheet and mark the dimensions on the sheet with the help of scale and pen and the I cut those parts with the help of cutter to make the shape of object like gun which we can hold in our hand

image

Then I 3D printed a reflector part and used 10W led diode to make the stroboscope

image image

Then I install the potentiometer, toggle switch and 0.96'' oled display on the other side of strobo scope and fit the panel with the body using super glue.

CODE

#include <Wire.h>
#include "SSD1306Ascii.h"
#include "SSD1306AsciiWire.h"
#define I2C_ADDRESS 0x3C
#define RST_PIN -1
SSD1306AsciiWire oled;


const int led = 12;
int customDelay,customDelayMapped; // Defines variables    void setup() {  Wire.begin();  Wire.setClock(400000L);  Serial.begin(9600);
#if RST_PIN >= 0  oled.begin(&Adafruit128x64, I2C_ADDRESS, RST_PIN);
#else // RST_PIN >= 0  oled.begin(&Adafruit128x64, I2C_ADDRESS);
#endif // RST_PIN >= 0
  oled.setFont(Adafruit5x7);  oled.clear();  pinMode(led,OUTPUT);    oled.set2X();  oled.setCursor(0, 0);  oled.println("");  oled.set1X();  oled.setCursor(0, 13);  oled.println("");  oled.set2X();  oled.setCursor(0, 20);  oled.println("  WELCOME  ");  oled.set1X();  oled.println("");
oled.set2X();  oled.setCursor(40, 25);  delay(1400);  }

  void loop() {      staticmenu();   customDelayMapped = speedUp(); // Gets custom delay values from the custom speedUp function  // Makes pules with custom delay, depending on the Potentiometer, from which the speed of the motor depends  digitalWrite(led, HIGH);  delayMicroseconds(200);  digitalWrite(led, LOW);  delay(customDelayMapped);
Serial.println(customDelayMapped);  }      int speedUp() {  int customDelay = analogRead(A0); // Reads the potentiometer  int newCustom = map(customDelay, 0, 1023, 1,50); // Convrests the read values of the potentiometer from 0 to 1023 into desireded delay values (300 to 4000)  return newCustom;      }    00    .
1141,,j    ,
//.,       m[p
0.....
00000
.444444444444444    

    
void staticmenu() {  oled.set2X();  oled.setCursor(0, 0);  oled.println("STROBOSCOPE");  oled.set1X();  oled.setCursor(0, 13);  oled.println("---------------------");  oled.set2X();  oled.setCursor(0, 20);  oled.println("    RPM   ");  oled.set1X();  oled.println("");
oled.set2X();  oled.setCursor(40, 25);       oled.print( customDelayMapped*99, DEC);  // if (customDelayMapped % 100 == 0){
//    oled.clear();
// }      //oled.display();

}


In this way sctroboscope construction is done now it is time for testing

10000000_371783094596508_6335027578223470645_n