Fórum témák
» Több friss téma |
Bocsi, ezt most lehet ,hogy én értem fére.
VannRGB leded aminek a gnd je gyárilag közös, és másik három a színeknek. Ezeket közösítetted. Így értelmezve csak 2 lába maradt a ledeknek. Így ,hogy akarod színenként vezérelni? Vagy csak rosszul fogalmaztad meg az előző hozzászólásod?
Ha a plussz lábakat közösítetted, a gnd-k pedig gyárilag közösek, fehér színű ledeket kaptál, amik nem lesznek színvezérelhetőek. Az volt a szándékod?
Egy lednek a gndje közösített (- + + + ) és Össze rakásnál szintenként közösítettem a pluszokat a saját lábával.
Ha minden ledet külön ki tudsz választani (egyszerre csak egy kap GND-t), akár egyenként is állíthatod a színeket. gyakorlatilag 1/40 ideig világít mindegyik. Ez csökkenti a fényerőt, ezért nagyobb áramot lehet nekik engedni, úgyis impulzusszerűen van használva.
Ha össze tudtad valahogy kötni úgy, hogy +/gnd teljes tápot egyszerre csak egy led kapjon (nem igazán értem, amit csináltál, de ha jól csináltad, akkor jó úgy ), akkor abszolút mindegy, hogy az időmultiplex részleteit hogyan rendezed. Az egy amolyan kinek a pap kinek a papné kérdés.
Ha ez azt jelenti, hogy 24 lábra kellene kiadni a megfelelő PWM jelet, én átgondolnám még egyszer ezt a megoldást. Valamilyen külső multiplexer IC-vel biztosan megoldható. Nem tudom mennyire statikus képeket szeretnél kirajzolni, de a leggyorsabb valószínűleg akkor lesz ha a megadott színhez való PWM értékeket tárolod le, tehát egy ledhez 3 bájt: R, G, B.
Ha ennyire kevergetem a színekett akkor érdemes a shiftregisztert nem sorba kötni ha nem külön vezérelni??
Mind a 3 shiftregiszternek Blank lábán egy egy pwm láb van a pic által igy tudom majd aszineket keverni .
1 shift az a pirosért fele második a zöldért felel a 3 pedig a kékért és külön pwm lára van kötve a shiftek. A hozzászólás módosítva: Jún 26, 2017
Sziasztok, mint már néhányan találkozhattatok több topicban a felvetéseimmel itt is szeretnék kérdezni eggyet ami kapcsolódik hozzájuk. Szeretnék egy DHT22 (vagy DHT11) modullal és egy RTC-vel hőmérséklet és páratartalom adatokat loggolni (egy pincében). Ehhez szeretném hozzákapcsolni hogy egy SQL táblába töltse fel ezeket WIFI kapcsolaton keresztül, hogy ezeket az adatokat itthon is megtekinthessem.
A kérdésem az lenne hogy mennyire megvalósítható ez egy 18F szériás PICben (AN833 adatlapot bújom, de azért titeket is megkérdeznélek) ? Nem szeretnék összetettebb PIC-et használni a célra, mert fő az egyszerűség a projektnél. Ki mit gondol erről ? Köszönöm a hozzászólásokat, meglátásokat, tippeket A hozzászólás módosítva: Jún 26, 2017
Akkor a feladat adott: a regiszterekbe olyan értéket léptetsz ki, hogy csak egy led legyen aktív, ez megkapja az RGB jelet, majd léptetsz a következő ledre, ha vége, a következő szintre. Lehet azt is érdemes megoldani, hogy ne kelljen mindig a teljes shift regisztert írni, csak a led kiválasztását arrébb tolni eggyel.
A WiFi miatt szerintem kényelmesebb nagyobb család.
Ha hobbi szerintem nyugodtan elindulhatsz felfelé is (16, 32 bit) már vannak a 18F árában lévő PIC32-ők is (meg néha érdekes errata ). Én is így voltam vele, hogy "úúú" nagyon bonyolult aztán leültem 16 bithez egy kicsit azóta főleg 32 bit. Sokkal sokkal kényelmesebb és azóta már 8 bitre soha nem akar semmi rendesen menni 32 biten pik-pakk minden. Tehát ha van időd szerintem nem bánod meg 16 bit assembly/C sokan tudnak segíteni, páran vagyunk akik 32 biteznek én személy szerint c++-t is űzöm. A hozzászólás módosítva: Jún 26, 2017
Nem riadok meg tőle, épp most érkezik egy PICkit3 szóval már akadálya sem lenne, csak sajnálnék egy akkora kapacitást egy sima data-loggerhez. Találtam egy projektet amiben 16f877a-ba tettek bele egy ESP8266 kezelő szoftvert, így már csak egy html post generáló részt kéne kitalálnom (amit lehet úgyszintén találnék). A szerveroldalt meg már megoldanám. Körbenézek 18F szériában, ha kevésnek bizonyulna akkor megyek felfele
Választottam hasraütve (legyen benne UART és SPI) egy 16f1454 kontrollert. Belefordítottam az ESP8266 könyvtárat és csak 3-3% ot kér a program/adatmemóriából. Szóval egyenlőre marad ez, ez kislábszámú is így eddig minden igényemet teljesíti
Ha már ott van az ESP8266, nem lenne egyszerűbb rábízni a teljes feladatot?
Ha WiFi kell, akkor mi lenne a szerepe a PIC-nek? A legbutább ESP-01 is képes rá, hogy egy pár soros Lua programmal, hogy WiFi kapcsolaton keresztül feltöltse az adatokat a ThingSpeak szerverre, ahol bármikor megnézheted a grafikonokat, illetve az adatokat táblázatosan is letöltheted a PC-re további elemzés céljából. A PIC-kel csak bonyolultabb lesz a dolog.
Sziasztok
Elképzelhető, két azonos PIC esetén, hogy a belső órajelük nem azonos? Csináltam egy időzítőt amit egy 12F675-re belőttem és pontos is volt, miután beégettem egy másikba utána jött a puszi. 10 percnél 15 másodperc a difi. Szerintetek ez normális és mindegyiknél módosítani kell a programon? Üdv A hozzászólás módosítva: Jún 27, 2017
Szia
Ha belső oszcillátort használsz akkor simán. 90h helyen ott van az oszcillátor kalibrációs regisztere. Ezzel a regiszterrel össze tudod kalibrálni a két kontrollert. Pickit2/3-nál van lehetőség a kalibrálására. Ha közös órajelet szeretnél, van mód hogy az eggyik PIC szolgálltassa a másiknak. Az eggyiket INTOSC re állítod kimenettel , ő fogja adni a jelet a GP4 lábon, a másikat pedig XT-re és ő kapja a másiktól a GP5 lábon. Adatlap: 54-55. oldal + Figure 9-2
Nem tudtam hogy tud ilyet, átnéztem az adatlapot, és a kapacitásának csak a 20%-át használja a WIFI szoftver. Ha más nem lesz szükséges akkor lehet csak ő lesz rajta.
Üdv!
Én a DHTxx szenzorok helyett inkább javasolnék másikat. BMP280, például. Igaz ennél számításokat kell végezned utólag, mert a nyers adatokat kapod csak meg és a kalibrációs értékeket. Illetve van másik fajta is, amiből már a valós értéket tudod kiolvasni, de erre most típust nem tudok mondani. Talán tudja valaki kapásból. Idézet: „Akkor a feladat adott: a regiszterekbe olyan értéket léptetsz ki, hogy csak egy led legyen aktív, ez megkapja az RGB jelet, majd léptetsz a következő ledre, ha vége, a következő szintre. Lehet azt is érdemes megoldani, hogy ne kelljen mindig a teljes shift regisztert írni, csak a led kiválasztását arrébb tolni eggyel.” Akkor érdemes sorba kötni a shifteket vagy vezéreljem öket külön??? Ha külön és nem sorba kötve akkor csak a Data és Clock lábakat vezéreljem külön?
Szia
Köszi a megnyugtató választ, akkor ezek szerint mindenképpen kalibrálni kell, de a lényeg az, hogy nem függ a perifériától és külső tényezőktől. Üdv
Pontosan nem tudom mekkora eltérést szabadna így produkálnia, de az direkt egy kalibráló regiszter, elvileg gyárilag be kellene kalibrálva lennie (be is van), de itt jön ki akkor a +-1%.
Nézegettem azt a szenzort is, csak árban magasabb, és a pontosság ilyen szinten már nem kell nekem, bár érdemes ezzel a szenzorral is foglalkozni
Nem tudom most hogyan van kötve, mindét módszer működhet. Ha páthuzamosan vannak, akkor mehet ugyan az a Data, Clock, tárolás mindháromra, hiszen minden szín ugyanazt a ledet választja ki, így egy 0x80-at írva, majd végigléptetve sorba végigmegy mind a 8 leden. A PWM jeleknek persze különbözni kell. Mivel így alacsony lesz a ledek kitöltési tényezője, emelni kellene az áramon, de ezt ugye a 595 korlátozza (bár az adatlap a dinamikus terhelésről nem ír). Érdemes kicsit utána számolgatni mire mennyi idő maradhat, ha ezt így oldod meg.
Igen, van a FLASH-ben egy gyárilag kalibrált érték ( az utolsó memória helyen ), de az csak akkor számít/működik, ha BETÖLTÖD az OSCCAL regiszterbe és ez automatikusan nem történik meg !
Ez eszembe se jutott, így viszont részben félreinformáltam. Így viszont meg lehet akkor a gyári kalibrációs értékkel próbálkozni.
Így viszont akkor kérdeznék én is; adatlap szerint amikor a codeprotectiont kikapcsolom akkor törli a kalibrációs értéket is, viszont sima memory erasenél is törli azt a területet ? Idézet: „Így viszont meg lehet akkor a gyári kalibrációs értékkel próbálkozni.” Igen, azért tették bele ! Idézet: „adatlap szerint amikor a codeprotectiont kikapcsolom akkor törli a kalibrációs értéket is” Ilyenre nem emlékszem, hol láttad ( szerintem ezt "simán" kihagyhatnák a védelemből ! ) ? Idézet: „viszont sima memory erasenél is törli azt a területet ?” Adatlap szerint: Idézet: , azaz igen ! „Erasing the device will also erase the preprogrammed internal calibration value for the internal oscillator.” A hozzászólás módosítva: Jún 27, 2017
A rendes programozó szoftverek elmentik és visszaírják a memória végére a kalibrációs konstanst, illetve PICkit2 esetén regenerációs menüpontot is láttam.
Ha valaki kódvédelmet állított be, akkor viszont nem megy a kiolvasás, tehát a kódvédelem feloldása után elvész a gyári beállítás, csak a regenerációs megoldás jöhet szóba.
Vajon miért nem tölti be gyárilag azt az értéket? Miért kell manuálisan betölteni. Ha INTOSC beállítást használok megoldhatták volna hogy betöltődjön, elvégre 4Mhz-es órajelet szeretnék , nem 3,9-et, nem 4,1-et, hanem 4Mhz-et
|
Bejelentkezés
Hirdetés |