Remote-controlled fiber-optic Ceiling Light with Arduino
Description: A wooden table features numerous holes of varying diameters designed to accommodate optical fibers. Due to the size of the ceiling lamp (90 cm x 60 cm), it was not feasible to utilize a single bundle of fibers, resulting in the implementation of two beams, each equipped with LED illuminators. The accompanying schematic, which includes an Arduino and its control circuit, is depicted in the figure above. The circuit is relatively simple and was constructed on a breadboard. To manage the high-brightness LEDs, four TIP122 transistors were utilized, with the bases driven by PWM signals generated by the Arduino. Each PWM output from the Arduino is connected to the base of each transistor through a 1 kΩ resistor. Identical types of LEDs are connected in series, with one set housed in the first illuminator and the other in the second. The circuit is connected to an external positive power supply through a 470 Ω resistor. The transistor controlling the white LEDs is linked to pin 10 of the Arduino, the TIP122 for the red LEDs to pin 9, the green LEDs to pin 6, and the blue LEDs to pin 5.
The circuit design employs an Arduino microcontroller to orchestrate the lighting effects of the LEDs. The use of four TIP122 transistors allows for efficient control of the high-brightness LEDs, ensuring that they can be driven adequately without exceeding their current ratings. Each transistor operates as a switch, enabling or disabling the flow of current to the respective LED based on the PWM signal received from the Arduino.
The configuration of the circuit includes a series connection of LEDs, which helps to maintain uniform brightness across the illuminators. The choice of a 470 Ω resistor in the power supply line is critical for current limiting, preventing excessive current from damaging the LEDs. The PWM control mechanism provides the ability to adjust the brightness of the LEDs dynamically, allowing for various lighting effects such as fading and color transitions.
The Arduino code provided includes functions for initializing the LEDs, receiving infrared signals, and controlling the fade effects of the LEDs. The use of a fade array allows for smooth transitions in brightness, enhancing the visual appeal of the lighting. The IR receiver component enables remote control of the lighting system, adding convenience and functionality to the design.
The overall schematic illustrates a well-organized and efficient control system for the LED illuminators, showcasing the integration of optical fibers with modern electronic components to achieve a sophisticated lighting solution. The design exemplifies the effective use of basic electronic principles combined with programming to create an interactive and visually engaging lighting system.A wood table with many holes with different diameters that house the optical fibers. The size of the ceiling lamp (90 cmx 60 cm) did not allow me to use a single bundle of fibers and this is the reason of the two beams I used, each of which comes with a LEDs illuminator as shown: The schematic with Arduino and its control circuit is shown in the figure above: it is a very simple circuit that I built on a breadboard. To control the high-brightness LEDs I used 4 transistors TIP122 whose base is driven with a PWM signal generated by Arduino. Each Arduino PWM output in connected to the each transistor base via a resistor of 1 kohm. The same type of LEDs are connected in series and hosted one in the first illuminator and the other in the second.
The line is connected to the positive external power supply via a 470 Ohm resistor. The transistor connected to the white LEDs is connected to pin 10 of Arduino, the TIP122 of the red LEDs to pin 9, the green LEDs to pin 6, that of the blue LEDs to pin 5. #include #define DELAY_CROMO 100 // Use FNV hash algorithm: #define FNV_PRIME_32 16777619 #define FNV_BASIS_32 2166136261 int lettura; int pLettura; int pinLed[] = {9, 6, 5, 10}; int fade[] = {255, 180, 128, 90, 64, 45, 32, 23, 16, 12, 8, 6, 4, 3, 2, 1, 0}; int RECV_PIN = 11; boolean _loop = true; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { _initLeds(); // Init Led irrecv.
enableIRIn(); // Start the receiver //Serial. begin(9600); } // Compare two tick values, returning 0 if newval is shorter, // 1 if newval is equal, and 2 if newval is longer // Use a tolerance of 20% int compare(unsigned int oldval, unsigned int newval) { if (newval < oldval *. 8) { return 0; } else if (oldval < newval *. 8) { return 2; } else { return 1; } } /* Converts the raw code values into a 32-bit hash code. * Hopefully this code is unique for each button. */ unsigned long decodeHash(decode_results *results) { unsigned long hash = FNV_BASIS_32; for (int i = 1; i+2 < results->rawlen; i+) { int value = compare(results->rawbuf[i], results->rawbuf[i+2]); // Add value into the hash hash = (hash * FNV_PRIME_32) value; } return hash; } void _initLeds() { for (int i=0; i<4; i+) { pinMode(pinLed[i], OUTPUT); analogWrite(pinLed[i], LOW); } } void _LedRGBOn() { for (int i=0; i<3; i+) { analogWrite(pinLed[i], 255); } } void ledFade(int ledpin, int time_wait) { for (int i=0; i<17; i+) { int j=16; analogWrite(ledpin, fade[j-i]); delay(time_wait); } delay(time_wait); for (int i=16; i>=0; i-) { int j=16; analogWrite(ledpin, fade[j-i]); delay(time_wait); } } void twoLedFade(int ledpin1, int ledpin2, int time_wait) { for (int i=0; i<17; i+) { int j=16; analogWrite(ledpin1, fade[j-i]); analogWrite(ledpin2, fade[i]); delay(time_wait); } delay(time_wait); for (int i=16; i>=0; i-) { int j=16; analogWrite(ledpin1, fade[j-i]); analogWrite(ledpin2, fade[i]); delay(time_wait); } } void threeLedFade(int ledpin1, int ledpin2, int ledpin3, int time_wait) { if ( _loop ) { for (int i=0; i<17; i+) { int j=16; analogWrite(ledpin1, fade[j-i]); analogWrite(ledpin2, 0); analogWrite(ledpin3, 0); delay(time_wait); } delay(time_wait); } for (int i=16; i>=0; i-) { int j=16; analogWrite(ledpin1, fade[j-i]
The LED meter is simpler and smaller than its analog counterpart and is commonly found in audio equipment. This version utilizes a National Semiconductor integrated circuit (IC) and employs a logarithmic scale. Each LED operates with a 3 dB difference...
The documentation and code cleaning for the Jaycar Thermor/BIOS branded wireless weather station receiver has been completed. The code is based on the Practical Arduino weather station receiver project. The process involved analyzing the RF signal from the weather station...
A series combination of 16 LEDs provides a luminance (lux) equivalent to a 12W bulb. However, if two series combinations of 23 LEDs are connected in parallel (totaling 46 LEDs), the output is equivalent to a 35W light bulb. Diode...
The multivibrator flashing light emitting diode (LED) display driver circuit can be utilized in toys, creating flashing effects in the eyes of animals or monsters.
This circuit employs a multivibrator configuration, typically a 555 timer IC or a similar component, to...
If you are interested in working with Arduino, you may have considered creating your own Arduino board.
Creating a custom Arduino board can be an enriching project that allows for greater flexibility and personalization in electronic designs. The process typically involves...
This document outlines the process of interfacing an Arduino with an ARINC 429 transceiver, illustrating the general methodology for connecting an Arduino to electronic circuits that can be applied to individual designs. The ARINC 429 bus is the predominant data...
The wire connected to the 5V pin is linked to the positive pins of the breadboard, which are not connected to any other components. There are no additional connections on the positive column. While this may seem like a basic...
A fingerprint door lock system is being considered for implementation. The primary component is a fingerprint reader that, upon recognizing a valid fingerprint, will instruct an Arduino microcontroller to activate a locking mechanism for a predetermined duration. The locking mechanism...
It may seem that due to the numerous flashlight projects undertaken, there is a significant collection of lights. The inductor can be altered to set the current level, but the total current fluctuates with the battery supply, decreasing as the...
We use cookies to enhance your experience, analyze traffic, and (if you allow) serve personalized ads.
By clicking Accept All, you agree to our use of cookies.
Learn more