Dakujem velmi pekne za reakciu.
- Ohladne urcenia frekvencii. Pravdupovediac neviem, ako urcit, aka najmensia frekvencia by mi mohla stacit. Ak by ste mi vedeli poradit, tak hlavne vypocty su tieto:
if (LEDpas_zmena) {
LEDpas_zmena = 0;
// Zmena efektu
switch (LEDpas_efekt) {
case 12 : {
for (i=0; i < pocet_LED; i++) {
LED_new[0]* = 255 * Jas(LEDpas_jas) * SelectLED(LEDpas_select_LED, i);
LED_new[1]* = 255 * Jas(LEDpas_jas) * SelectLED(LEDpas_select_LED, i);
LED_new[2]* = 255 * Jas(LEDpas_jas) * SelectLED(LEDpas_select_LED, i);
LED_new[3]* = 255 * Jas(LEDpas_jas) * SelectLED(LEDpas_select_LED, i);
}
break;
}
}
//Uloženie pôvodných hodnôt
for (i=0; i < pocet_LED; i++) {
LED_old[0]* = LED[0]*;
LED_old[1]* = LED[1]*;
LED_old[2]* = LED[2]*;
LED_old[3]* = LED[3]*;
}
time = 1;
while (time < dlzka_prechodu) {
if (time != time_old) {
for (i=0; i < pocet_LED; i++) {
LED[0]* = LED_old[0]* + ( (( LED_new[0]* - LED_old[0]* ) / dlzka_prechodu) * time);
LED[1]* = LED_old[1]* + ( (( LED_new[1]* - LED_old[1]* ) / dlzka_prechodu) * time);
LED[2]* = LED_old[2]* + ( (( LED_new[2]* - LED_old[2]* ) / dlzka_prechodu) * time);
LED[3]* = LED_old[3]* + ( (( LED_new[3]* - LED_old[3]* ) / dlzka_prechodu) * time);
} // 0,x - GREEN; 1,x - RED; 2,x - BLUE; 3,x - WHITE
cli();
for (i=0; i < pocet_LED; i++) {
WS2812BWriteByte(LED[0]*); //green
WS2812BWriteByte(LED[1]*); //red
WS2812BWriteByte(LED[2]*); //blue
WS2812BWriteByte(LED[3]*); //white
}
WS2812BWriteBit(2); //reset
sei();
time_old = time;
}
if ((LEDpas_zmena) && (pohybovy_senzor_noc_enable)) break;
if ((LEDpas_zmena) && (pohybovy_senzor_max_enable)) break;
}
if (LEDpas_zmena == 0) {
cli();
for (i=0; i < pocet_LED; i++) {
WS2812BWriteByte(LED_new[0]*); //green
WS2812BWriteByte(LED_new[1]*); //red
WS2812BWriteByte(LED_new[2]*); //blue
WS2812BWriteByte(LED_new[3]*); //white
}
WS2812BWriteBit(2); //reset
sei();
}
}
-
Suhlasim, rusim tuto variantu.
-
Este mi napadla tretia varianta a ta ma suvis s tym, co ste mi tiez radil. A to je, pouzit nastavitelny step up DC-DC prevodnik a 7805-ku. Na DC-DC by som dal asi 7V (minimalne napatie podla datasheet), popripade skusil by som 6V ako ste mi radili Vy a stabilizoval to 7805. Ak by to slo a stacilo by to na odrusenie AD prevodnika, tak by som bol mozno za tuto variantu, ak teda by som nemohol ist nizsie frekvenciou. LED pas a vsetko ostatne by som napajal az po 7805 z napatia 5V. Dva step up DC-DC prevodniky (jeden 5V pre LED pas a druhy 6-7V pre CPU) by bolo asi zbytocne pouzit.
//EDIT
Este taka uvaha. Ak by som isiel dolu s napajanim CPU a frekvenciou, tak by som docielil mensiu spotrebu. Len potom neviem, ci CPU napajat priamo z baterii, kde bude napatie medzi 3,3 az 4V alebo ho napojit za step up prevodnikom a zrazit napr. s LF33CV na 3,3V? Vadi CPU kolisanie napatia? A tiez, ci je nutne pouzit externy krystal, alebo pouzit internych 8MHz, ale interny asi nie je presny.************************************