top of page
panihusiper

Build Your Own Propeller Clock Led Driver with Arduino and 74 Series Buffer Chips



Thx a lot for ya comments and feedback! I used there an old Maxtor Diamond Max HDD. I cut a slot in the platter with an hacksaw (iron saw) hope thats correct :D . The 5 minute segments are generated at the same way as the hands are. The speed is regulated with an TDA5140A Brushless Motor Driver in combination of an LM317 voltage regulator and a potentiometer. The Motor Driver helps to get 4000 rpm whats enough to suppress glitches and to have a quite clock. cause 5400 and 7200rpm are to loud and will bring the hole thing in vibration because the cut makes an imbalance, which has already been compensated by a screw.




Propeller Clock Led Driver



So, I've seen a lot of videos / articles about simple POV clocks. In general, the clock is made from more or less 16 leds.But, I want to have more leds. Maybe something like 30/40 leds. Furthermore, I'd like them to be RGB.


Air Time or propeller clock Propeller Clock much more simple microcontrollers with can be done but the authors project quite a quality job had removed to check DSPIC30F6015 microcontroller is used BLDC motors from... Electronics Projects, DSPIC Propeller Clock Circuit dspic projects, microchip projects, microcontroller projects,


Air Time or propeller clock Propeller Clock much more simple microcontrollers with can be done but the authors project quite a quality job had removed to check DSPIC30F6015 microcontroller is used BLDC motors from the hard disk removed to control the speed TB6588FGES integrated the use of the watch, as well as animation can view the RC5 control control there software C prepared by language source code library include hahil have dosyalarıda in addition TB6588 motor driver and control PIC30F6015 solid eagle pcb, schema files are also available.


Propeller Clock Circuit: Rotating LED display is very demanding in terms of precise timing and display. There are also spot-mentioned design requirements 32 (v2 64 leds) LEDs in a single row on the shoulder, brightness control refresh rate and the associated speed measurement 120 (or 240) arm positions during a single revolution, ie. angle ? = 360 / 120 = 3 (1.5 ) real-time clock backup battery external EEPROM for future extensions control mode with the remote control code RC-5 5 V supply


The APA102C addressable LEDs employ a 2-wire communication protocol consisting of a clock and data line. While this requires one more wire than standard WS2812 addressable LEDs, the advantage is that the communication with the LEDs have a faster data and refresh rates (great for persistence of vision (a.k.a. POV) projects). They are not as strict with timing compared to the WS2812's.


The communication interface between a microcontroller and the APA102 is not as strict WS2812's timing since it uses a 2-wire communication protocol, which consists of a clock and data line. Basically a simplified SPI interface without a slave pin.


With the added clock line, you can use it with both a real-time processor (i.e. an Arduino) and microprocessor (i.e. Raspberry Pi). You will just need to ensure that you are using a logic level converter for 3.3V systems and make sure there is APA102 support for your architecture.


Each end of the LED strip is terminated with a set of four colored wires: red, blue, green, and yellow. Two wires are for power, one wire for clock, and another wire transmits data either into or out of the strip:


This hookup is fairly straightforward. You can power the breakout board(s) with USB power and the Arduino's 5V and GND pins. Then all you need is to send data and clock signal to the LED. Let's go with pin 11 and 13, respectively. We recommend using a hardware pins for your microcontroller for best performance. Simply connect four M/F jumper wires to the RedBoard Qwiic.


The team will be divided into two groups. Team 1 will be responsible for the web interface and integration of the Wifly module on the SJSU board to communicate with the website. Team 2 will build the POV device and write the driver to display the user message on the POV display. A summary of the team and responsibilities is shown below:


This was a fun project to complete. It was rewarding to produce a device that could be controlled by anyone with an internet connection. The team worked well together and learned a lot about the SJSU board and how to use it. In addition, the team got experience building a webpage, writing php code, using the WIfly module, wiring and driving the LEDs. and writing C++ drivers. Probably the biggest challenge of all was building the mechanical device itself.


Propellor clocks are "just a matter of engineering" - ie the principles are well understood, "you just have to do it". The gap between knowing how and doing can be large :-) - but following some of the examples below will make it easier.


This is beautiful! I tried to open your Altium files but it appears that some pieces are missing. The schematic sheet with the LED drivers is present, but the schematic sheet explaining the microcontroller is missing. The micro USB connector library is also missing.


To fill in details for others that may not be able to open the files: The design uses 12x SCT2024 16-bit LED drivers. It appears that each individual color (red, green, and blue) is chained across four parts. So the top row is 4 parts for blue, the middle is 4 parts for green, and the bottom row is 4 parts for red. Each of these parts has a 2x8 header on each side for 8 out of the 16 bits and the other 8 pins on the header are +5V.


I think, that the method with randomly switching LEDs will be the quickest one. However, I tried to avoid the situation when one driver will control different LED colors. I was affraid that with that I will get differents level of brightness. Knowing that, I decided to take the approach described in workload.


Basing a digital clock design on NTP requires access to the Internet which can be expensive to implement, but allows for a very simple clock design for a couple of reasons. First, no battery backup circuitry is required to maintain the time setting. If clock power is lost, the connection to the Internet will automatically be reestablished once power is restored; the clock will automatically set itself to the correct time. Second, no controls for manually setting the time are typically necessary because time and date settings are automatic.


Designing this digital clock allowed me to experiment with aspects of the ESP8266 that I had not used before, including the hardware SPI interface used to run the LCD display and the onboard EEPROM for storage and retrieval of the DST state indicator.


Whereas the hardware for this clock borders on the trivial, the software/firmware for the clock is a bit more involved and complex. The seven files which make up the code are described in Table 2.


The ESP8266_ST7735 LCD driver code was adapted from the Adafruit ST7735 library to use the hardware SPI interface on the ESP8266. If you want to use a different LCD display, you will have to find/develop an appropriate driver yourself.


The version of these libraries I used to develop the NTP clock is included in the zip file for this article. Remember, libraries must be installed in the arduino/libraries directory on your development computer and the Arduino IDE must be restarted to recognize them.


Most of the code that makes up the NTP clock is straightforward and will be easy to understand. The NTP code in the file NTP.h is more complex, however. To retrieve the time, one must get an IP address of a time server from the pool of time.nist.gov servers using the hostByName function as shown in the following code. If you were to monitor the timeServerIP address during the operation of the clock, you would see that the time requests rotate in a round robin fashion between the servers in the time.nist.gov pool:


// Initialize values needed to form NTP request packetBuffer[0] = 0b11100011; // LI, Version, Mode packetBuffer[1] = 0; // Stratum, or type of clock packetBuffer[2] = 6; // Polling Interval packetBuffer[3] = 0xEC; // Peer Clock Precision // 8 bytes of zero for Root Delay & Root Dispersion packetBuffer[12] = 49; packetBuffer[13] = 0x4E; packetBuffer[14] = 49; packetBuffer[15] = 52;


Once the UDP packet is sent, you wait for a response; in that response will be a time stamp (the four bytes starting at the 40th byte of the response) indicating the time the packet was sent. The units of this time stamp are seconds (since 1900) and it is a very large number. This value gets converted to Unix time (which is seconds since January 1, 1970) by the subtraction of the number of seconds between 1900 and 1970. This number is then further modified via time zone correction. This corrected value is used by the Time library, and converted to the current time and date displayed by this clock. The getNTPTime function pulls this all together: 2ff7e9595c


0 views0 comments

Recent Posts

See All

Comments


bottom of page