Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Gyorskeresés
Legfrissebb anyagok
- Bemutató Spyra: akkus, nagynyomású, automata vízipuska
- Bemutató Route 66 Chicagotól Los Angelesig 2. rész
- Helyszíni riport Alfa Giulia Q-val a Balaton Park Circiut-en
- Bemutató A használt VGA piac kincsei - Július I
- Bemutató Bakancslista: Route 66 Chicagotól Los Angelesig
Általános témák
LOGOUT.hu témák
- [Re:] Elektromos rásegítésű kerékpárok
- [Re:] [sziku69:] Szólánc.
- [Re:] [GoodSpeed:] Windows 11 PRO FPP (Full Packaged Product) - Retail, Box, dobozos
- [Re:] [gban:] Ingyen kellene, de tegnapra
- [Re:] [antikomcsi:] Való Világ: A piszkos 12 - VV12 - Való Világ 12
- [Re:] [ubyegon2:] Airfryer XL XXL forrólevegős sütő gyakorlati tanácsok, ötletek, receptek
- [Re:] [Luck Dragon:] Asszociációs játék. :)
- [Re:] [GoodSpeed:] ASUS ROG STRIX B650E-F GAMING WIFI - Memory Context Restory (MCR)
- [Re:] [attilasd:] A laposföld elmebaj: Vissza a jövőbe!
- [Re:] [sziku69:] Fűzzük össze a szavakat :)
Szakmai témák
PROHARDVER! témák
Mobilarena témák
IT café témák
Útvonal
Fórumok » Egyéb hardverek » Mikrokontrollerek Arduino környezetben (programozás, építés, tippek)Téma összefoglaló
Hozzászólások
Janos250
őstag
Hoppla-hopp! Na, megvan a hiba.
A "No hardware SPI pins defined. All SPI access will default to bitbanged output"
hibajelzés, az nem a fordító hibajelzése, hanem a fastspi.h fileban van:# if !defined(FASTLED_INTERNAL) && !defined(FASTLED_ALL_PINS_HARDWARE_SPI)
# ifdef FASTLED_HAS_PRAGMA_MESSAGE
# pragma message "No hardware SPI pins defined. All SPI access will default to bitbanged output"
# else
# warning "No hardware SPI pins defined. All SPI access will default to bitbanged output"
# endif
# endif
El kéne távolítani azt a fastspi.h-t!
Hú, erre a fene se gondolt.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
fastspi.h törlendő!
A fastled verzió nem is fog menni ESP32-n.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Xpod
addikt
Ezt mégis, honnan vadásztad elő?
Egyébként érdekes, de most engedte feltölteni az általad linkelt kódot a kontrollerre.
Akkor ESP32 alatt az Adafruit_Neopixel könyvtárat lehet csak használni üzembiztosan.
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Janos250
őstag
"Ezt mégis, honnan vadásztad elő?"
Google
"Egyébként érdekes, de most engedte feltölteni az általad linkelt kódot a kontrollerre."
Akkor már megkérlek, hogy próbáld is ki futtatni azt a két fájlt, amit küldtem, hogy tudjam, más boldogul-e vele! Kösz!
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Xpod
addikt
A sketch_mar09WS2812_ESP32_RMT_status_bit_check_CH0_GPIOx_24bitFe.ino egy szép villogós fényjátékot csinál.
A sketch_mar16aWS2812DigWrite-alProba01.ino szintén működik.
Az első led villog néhányat pirosan, majd kb 20 led elkezd világítani, az első zölden majd szépen megy át kékbe, 1 led sötéten marad és ismét lesz egy kb 20 ledes zöld-kék átmentes szakasz.
Egyik fájlban sem láttam külső library-t. Jól gondolom, hogy ami a libraryban benne van, azt te konkréten ezekbe a fájlokba kódoltad bele a setup részbe?
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Janos250
őstag
Kösz!
Nem szedtem ki a dolgokat librarybe, mert ezek demonstrációs céllal készültek. Tehát nem belevittem a libraryt, hanem "nem vittem ki". Azt akarnám bemutatni, hogy mennyire egyszerűen lehet kezelni ESP32-vel a WS2812-t is. Majd ha lesz annyi időm, leírom, a még néhány hasonló megoldással együtt. Igen, az a próba van beleírva a lightShowInCore0Code()-ba a case-eknél, amit leírtál. Ez egy próba, hogy lássam, úgy működnek-e a ledek, ahogy szeretném. Látom, Nálad is úgy működnek Ja, még annyit, hogy a két mag előnyét szándékoztam - többek között - bemutatni. Az egyik mag kezeli a ledeket, a másik meg kiszámítja, hogy mit kell kivinni. Így mehetnek párhuzamosan, nem zavarják egymást. Ha már van két magunk az ESP32-ben használjuk ki.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Xpod
addikt
Köszi a segítséget és a türelmet is.
Háhá, kicsit előrébb léptem. (Mondjuk azt nem teljesen értem mit csináltam, de működik. )
Az alábbi kóddal végre minden LED egyforma színnel világít. Már csak azt kell kitalálnom, hogy a kód végén, ha letelik a delay, akkor villan/pulzál egyet a szalag. Egyáltalán miért kell a delay? Minden LED vezérlős kód amit eddig láttam a neten egy delay-jel végződik. Kell ez nekem? Ez ezért kell, hogy amikor a delay fut, akkor kisebb az áramfelvétele az ESP-nek, kvázi energiatakarékos módba kapcsol erre az időre?
#include <Adafruit_NeoPixel.h>
#define LEDPIN 13 //vezérlés
#define LEDmennyiseg 56 //osszes led
#define szakasz1kezdet 0
int i;
Adafruit_NeoPixel LEDek = Adafruit_NeoPixel(LEDmennyiseg, LEDPIN, NEO_GRB + NEO_KHZ800);
// szín beallítas: zold,kek, piros GBR
void setup() {
LEDek.begin();
LEDek.show();
}
void loop() {
uint32_t kikapcsolt = LEDek.Color(0,0,0);
uint32_t csunyafeher= LEDek.Color(153,255,255);
for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,csunyafeher);
LEDek.show();
}
delay(1000);
}
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Janos250
őstag
Na, most megint csak a levegőbe dumálok:
Én a LEDek.show(); -t egy sorrál hátrébb tenném, tehát a kapcsos zárójel mögé.
Mert:
A for ciklus fusson végig, azaz töltsd fel a puffert teljesen, utána írja ki a dolgokat a LEDek.show();
Hogy jobban megértsd mit csinálsz, javasolnék egy próbát:
a LEDek.setPixelColor(i,csunyafeher); helyére próbára:
LEDek.setPixelColor(i,LEDek.Color((255-i*4)/4,i,0)); Lusta voltam másikat csinálni.
Tehát:
1. végigmegy a ciklus, azaz letárolja [LEDek.setPixelColor]
2. amikor a teljes show ki van számolva, le van tárolva, a LEDek.show(); kitölti a szalagra, és megjelennek a színek
3. vár 1000 msecet, azaz egy secet, és újra tölti.
A villanás (gyanúm szerint) megszűnik, ha a LEDek.show() a cikluson kívülre kerül.
Így, hogy ugyanaz a szín lesz mindig kiírva, nem látszik a lényeg, de kipróbálhatod pl ezt:for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,csunyafeher);
} ;
LEDek.show();
delay(1000);
for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,kikapcsolt);
} ;
LEDek.show();
delay(1000);
for (i=szakasz1kezdet; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,LEDek.Color((255-i*4)/4,i,0));
} ;
LEDek.show();
delay(1000);
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Xpod
addikt
Tyű, köszi. Így, hogy ezt elmagyaráztad értem mit csinál a kódom.
Javítom és megnézem mi lesz belőle.
Azt hittem egyesével kell kiíratni a pixelek-et, ezért kell a for ciklusba betenni.
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
tibi-d
tag
Szervusz!
Én egy századmásodperces stoppert készítettem két fénysorompóval. Az érzékelők tükörreflexiós lézerrel működtek. Ha az egyik érzékelő lézerét megszakították, akkor elindult a stopper, ha a másik lézert szakították meg, akkor megállt. Mivel strapabíró, megbizható érzékelés kellett, a lézerek ipari kivitelüek voltak. Ebből következik, hogy a projekt legdrágább komponensei voltak.
Teasüti
nagyúr
Aha, pár dollárért kéne inkább vmi.
tibi-d
tag
A PIR-ek működési elvüknél fogva lassúak. Ezek hőtömeget érzékelnek. Ha egy ember elhalad előtte, az néhány másodpercig tart. Ezt folyamatosan érzi. Ha már nincs előtte a hőtömeg, kikapcsol. Lehet kapni "Függöny" lencsét az érzékelők elé, ez kb. 20-50cm-re szűkíti az érzékelési tartományt. Egy próbát megér.
[ Szerkesztve ]
Szedj szét egy olcsó mozgásérzékelőt, szedd le róla a jelfeldolgozó elektronikát, dolgozd fel az analóg jelet közvetlenül az mcu-val.
[ Szerkesztve ]
Janos250
őstag
Hogy működik Neked ez a program?
Kíváncsiságból feltettem ezt a libraryt, és az itt leírt programot, de nem stimmelhetnek az időzítések, mert változik a szín. Nem nagyon, de változik. Ennek stabilan kellene tartani a színt.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Tovább próbálkoztam, de nekem nagyon összevissza működik ez a könyvtár.
Csinálja a dolgokat, de eléggé rendszertelenül.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Xpod
addikt
Szia!
Ezzel a megoldással, sikerült elérnem, hogy csak az 1. és a 25. led világít csak sötét kéken, a többi világoskék. Tegnap kb 4 órát üzemelt és nem vettem észre sem villogást, sem színváltozást. (Egyébként tegnap írtam a hobby elektronikás topicba és lehet tápot kell cserélnem, mert lehetséges, hogy van egy kis gerjedés az áramkörben.)#include <Adafruit_NeoPixel.h>
#define LEDPIN 13 //vezérlés
#define LEDmennyiseg 56 //osszes led
int i;
Adafruit_NeoPixel LEDek = Adafruit_NeoPixel(LEDmennyiseg, LEDPIN, NEO_RGB + NEO_KHZ800);
void setup() {
LEDek.begin();
LEDek.show();
}
void loop() {
uint32_t szin= LEDek.Color(0,128,128);
for (i=0; i<LEDmennyiseg+1; i++)
{
LEDek.setPixelColor(i,szin);
}
LEDek.show();
delay(1000);
}
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Tankblock
aktív tag
Hello,
a codeban van egy elírás a for ciklusban. A +1 et szedd ki. 0 és 55 között pont 56 szám van. Szerintem túlcímzed és pont az lehet az a villogás tárgya is ha újraindul.
Próbáld meg ha valami futófényt teszel rá.
Release the Beast....
Xpod
addikt
Üdv,
A +1 azért került bele, mert ha nem így írom, akkor az 1. led kéken, a 25. led pedig zölden világít.
Az eredeti kód, ami alapján elkezdtem ismerkedni ezzel az egésszel itt van: [link]
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Teasüti
nagyúr
A kódod átnyálazása nélkül csupán tapasztalatból írom, hogy ha nem azt látod a szalagon amit szeretnél és a szalag nem pixelhibás, akkor az esetek 100%-ában a kódban van a hiba.
Ha az első és utolsó ledek színe nem oké, akkor az én tippem az volna, hogy a 3 színkomponens tömbbe rendezésénél lesz a gond.
A táp nem okoz semmilyen zavart a jelben, amíg nem brownout-ol a szalag vagy az mcu.
Inkább a szalag pwm vezérlése okozhat zavarokat a tápban, ha nincs pufferelve egy szép nagy kondival.
[ Szerkesztve ]
Xpod
addikt
Köszi a segítséget, de egyelőre feladom. Szinte biztos, hogy az egész problémám hardveres, konkrétan a tápegységre gyanakszok.
Ugyanaz a kód a 10 db-os teszt ledszalagon ami USB-ről kapja a tápot, tök másképp viselkedik, mint az 56db-os szalag, amihez külön csináltam a tápegységet. Szerzek egy másik tápot amit javasoltak az elektorniká topicba. A 10 db-os szalag jól, működik, az 56-os még akkor sem működik őgy ahogy kellene, ha csak 20 db ledet címzek vele.
#Teasüti, nincs puffer kondi. Konkrétan ezt csináltam: [link]
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Teasüti
nagyúr
Az igen!!
Bátor vagy!
Janos250
őstag
A WS2812 - tapasztalatom szerint - nyugodtan túlcímezhető. A felesleg megy a levegőbe, nem tudja az utolsó pixel, hogy ő az utolsó, hanem küldi tovább az adatot.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Tankblock
aktív tag
A szalag igen, a memória nem, nézd meg a definícióban 56 adott meg utána meg beleír az 57 be.... Ha védett lenne a memória instant rebootot okozna... Még lehet hogy így is....
Release the Beast....
Janos250
őstag
Igen, leesett.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Teasüti
nagyúr
Amit javasolnék, hogy meg kell nézni milyen utasításokkal lehet tömböt átadni az Adafruit könyvtárának.
Aztán te magad ellenőrzöd utána milyen adatok kerülnek ki a szalagra. Ergó te állítod össze egy byte tömbben az 56*3 elemet, GRB vagy RGB sorba rendezve szalagtól függően és így egyben adod át a könyvtárnak.
Mert így, hogy a könyvtár pufferét írod a setPixelColor-ral, így nem látható mi is történik egy absztrakciós réteggel lejjebb.
Nekem számtalanszor ez adott lehetőséget érdemi debug-ra, ezért se használok ilyen 5 perc alatt beüzemelhető, demókkal tarkított könyvtárakat. Csak a minimalista show() funkció legyen benne, semmi más.
Annak tudjak átadni egy tömböt, amiben benne vannak a színkomponensek és ennyi.
Az animációt meg megírod magadnak.
[ Szerkesztve ]
Janos250
őstag
Belenéztem ebbe az Adafruit könyvtárba, és elvi problémám van vele:
deklarálja a szokásos módon:
static inline uint32_t _getCycleCount(void) {
uint32_t ccount;
__asm__ __volatile__("rsr %0,ccount":"=a" (ccount));
return ccount;
}
Ez rendben.
A bitek kezdeténél vár annyit, amennyit kell:
while(((c = _getCycleCount()) - startTime) < period); // Wait for bit start
Ugyanígy várakozással időzít a magas szintnél is. Ez így jó (lenne), erre írtam egyszer korábban, hogy a "gyalog" módszer.
Nincs RMT, ciklusban vár, de OK, mert közben úgyse csinál semmit a proci.
Csakhogy:
a uint32_t _getCycleCount(void) mint láthatjuk 32 bites, tehát nagyjából 17 másodpercenként átfordul, és olyankor borul az időzítés!
Persze van elég nagy valószínűsége, hogy nem akkor írja a szalagot, de ha igen, akkor csúszik az egész. Nem csak egy pixel, mert "pixel végjel" nincs.
Ezért kell 64 bites verziót használni (szoftveresen megoldva)
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
JozsBiker
aktív tag
Adafruit_NeoPixel LEDek = Adafruit_NeoPixel(LEDmennyiseg, LEDPIN, NEO_RGB + NEO_KHZ800);
Esetleg próbáltad 400 kHz -en is ?
Teasüti
nagyúr
Tényleg, ha már szóba került, akkor ezt hogy lehet kezelni?
Még Uno-nál volt téma, hogy a millis() hány nap után fordul át és mindig említésre került, hogy 24/7-es projekteknél erre figyelni kell.
Na de mit kéne csinálni vele?
Janos250
őstag
UNO-nál nem tudom.
ESP32-n én így oldottam meg:
A union nem tartozik a lényegéhez, de nem volt most kedvem átberhelni, csak bekopiztam.
typedef union konv {
uint64_t v64bit = 0 ;
struct {
uint32_t low32bit ;
uint32_t hi32bit ;
} s32bit;
struct {
uint16_t low32bit_low16bit ;
uint16_t low32bit_hi16bit ;
uint16_t hi32bit_low16bit ;
uint16_t hi32bit_hi16bit ;
} s16bit;
uint8_t v8bit[8];
};
uint64_t getCycleCount64() {
static uint32_t CycleCount32 = 0 ;
static konv CycleCount64 ;
static uint32_t ccount;
__asm__ __volatile__("esync; rsr %0,ccount":"=a" (ccount));
CycleCount32 = ccount ;
if (CycleCount64.s32bit.low32bit > CycleCount32 ) {
CycleCount64.s32bit.hi32bit++ ;
};
CycleCount64.s32bit.low32bit = CycleCount32 ;
return CycleCount64.v64bit ;
} ;
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Egy mondat magyarázat hozzá:
minden használat során kiolvassuk a 32 bites számlálót, de csinálunk egy "felső", magasabb helyiértékű 32 bitet is, ami induláskor 0 lesz. Ha a kiolvasott számláló értéke kisebb, mint az előző kiolvasásnál, akkor növeljük eggyel a magasabb helyiértékű 32 bitest is, mert akkor a számláló átfordult.
Ez jól működik mindaddig, amíg legalább 17 másodpercenként használjuk.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Teasüti
nagyúr
Ügyes! Nem gondoltam volna erre.
Ha hozzáadsz egy feltételt, mikor lejár a számláló, akkor meg se kell hívni külön annak átfordulása előtt.
A fenébe is, még mindig nem értem ilyen mélységeiben a nyelvet.
[ Szerkesztve ]
Xpod
addikt
Láttam ezt a cikket, de azt hittem ez csak Arduinora vonatkozik. ESP32-nél nem láttam ilyen megoldásokat.
De egy nagyobb kondit (asszem 1500-as van itthon) akkor még bekötök. Tegnap este én is erre jutottam, csak még a kivitelezést nem tudtam megcsinálni.
JozsBiker: igen, próbáltam 400kHz-en is, de nincs változás.
Kb 13 éve (még a fősulin) programoztam utoljára C-ben (Akkor egész jól ment, addig amíg be nem kavartak az objetumokkal). Ismerős környezet amibe kódolni kell, de soha nem tanultam kontrollert programozni. Ezt most kb 1 hónapja találtam ki, így nekem egyelőre bőven megfelel a gyári csili-vili könyvtárak használata. Majd ha már legalább a saját kódom parancsait érteni fogom, akkor hanyagolom a gyári könyvtárakat, de egyelőre azon küzdök a hardver és a szoftver úgy működjön ahogy azt szeretném, és egy 10 soros kódot nem 2 heti guglizással kelljen összeraknom.
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Teasüti
nagyúr
Nem, ez a bekötés minden digitális szalagra vonatkozik.
Akkor egész jól ment, addig amíg be nem kavartak az objetumokkal
Eeegen, ezzel én is így vagyok.
Mai napig nem jöttem még rá a könyvtár felépítésének logikájára. Amikor azt hiszem a szintaktikát sikerült megértenem a legalapvetőbb 3 soros tutorial-lal az Arduino oldalán, akkor rájövök, hogy fogalmam sincs hogy kéne szétdarabolni a már megírt függvényeimet könyvtárakká.
[ Szerkesztve ]
Janos250
őstag
Én nagyon szkeptikus vagyok az Adafruit könyvtár használatát illetően.
Az a kisebbik gond, amit már leírtam, hogy a számláló átfordul, van egy sokkal nagyobb:
Az 1 msec-enkénti megszakítás nincs kivédve.
Próbálgattam ezt a könyvtárat, de sehol nem akart működni, aztán megnéztem miért. Itt a képek.
Az 1 msec-enkénti megszakítás 7-8 microsec, ami pont a határon van. Elméletileg 50 microsecet írnak a határra, de én még olyan szalaggal nem találkoztam. Lehet, persze, hogy az eredeti Adafruit szalagok tudják, de ezek között a kínaiak között én még nem találtam olyat, aminél ne 7-8 microsec lenne a határ, tehát pont a kritikus "billegő" tartomány.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Megvan a megoldás:
taskDISABLE_INTERRUPTS() ;
LEDek.show();
taskENABLE_INTERRUPTS() ;
Így használd! Minden egyes LEDek.show(); előtt letiltjuk az interruptot. utána engedélyezzük.
Így már stabil!
Nem árt persze, egy erős táp, de mielőtt atomerőművet kapcsolsz a szalagra, javasolom, hogy ezt azért próbáld ki. Nem azért jó rövid szalagnál, mert kevesebb az áramfelvétel, hanem mert kisebb valószínűséggel szalad bele az 1 milliseces megszakításba.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Teasüti
nagyúr
Ezt a könyvtár nem intézi magának? Cöhh...
Elég silány minőségű portolás ez az Adafruit-tól.
[ Szerkesztve ]
Janos250
őstag
Bele lehet persze utólag tenni a könyvtárba is. Az is lehet, hogy a neten már kering olyan verzió, sőt, valószínű.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Tankblock
aktív tag
Open source ....
Pont ez a szituáció minden ilyenteljesen megírt könyvtárral.Általános megoldás, és nem használja ki feltétlen a microcontroller képességeit, figyelmen kívül hagyja HW részeket. Az ESP32 ebből a szempontból kilóg a sorból, máshol nem nagyon van több mint 1 mag és HW megoldások egy csomó mindenbe beépítve. Nem AVR ahol örülsz h van 3 timer meg HWes PWM aztán nagyából minden kötött a pinekhez.....
Inkább a magam által írt / nevezzük a nevén: kotyvasztott kódot szeretem. Olvasni kell a példákat/ HW leírásokat és a ide leírását, esetenként a GitHubon nézelődni és tanulni a kész kódokból - Youtube is ide tartozhat..... Sokkal több mindent ki lehet így hozni az eszközeinkből.....
Release the Beast....
Xpod
addikt
Kipróbáltam a kapcsolást.
Bekötöttem egy 2200mikrós kondit,és annyi változott, hogy ha hozzáérek az LM1084 hűtőbordájához, akkor nem változik meg a ledek színe.
Ha az ellenállást is bekötöm, akkor nem kapcsolnak be a ledek.
Ha a forráskódban 10 db a ledek mennyisége, akkor az első és a tizenegyedik zölden világít a többi narancssárga.
Az segít, ha linekelek egy fényképet a ledszalagról?
Janos250 : megcsináltam, beletettem a kódba az interuptos rész is, de nincs változás. 10 db címzek, 11 világít, első és utolsó zöld.
[ Szerkesztve ]
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Xpod
addikt
99% hogy a hiba nem szoftveres, hanem hardveres, konkrétan a tápegység nem megfelelő valamiért.
Az 56db-os szalagból csak 10 db-ot vezéreltem és rákötöttem egy USB-s töltőre. (5V, 1 A). A ledszalag, hirtelen megjavult, ugyanúgy működött, mint a 10db-os teszt szalag.
A megoldás, hogy veszek egy stepdown konvertert, ami 12V-ból csinál nekem 5V-ot.
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Janos250
őstag
:-)
Én is pontosan így látom, én is ezt szoktam tenni, de a kezdőknek is el kell indulni valahogy.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Teasüti
nagyúr
3.3V-hoz az R330 szolgálna 10 mA-es korlátként. 12 mA a max, amit egy GPIO le tud adni.
Ez csak kiegészítő védelem, akár el is hagyható. Én sem használom éles körülmények között és hónapok óta megbízhatóan működik a rendszer.
Esetleg azt próbáld még ki, hogy beraksz egy 3V3-5V szintillesztőt az adatbuszra, vagy trükközöl egy kicsit.
A hivatalos specifikáció szerint Vcc*0,7 felett van a logikai 1, ami 3,5V minimum. Ez lehet gyártási minőségtől is függhet, az én szalagom vígan megy közvetlenül a GPIO-ról is.
szerk: ez kihagyható, azt hiszem be se kapcsolna a szalag egyáltalán, ha az első pixel nem értelmezi a logikai 1 szintet.
Ha megváltoztatod a deklarált pixelek számát és a jelenség követi e változást (10 pixelnél a 11. zöld, 20 pixelnél a 21., stb.), akkor ez 100% szemantikai hiba. Vagyis a szoftver szar.
Ha nem te balfaszkodod el (for ciklusban a pixelek számáig számolunk, nem "LEDmennyiseg+1"-ig), akkor próbálj ki egy másik könyvtárat! Vhol megcsúszik a puffer, ezért szar az első és utolsó pixel színe. Vagy rossz színsorrend szerint definiáltad a szalagot (GRB, RGB, stb.). Mondjuk ezt kétlem, ettől még nem csúszna el a puffer a következő pixelre, szóval még mindig tartom, h cserélj könyvtárat!
A táp - mint írtam volt - nem szól bele a vezérlésbe. Ha bekapcsol a szalag és max fényerőn se brownout-ol, akkor a táp elégséges. Ellenben erre a feladatra vagy 220/5V-os dugasztápokat használunk (a kínai tápokból kerüljük ezeket), vagy DC-DC konvertereket.
Ezek jó hatásfokkal rendelkeznek és nem kell megerőszakolni őket 28W elfűtésével úgy mint egy fesz. stab. IC-t.
[ Szerkesztve ]
Janos250
őstag
Megnéztem egy 60 pixeles szalag áramfelvételét 5V-os, és 3.3V-os táp esetén, maximális (255,255,255) fényerőnél
Nincs egy Li akkud pl. 18650 amivel ki tudod próbálni? Vagy egy laposelemed? Kisebb feszültséggel is stabilan működnek, csak kisebb a fényerejük. Szintillesztőt én sem használok, közvetlenül a led bemenetet kötöm az ESP32 lábára. Vagy próbáld ki, hogy ugyanarról az USB tápról hajtod meg a szalagot is, és az ESP-t is. Azaz feltöltöd a gépről, majd utána lecsatlakoztatod a gépről. Az az érintéses probléma nekem nagyon valamiféle "kóbor" delejre utal.
[ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Janos250
őstag
Ha beteszem az interrupt tiltást, akkor nekem tökéletesen működik 60 ledes szalagról is. ha (0,0,64)-re állítom, akkor 200 mA az áramfelvétel 5V esetén, 130 mA 3.3V esetén.
Semmiféle hiba nem jelentkezik, stabil.
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
Xpod
addikt
Nincs akkum. Van egy usb töltőm amit tudok erre használni és van egy 12v tápom, amihez csináltam egy stab IC-vel egy átakítót. Elvileg van egy nem használt atx-es tápom, azt még előkereshetem.
Értem, hogy mindenki a kódra gyanakszik. De ha ugyanaz a kód, ugyanazon a ledszalagon, ugyanazon a bekötésen, az usb táppal jó, az általam készített táppal meg nem, akkor ezt mivel magyarázzátok?
Most kezdődjék a tánc! - mondta a papagáj és berepült a ventilátorba.
Teasüti
nagyúr
Meg kéne mérned a feszültséget terhelés közben mindkét táppal.
Teasüti
nagyúr
Ismer vki arra módot, hogy Android-ról töltsünk fel ESP32-re programot?
Esp8266-nál is volt már lehetőség OTA firmware frissítésre. Gondolom akkor esp32-nél is lehet rá mód. Hogy ehhez kell-e Android, azt pontosan nem tudom.
[ Szerkesztve ]
Teasüti
nagyúr
Egy gond van, nem használok wifi-t, csak BT-t.
Mennyi rom-ot foglal a wifi és OTA így együtt?
Illetve tud működni ugyanarról az antennáról a két kapcsolat?
asuspc96
senior tag
Helló,
Valaki foglalkozik/foglalkozott már robotkarok vezérlésével ?
A dolog lényegi része röviden:
Nem nagyon nehéz cuccot kb 500 gramm, kellene mozgatni A-ból B-be, és ezt reggeltől estig.
Nézegetem már egy ideje ezt a területet, de nem tudtam még elhatározni magam még egyik robotkar mellett sem.
Mai Hardverapró hirdetések
prémium kategóriában
- EDIFIER R1700BTS hangfal pár makulátlan, új állapotban, 2 év hivatalos garanciával, alkalmi áron
- LG OLED55B23LA 2 Év GYÁRI GARANCIA
- Apple iPhone XR 128GB, Kártyafüggetlen, 1 Év Garanciával
- Gamer PC , i7 12700KF , RTX 3080 Ti , 64GB DDR5 , 960GB NVME , 1TB HDD
- Intel PC , i5 8500 , 1660 6GB , 32GB DDR4 , 512GB NVME , 500GB HDD