not really the results i expected, more doubt on proteus ?
i only expected the period to change
![]()
not really the results i expected, more doubt on proteus ?
i only expected the period to change
![]()
Warning I'm not a teacher
So Richard,
What is the idea now, then?
Is there any "clean" -meaning software- workaround?
If not, I'll have to make five small independant circuits to each drive his own NeoPixel string, five circuits controlled by a sixth one
BTW, here is how my circuit works with 1 single NeoPixel string.
https://youtube.com/shorts/4fZk9KT4V1M
...still in office now.
Last edited by flotulopex; - 24th July 2024 at 14:35.
Roger
Are you displaying the same "information" on all 5 strings or calculating the "content" for each string on the fly as you go about updating them?
Reason I ask is that 5 strings times 28 LEDs times 3 bytes per LED equals 420 bytes and the 16F690 only has 256 bytes of RAM.
It is (going to be) a four digits 7 "segments" (each segment is made up of four NeoPixels >> 4x7= 28 NeoPixels per string) wall clock.
The fifth segment is made of 2 or 4 four (not decided yet) NeoPixels and will serve as seconds separator/indicator.
Yes, each string will be uptated specifically, if I can say so.
By now, it all fits in my 16F690 nicely because I address the strings only once at the time or 1x28x3 bytes in total.
Last edited by flotulopex; - 24th July 2024 at 14:48.
Roger
Can all the outputs be on the same port, preferably sequential?
Warning I'm not a teacher
As Henrik pointed, I'm somehow limited in the number of bytes I can use to address the NeoPixel strings.Can all the outputs be on the same port, preferably sequential?
Because of the very narrow timings, I cannot use routines to address the strings repeatetely with GOTOs/FOR-NEXTs/GOSUBs and so on. For this reason, I have to write code to address 24 bits for one Pixel in a row and only here, I can repeat the routine with one of the previous mentionned commands. This to say there is not only a timing issue but it is also about code length or space in the PIC.
Having this limitations in mind, I started my project addressing one string at the time and I've got plenty of time to display a minute based clock. Since all strings use the same common code and therefore the same variables, I can only differentiate them using different ports.
So if you mean to have only one NeoPixel string made of (4 digits x 7 segments x 4 Pixels [or LEDs] x 3 bytes per Pixel) + (4 Pixels x 3 bytes per Pixel) = 348 bytes, I can't address them in an array, as far as I understand it.
But what do you have in mind, please?
Last edited by flotulopex; - 24th July 2024 at 15:53.
Roger
There is an easier protocol for addressable LEDs. The APA102 that is not strict on timing.
https://learn.sparkfun.com/tutorials...okup-guide/all
Ioannis
Last edited by Ioannis; - 25th July 2024 at 23:21.
Bookmarks