Fórum témák
» Több friss téma |
Nem ez már böven elég, csak a DS18B20 kommunikációt akartam kivárni mert ha jol tudom akkor 750ms a kiolvasása, de ez már igy ebben a formában lényegtelen mert olvas rendesen. Amugy sikerült kihozni olyan 4s-ot ez már böven sok.
Mégegyszer köszönöm
Sziasztok! Olyan PIC-es riasztót szeretnék csinálni ami csak ennyit tesz, hogy ha megnyomok egy gombot, akkor pár másodperc múlva élesedik, és figyel egy kapcsolót ami negatív jelet ad (ajtó kapcsoló). A jel beérkezése után ismét némi késeltetéssel bekapcsol egy szirénát. Ha újra meg nyomom a gombot akkor kikapcsol. A tápfeszültsége 24V lenne. Szeretném ha valaki tudna ebben segíteni.
Nem lustaság, megkerestem de az idözitövel volt a bajom, nekem szükségem van a folyamatos futtatásra mert LCD,stb viszont igy bármi is történik a PIC-el akkor reset és indulhat a menet. Mostmár sikerült a flowcode-os beillesztés is és tökéletesen megy mint ahogy jeleztem. A másik az angol tdás hiánya amit hiába forditoztam nem értettem.
Ugy gondolom hogyha kérdezek az nem bün (ne értsd félre), Igen igy könnyebb de keresgéltem utánna böven és nekem ez a C kod hiáánzott. Még mindig küzdök a bit to hex fordittással. Tudom hogy van a nemten de az nekem nem müködik.
Udv mindenkinek .. Egy erdekes problemaval fordulok hozzatok , megpedig ezt a Digitalis Orat keszitetem el http://www.hobbielektronika.hu/cikkek/digitalis_ora_homerovel.html .
De elesztes utan , nem mukodott , sot egy szegmens se gyult ki . Meregettem , az 5,14 lab kozot megvan a +5V , egy alkatreszt valtoztattam a BC212 helyett BC556B raktam . Es meg egy eszrevetel : veletlenul osszeérintettem a PIC , 3-as es 4-es labat es kigyult mind a 4 , 7 szegmenses kijelzo . Ha valaki tudja mi lenne a probelma ... , elore is koszonom szepen
A kapcsolási rajz szerint közös anódú kijelzők kellenek. Neked az van, kipróbáltad?
Igen kozos anodu a 3 es a 8 as lab a kozos " + " es a tobbi "-"
Sziasztok,
Szeretnék egy PIC-es fogyasztásmérőt készíteni hálózati feszültségre. Úgy gondolom áramot kell mérnem és persze időt. A feszültség ugye adott. Aztán ezt már csak forintra kéne váltani és kiírni. Mindebből az áram mérésére nincsen ötletem. Hogyan tudnám ezt megtenni PIC-el? Valahogy 220 V-os a fogyasztóval sorba kapcsolt valaminek kellene az ott átfolyó árammal arányos 0-5 V közé eső feszültséget csinálnia, akkor azt PIC A/D átalakítójával már tudnám is kezelni. Tudna valaki segíteni ebben? Köszönöm.
Helló, nem akarok a lelkedbe gázolni de kb 3e forintér már kapni ilyeneket az mért nem jó?
Amúgy:Bővebben: Link vagy: Bővebben: Link
Áramváltóval kisebb áram értékre konvertálva annak terhelő elleállásán való váltakozó feszültség mérésére lehet visszavezetni.
Figyelem: Az hálózatba beiktatott áramváltó szekunder körét nem szabad megszakítani. A mérőkörön módosításokat csak árammentes vagy rövidre zárt szekunder körű áramváltón szabad végezni. A hozzászólás módosítva: Jan 18, 2014
A helyedben én először ezen az oldalon néznék körül, s elolvasnám a hozzájuk kapcsolódó alkalmazási mintapélda leírásokat.
Az MCP3905A Energy Meter Reference Design nagyjából azt csinálja, amire vágysz. Vigyázat, ez közvetlenül kapcsolódik a hálózatra, nem gyerekjáték! A fogyasztásmérőknél egyébként a PIC 10 bites beépített ADC-je nem elég pontos, s egyébként is ajánlatos szimultán mintavételezésre alkalmas eszközt használni. (Ha nem egyidejűleg méred a feszültséget és az áramot akkor hamis értéket számolsz a teljesítményre)
A Microchip energiamérésre ajánlott termékei egyébként három csoportba sorolhatók:
- Energiamérő (kWh-ként adott számú impulzust ad ki) IC-k - Energiaméréshez analóg frontend IC-k - Energiaméréshez optimalizált (beépített analóg frontend-et és közvetlen LCD meghajtót tartalmazó) PIC18F87J72 termékcsalád. Bővebben: Link
Sziasztok!
PIC12LF1822-nek szeretném beállítani az EUSART modulját. Sajnos nem azt küldi amit én szeretnék. MPLAB X IDE-t és XC8-at használok. Bemásolom ide a kapcsolódó kódrészleteket:
Próbáltam 9600 és 57600 baudd-al is. PC-n PUTTY van a másik oldalon ill egy USB HUB + USB-TTL (CP2102) átalakító. Az átalakító RX lába a PIC RA0 lábára van kötve és a két áramkör földje lett összekötve. A tápot PICkit 3 biztosítja. Mit rontottam el?
Első ránézésre jónak tűnik a beállítás. Azt viszont nem írtad le, hogy mégis mit küld ki. Mindenféle zagyvaságot, vagy semmit? A zagyvaságot okozhatja az orajel pontatlansága és az USB átalakító is.
Illetve a "PORTAbits.RA0 = 1"-el el nem bemenetre állítod az RA0-t?
Zagyvaságot küld. (Konkrétan: PuTTY▒) És ezt kellene neki küldenie: PIC12LF1822 ready
A PORTAbits.RA0 = 1 szerintem 1-re állítja a port állapotát. A TRISAbits.RA0 = 1 állítaná a lábat bemenetre. A port digitális kimenetre van állítva. Az órajelet a belső osszcillátor adja, FOSC: 32MHz-re van állítva.
Igaz, tényleg a kimenetet állítja, de ezt nem kell megtenni manuálisan. C-hez annyira nem értek, előre is bocs. Ha belső osciról megy akkor mindenképpen kalibrálni kell azt a lehető legpontosabra. Korábban nekem is volt hasonló problémám. De inkább használj külső kvarcot, azzal nem lesz ilyen gond.
Sajnos a külső kvarc már nem fér rá, ez csak 8 lábú...
Ja tényleg 12F... Akkor csak a kalibrálás segít és ki kell számolni, hogy azon a frekin milyen baud-al a legkisebb a hiba.
Az SPEN = 1; sort elvinném a RCIE =1; utáni sorra, megírnám a vételi megszakítás kiszolgáló rutint, ami az RCREG kiolvasásával törli a kérést. 9600 baud -hoz 32MHz órajelnél BRG16 = 0; BRGH = 0; SPBGRL = 51; SPBRGH = 0; kellene, a 57600 baudhoz pedig BRG16 = 0; BRGH = 1; SPBGRL = 33; SPBRGH = 0; kellene. A RA0 lábat digitális bemenetnek kell állítani:
Idézet: „Setting the SPEN bit of the RCSTA register enables the EUSART and automatically configures the TX/CK I/O pin as an output.”
Sajnos így se jó. Továbbra is zagyvaságokat küld.
SPBRGL-t próbáltam 3-al is, mert az adatlap annyit ír 57600 baudhoz (299. o. táblázat első része). Ilyen lett a vételi megszakítás kezelése:
A Putty beállításai a következők (hátha ezt rontottam el): Speed: 57600 Data bits: 8 Stop bits: 1 Parity: None Flow control: XON/XOFF
Ha SYNC=0; BRG16=0; BRGH=0; akkor az adatlap szerint SBBRG = int(Fosc / 64 / Baud) - 1 = int(32000000 / 64 / 57600) - 1 = 8 - 1 = 7, a hiba 8.5%. A maximális megengedett eltérés (fél bitidő csúszás 10 bitidő alatt) 5%. Nem csoda, hogy összevisszaságot ír ki.
Ha SYNC=0; BRG16=0; BRGH=1; akkor az adatlap szerint SBBRG = int(Fosc / 16 / Baud) - 1 = int(32000000 / 16 / 57600) - 1 = 34 - 1 = 33, a hiba 2.13%. Ez már jó lenne. Visszatetted a while (!TXIF); -et a putch() -ba?
Köszi, azt a táblázatot nem is néztem.
Most visszatettem a while-t. Alakul, de még nem az igazi: Ezt szeretném, ha kiírná: PIC12LF1822 ready $ És ezt írja ki: xxj▒2LF1822 ready $ Tehát az első 4 byte rosszul jön át.
Üdvöletek!
A következő gondom van: motort hajtok pwm kimenetről. Alkalmanként néhány ms-re full fordulatra kell kapcsolnom (tehát a C2 -t 1-be tenni) , de anélkül, hogy a pwm -hez közben hozzányúlnék. Sajnos a további szabad portok elfogytak, tehát az, hogy egy másik lábról vezérelt meghajtófokozattal játszanék(párhuzamosan), kizárva. Kérdés: programból megoldható valahogyan ez a probléma?
Üdv!
Szerintem pedig hozzá kell nyúlnod, nem hiszem, hogy lenne más megoldás is. Kimented a PWM értékét egy változóba, beállítod a 100%-os kitöltést, majd a kellő idő letelte után visszaírod az elmentett értéket.
Azt tudnod kell, hogy a CCPxL regiszter írása csak a következő ciklusra van hatással, tehát a "néhány ms" a PWM frekvencia egész számú többszöröse lesz.
Sziasztok! PIC24EP128MC202 UART-al próbálkozok. Az adatlap szerint nem kell állítanom bemenetre a TRISx regisztert az RX lábnál:
Idézet: „the UxTX pin is configured as an output and the UxRX pin as an input, overriding the TRISx and PORTx register bit settings for the corresponding I/O port pins.” Azonban nekem mégis csak akkor működik a vétel, ha beállítom bemenetnek az RX-nek használt lábat. Miért lehet ez?
Sziasztok!
Mostmár készen van a PICKIT 2-m és fejlesztő panelt keresvén mindent begyűjtöttem suliban ami csak PIC-el kapcsolatos. ezek a panelek használhatóak már PIC programozá tanulásra?
A múzeumban jól mutatnának!
|
Bejelentkezés
Hirdetés |