Skocz do zawartości

Budowa i programowanie wyświetlacza widma pixel poi, visual poi na apa102 i teensy 3.5


djembe

Pomocna odpowiedź

Witam serdecznie

Jak nie ten dział to proszę przenieść:)

Zbudowałem pixel poi na podstawie projektu z dwóch stron: https://learn.adafruit.com/supernova-poi oraz: https://forum.pjrc.com/threads/30020-Teensy-APA102-POV-Poi-Pixel-Poi-Build-Tutorial.

Działa to wszystko całkiem przyzwoicie ale projekt jest rozwojowy. Przede wszystkim chciałbym napisać program pod windows do wgrywania grafik(otwarte oprogramowanie w którym jak będę chciał zbudować większy czy mniejszy wyświetlacz będzie opcja podania ilości diod czy np sterowania przez bluetooth bądź bez) Chce dodać karty sd i zmienić miejsce włącznika(miałby go zastąpić micro-styk na górze przy zaczepie łańcucha o ile można załatwić to programowo). Na rękojeści miałby znaleźć się włącznik programu. Chciałbym zacząć od dopisania kodu żeby po uruchomieniu przez kilka sekund na pasku led wyświetlał się stan naładowania baterii(w środku znajduje się ogniwo 18650). Ktoś wie jak to zrobić?? Jaki kod i gdzie wpisać??

Mój kod to:

#include "FastLED.h"

#define NUM_LEDS 60
#define DATA_PIN 13
#define CLOCK_PIN 11
CRGB leds[NUM_LEDS];
//int numberOfSlices = 150;
void setup() {

delay(200);
FastLED.addLeds<APA102, DATA_PIN, CLOCK_PIN,BGR>(leds, NUM_LEDS);
}


//for post use this>
const unsigned int array1[] = { 0xfaa60f, 0xffaf10, 0xffb914, 0xf7b312, 0xd99a01, ......

const unsigned int array2[] = { 0x080300, 0x050102, 0x000005, 0x000106, 0x020307,...


void PoiSonic(unsigned long time, const unsigned int array[], int sliceNumber);

void loop() {
PoiSonic(10000,array1,120);//15
PoiSonic(10000,array2,256);//16


}

void PoiSonic(unsigned long time, const unsigned int array[], int sliceNumber){
unsigned long currentTime = millis();
while (millis()< currentTime + (time)) {

int f= sliceNumber;// previously used numberOfSlices;
int z; //a counter
int j=NUM_LEDS;

for (int x=0;x<f;x++){
for(z=NUM_LEDS;z>0;z--){
leds[z-1]=array[x+((j-z)*f)];}
FastLED.show();
delayMicroseconds(40); //may need to increase / decrease depending on spin rate
}
delayMicroseconds(1000); //may need to increase / decrease depending on spin rate
}
}

 

95264802_3096527757074329_1179039140604280832_n.jpg

95293243_250116596186094_2581363481919881216_n.jpg

95554398_2984308804991327_1044018717576396800_o.jpg

 

Edytowano przez djembe
Zachęcam do używania bloku kodu
Link do komentarza
Share on other sites

(edytowany)

Może mi ktoś podpowiedzieć od czego zacząć? Nie ukrywam, że jestem zielony i nauczenie się jak uruchomić wyświetlacz i wrzucanie obrazów sprawiło mi wiele trudności ale od czegoś trzeba zacząć.  Proszę tylko nie piszcie mi, żebym się douczył bo właśnie po to się zarejestrowałem na forum żeby się nauczyć:)

 

Edytowano przez djembe
Link do komentarza
Share on other sites

(edytowany)

Ok monolog fajny ale może ma ktoś jakiś pomysł?

Na razie wymyśliłem, że podzielnik dla mojego 13 bitowego adc to 0-8217 ale jak w kursie woltomierza z tego nie będzie, gdyż tam procesor zasilany jest z usb 5V i adc odczytuje wartości ogniwa a jak zasilimy z ogniwa to w momencie ubywania Voltów zaczną wychodzić kwiatki przynajmniej tak mi się wydaje czy się mylę? Ktoś coś??

Edytowano przez djembe
Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.