![]() ![]() Please follow the project logs to understand the entire design process as I work my way from idea to sketches, to prototypes and settle on a final kit design. Simple soldering skills are all that is required and the CUBEx8 will be easy to build. They can be soldered or not, allowing the cube to be disassembled and reassembled very easily.Ī major goal is requiring some assembly, but not an overwhelming amount. At that point the LED boards simply snap into the base board press-fit style. There are eight LED boards and each board will need to have a header soldered onto it. The kit is comprised of a base board that can be mounted vertically or horizontally as desired. Other boards have 3.3V I/O and the translator will be required. Some controller boards have 5V I/O and won't need the translator. While I don't include a controller in the kit, the base board of the kit does include a 3.3V to 5V level translator that can be used or bypassed. One key aspect of this cube design is that the maker gets to use their favorite controller board. The goal is to squeeze the design down to the bare minimum components yet still have a nice looking and fun to build kit that any maker would be proud to show. (but the timing works anyway checked it with serial.CUBEx8 is my attempt to create a lower cost, easier to assemble 3D LED cube kit. parallel to step_counter the z_updateheight goes 0 to 7. So with the 4 arrays there are 15 brighnesslevels to achieve. to be exact: going throught working_bit = 0, one time working_bit = 1, two times working_bit = 2, four times and working_bit = 3, eight times. for(int o = 0 o one full update is to go trough all 8 layers 15 times since brightness 0 is never on void printState(byte state) // just to check the generated arrays (that works!) Volatile int working_bit = 0 // used in the ISR Volatile int step_counter = 0 // used in the ISR Volatile int z_updateheight = 0 // used in the ISR _//īyte red_state = // to store the values of the 512 LEDs but 4 times since i use BAM 4 Bit resolution My code: (it is inspired by Kevin Darrahs code) #include I understand there may still be questions, so please feel free to ask for more information." The first 8 bytes go into the registers controlling the cathodes of all 64 red LEDs, the second 8 bytes go into the registers controlling the cathodes of all 64 green LEDs, the third 8 bytes go into the registers controlling the cathodes of all 64 blue LEDs, and the last byte controls the cathodes of the 8 layers (0-7). "It's a bit difficult to explain the build, but it is important to know that there are 25 74HC595 shift registers cascaded together. Maybe someone can help me find my mistake. ![]() I can even print it in the ISR, and the arrays are there. ![]() But!!! The array is not all zeros, the data exists, and the LED function puts it there correctly. However, if I want to display layers 1-7, it's completely dark. For example, if I set the layer array manually (e.g., SPI.transfer(B10000001 or B1111111111)), the first layer and the 7th or all layers light up with the pattern of the first layer in the state arrays. I have tried many things, but it seems like the update function only takes the first layer into consideration. Electronically, the circuit works (I am studying electrical engineering and microelectronics, so I am quite sure about that). I am relatively new to the Arduino IDE but have solid knowledge in C and Python. I am able to control the first layer so far. Everything works fine except for the code. I have built a LED cube with custom printed parts, custom PCB, etc.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |