Now that we have a basic understanding of fiber optic communication. Let's explore how you can integrate it with an Arduino for various applications.
In this post, we will create an Optical Fiber Transmission setup and also create a simulation in Proteus for our circuit.
The Parts of this article is as follows.
Introduction to Optical Fiber Communications and How does Optical Fiber Communications Works ✔
Light and its Fundamentals ✔
What a Optical Fiber Cable is and its Construction ✔
Optical Fiber Transmission Setup ✅
Interfacing Optical Fiber Transmission with Arduino
Optical Fiber Communication with Arduino to Arduino and NodeMCU ESP8266
Introduction to Optical Fiber Communications and How does Optical Fiber Communications Works ✔
Light and its Fundamentals ✔
What a Optical Fiber Cable is and its Construction ✔
Optical Fiber Transmission Setup ✅
Interfacing Optical Fiber Transmission with Arduino
Optical Fiber Communication with Arduino to Arduino and NodeMCU ESP8266
Optical Fiber Transmission Setup
Optical Transmitter Selection:
I'm going to use HFBR 1414 fiber optic transmitter module which is manufactured by Broadcom. It is a low-cost high-power transmitter that is designed for use in industrial power generation, power distribution, medical transportation and gaming applications. The HFBR 1414 can transmit data at rates up to 160 megabits over distances of up to 2.7 kilometers. It is compatible with a variety of fiber optic cable types.The HFBR fiber optic transmitter contains an 820 nanometers aluminum gallium arson emitter capable of efficiently launching optical power into four different optical fiber sizes: 50/125 μm, 62.5/125 μm, 100/140 μm, and 200 μm Plastic-Clad Silica (PCS). This allows the designer flexibility in choosing the fiber size.
Consistent coupling efficiency is assured by the double-lens optical system. Consistent coupling efficiency reduces receiver dynamic range requirements which allows for longer link lengths.
Optical Fiber Cable Selection:
For optical fiber, I'm going to use a multimode fiber optic cable. The core diameter of this cable is 62.5 μm, and the cladding diameter is 125 μm. The cable is equipped with a Straight Tip (ST) connector, which was commonly used in older fiber optic installations.The HFBR-2412 fiber optic receiver module works by converting light signals from an optical fiber into electrical signals. It does this using a photodiode, which is a semiconductor device that generates an electrical current when exposed to light.
The light signal from the optical fiber enters the HFBR-2412 through a lens and is incident on the photodiode. The photodiode generates an electrical current that is proportional to the intensity of the light signal. This electrical current is then amplified and converted into a logic-level signal by the HFBR-2412's internal circuitry. The HFBR-2412's output signal is an open-collector Schottky transistor, which can be used to drive a variety of different loads, such as LEDs, relays, and other transistors.
Simple TTL-Compatible Transmitter for Arduino
Based on the provided graph, which I obtained from the datasheet, it seems that if your transmitter is operating at a temperature of 25 degrees Celsius (°C) and the cable length is less than 1 kilometer (km), the transmitter current will likely be below 10 mA (milliamperes). You can estimate the exact value by reading the graph where the "TYPICAL, 25°C" curve intersects with the X-axis (Fiber Length). Please note that the graph offers a rough estimate based on the graphical representation, and it doesn't provide precise numerical values.In the worst-case scenario, where the temperature range is -40 to 85°C and the cable length is less than 1 kilometer (km), the transmitter current will probably be below 25 mA (milliamperes). If you choose a maximum distance of 2000 meters using HFBR-1414Z/2412Z logic linked with 62.5/125 μm fiber, the figure shows a worst-case drive current of approximately 43 mA to cover that distance. This means that you can control the distance your signals travel and their clarity by adjusting the transmitter current.
5 MBaud Logic Link Design
The transmitter has 8 pins, and out of these 8 pins, 4 pins (pin 1, pin 4, pin 5, and pin 8) have no specific connections, but they are electrically connected. Pins 2, 6, and 7 are connected to the Emitter Anode, and pin 3 is connected to the cathode.
The datasheet shows that the forward voltage of this transmitter is typically 1.7V, with a minimum of 1.48V and a maximum of 2.09V. However, if you refer to the Typical Forward Voltage and Current Characteristics graph, it indicates that at 1.5 volts, the transmitter draws 15mA. If you provide the typical 1.7V forward voltage, according to the graph, it requires 60mA. At this current, the transmitter can cover approximately 2.35km in the worst-case scenario with a maximum attenuation of 3.2 dB/km. To determine the appropriate current for the transmitter, you need to consider the maximum distance required. In our case, let’s design the transmitter circuit for Arduino to transmit data over a 400-meter distance, so we need to set the transmitter current to 15mA. According to the Typical Forward Voltage and Current Characteristics graph, the LED emits light at a maximum of 1.5 volts at this current. To set R1 (as shown in the above figure) to achieve a drive current of 15mA, you can use Ohm's law:
R1 = (VCC - VF) / IF
R1 = (5V - 1.5V) / 0.015A
R1 = 233Ω
So, setting R1 to 233Ω will result in a drive current of 15mA. I’m going to use the nearest standard resistor value, which is 220Ω. At the typical temperature of 25°C and with 15mA, it can launch -7dB optical power into the fiber cable. However, in the worst-case scenario, the power may be lower.R1 = (VCC - VF) / IF
R1 = (5V - 1.5V) / 0.015A
R1 = 233Ω
According to the datasheet, the graph figures are based on theoretical calculations. This means they are derived from mathematical models and are constructed assuming no inline splices or any additional system loss. Should the link consist of any in-line splices, these curves can still be used to calculate link limits, provided they are adjusted for the additional system loss expressed in dB for standard design.
Simple TTL-Compatible Receiver for Arduino
The HFBR-2412 fiber-optic receiver is designed to operate with the 1414 fiber-optic transmitter and 50/125 μm, 62.5/125 μm, 100/140 μm, and 200 μm Plastic-Clad Silica (PCS) fiber-optic cable. The HFBR-2412 receiver incorporates an integrated photo IC containing a photodetector and dc amplifier driving an open collector Schottky output transistor. The HFBR-2412 is designed for direct interfacing to popular logic families. The absence of an internal pull-up resistor allows the open-collector output to be used with logic families such as CMOS requiring voltage excursions much higher than VCC.
5 MBaud Receiver
This figure shows the receiver circuit using the HFBR-2412 optical receiver.
Busing: This means that the data output can be connected to a data bus, which is a set of wires used to transmit data from one or more sources to one or more destinations. Busing allows multiple devices to share the same data lines, simplifying data transfer in multi-device systems.
Strobing: Strobing typically involves using a control signal, known as a strobe signal, to synchronize the data output. This can be useful for ensuring that data is transferred or latched at the correct time, preventing data corruption or synchronization issues.
The Receiver also has 8 pins, and out of these 8 pins, 4 pins (pin 1, pin 4, pin 5, and pin 8) have no specific connections, but they are electrically connected. Both the open-collector Data output Pin 6 and VCC Pin 2 are referenced to Com Pins 3 and 7. The Data output allows busing, strobing and wired OR circuit configurations.
Busing: This means that the data output can be connected to a data bus, which is a set of wires used to transmit data from one or more sources to one or more destinations. Busing allows multiple devices to share the same data lines, simplifying data transfer in multi-device systems.
Strobing: Strobing typically involves using a control signal, known as a strobe signal, to synchronize the data output. This can be useful for ensuring that data is transferred or latched at the correct time, preventing data corruption or synchronization issues.
Wired OR Circuit Configurations: This implies that the data output can be connected to multiple inputs in a wired OR configuration. A wired OR circuit combines multiple signals, and if any of the inputs is high (logical 1), the output will also be high. It's a way to create a logical OR operation with hardware.
The transmitter is designed to operate from a single +5V supply. It is essential that a bypass capacitor (100 nF ceramic) be connected from Pin 2 (VCC) to Pin 3 (circuit common) of the receiver.
The transmitter is designed to operate from a single +5V supply. It is essential that a bypass capacitor (100 nF ceramic) be connected from Pin 2 (VCC) to Pin 3 (circuit common) of the receiver.