Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   294 / 360
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
Sőt, jut eszembe. Küldés közben is lehet variálni, tolerálja a kijelző. Lás dmellékelt. A "Send_CMD" nevű makró a három 255-ös karakter küldését tartalmazza.

Shot_263.jpg
    
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Tudod miért akartam én minden áron összefűzni egy hosszú mondattá?
Mert nem tudtam megérteni hogy ha én mondjuk küldeni akarok 3 darab 2 helyi értékes változót.
Egymás után elküldöm
És fogadó oldalon a Receiver Char nál be van állitva hogy (2) akkor amig meg nem kapja mind a két helyi értéket addig nem fog továbblépni, De ha már megkapta és továbblépett és fogadná a következőt attól meg nem kell tartanom hogy az "érték nélkül bezáródik, hiszen ott is van a hosszóság illetve az időlimit amíg vár az adatra!

Ezt most nem a Nextionhoz értem hanem mondjuk 2 PIC kommunikációjára .
A hozzászólás módosítva: Jan 5, 2018
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Szöveget egyértelmű hogy szövegként küldöm! De ha számot akarok küldeni akkor simán számként írjam vagy... ?
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
Nem egyértelmű a kérdés. Pl. p0 nevű kép megváltoztatása:

SendRS232String "p0.pic=32"

Erre gondoltál?
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Igen... kicsit zavarosan tettem fel!
Most vegyünk pl két PIC et ami kommunikál egyműssal ( valahogy ugy mint nálad!)

Azonosítás megvolt, tudjuk kit szólítottunk meg és az mondjuk vissza küld 3 számot legyen:
kint, bent, rel,
És már meg is válaszoltam magamnak a kérdést mert ha el akarom küldeni a kint változót ami mondjuk a kint hőmérséklet akkor a változóba az úgyis számként van és nem azt mondom hogy:
Send RS232Char(24)
hanem azt hogy:
SendRS232Char(kint)
(#) Firefighter1 hozzászólása Jan 5, 2018 /
 
Ilyenkor a változót ( ha számként használom) akkor Byte ként kell iniciálni vagy INT ként számértékként?
A hozzászólás módosítva: Jan 5, 2018
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
Két választásod is van arra, hogy számot küldj. Nézzük a 42-t. ASCII kódolással elküldesz egy négyest és egy kettest (52, 50). Vagy. Egyszerűen elküldöd a 42-t, mint karakter.

A lényeg az egészben az, hogy a fogadó oldal mit vár. Aszerint kell elküldened a kívánt értéket.
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
Err enem tudok válaszolni. UART-on egyszerre csak egy byte-ot tudsz küldeni. A küldendő adatot byte-okra kell felbontani. Ha a változó értéke több lehet, mint 255, akkor a byte nem elég.
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Kezdem érteni.. Akkor célszerű byte-ot használni, és figyelni arra hogy elég legyen!
Hiszen byte-al lehet számolni is összehasonlítani stb stb.
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
Inkább úgy fogalmaznék, hogy ahol lehet, a lehető legkisebb változókat kell használni. Pl. egy DS18B20-as lekérdezésének az eredménye (a beépített makrók használata mellett) 1000 feletti és -800 alatti is lehet, nyílván oda nem elég a byte. Ki kell számolni a maximálisan előforduló értéket és ahhoz kell "méretezni" a változót.
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Hát ezt sikerült ugy megoldanom hogy dugdosóson összeraktam 2 PIC-et, és kikísérletezgettem!
De az biztos hogy egyszerűbb byte-ba hagyni mindent és csak a legvégén amikor "dolgozni " akar az ember vele akkor számmá alakítani!

Viszont mivel szeretnék párát is mérni / és mert van itthon 3 féle is/ ezért szerintem a szenzoroknál most maradok az I2C-s verziónál

De itt megint bajom van.. na nem az I2C metódussal hanem az adatlapértelmezéssel!
HTU21d és BME280 as szenzor került most a kezembe.
A BME be van nyomásmérő is így lehet azzal probálkoznék!

Az a baj hogy csak Arduino/Adafruit leirásokat találok hozzá ott meg csak töltsd le a könyvtárat másold be, aztán megcsinál mindent helyetted!
Pedig szívesen lesnék mert ez az adatlap felsorol 600 regisztercímet meg üzemmodot!
És én még anno az MPU ra hittem hogy bonyolult
Esetleg egy kezdőrugást tudna valaki adni?
(#) Firefighter1 hozzászólása Jan 5, 2018 /
 
A címét megtaláltam elvileg
0X60 azaz 01100000 , találtam egy időértéket, gondolom a mintavételezéshez '110' 10ms os '111' 20ms os
Illetve megtaláltam a regiszter térképet is.
(#) Firefighter1 válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
0XF7 től 0XFE ig lekérdezgetem a regisztereket?

Vagy bonyolult modult választottam?? Keressek másikat?
A hozzászólás módosítva: Jan 5, 2018
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 / 1
 
Ez ettől egy kicsit összetettebb. Ki kell olvasni a kalibrációs és a nyers adatokat is, majd egy csomó számítás után megkapod az áhított adatot. Ha nem tudod értelmezni az adatlapot, nehéz ügy lesz, elmagyarázni pedig laza fél nap pötyögés. Indítóként csatolok egy működő programot BMP180-hoz. A kettő hasonló.

BMP180.fcf
    
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Találok a nagyvilágba egyszerűbb modult? Ahol csak értéket kell kiolvassak?

Addig nézem a progit!
A hozzászólás módosítva: Jan 5, 2018
(#) Firefighter1 hozzászólása Jan 5, 2018 /
 
Őőő megnéztem a programot, meg találtam egy német "leirást"( az utóbbi fél évbe az egy kicsit jobban megy) Nem is akarom magamat álomvilágba ringatni! Ehez az én tudásom kevés Ennél talán még a HTU21D-je is egyszerűbb
Ugyhogy maradok annál a verziónál hogy ha esetleg tud valaki javasolni egy egyszerű modult... ha meg nem akkor marad az analog szenzor páratartalom nélkül
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
Elvileg van analóg páratartalom mérő modul is.
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Hát igen... ami nem megy azt nem kell erőltetni... most csak azért hogy I2C-s legyen nem akarom a fél forumot az őrületbe kergetni!

Mennyivel barátságosabb ez a kép! Sima A/D bemenet, ahogy elnézem simán műveleti erősítő nélkül mehet
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 5, 2018 /
 
Idézet:
„ahogy elnézem simán műveleti erősítő nélkül mehet”
Igen.
(#) Firefighter1 válasza Bakman hozzászólására (») Jan 5, 2018 /
 
Nagyon szépen köszönöm a segítséget, és a jó útra terelést!
Mára elteszem magamat, de holnap folytatom az RS232 tesztelgetésével, gyakorlásával
Jó éjszakát!
(#) Firefighter1 válasza Firefighter1 hozzászólására (») Jan 8, 2018 /
 
Sziasztok!
Bakman.. köszönöm a segítséget! nem volt időm még a dugdosóst összerakni, mert behivtak dolgozni, de a héten összerakom! Kíváncsi vagyok nagyon ( csináltam egy biztonsági mentést és a másolatot kiegészítettem a hőmérséklettel is)
Viszont felmerűlt egy másik projekt a nejem fejébe!
Szeretne 3 helyre a szobába rejtett led világítást. Azzal nincs is gond, de fényerőszabályozósra szeretné.

Ami az ágynál illetve a tükörnél van arra kerül gomb, De ami a szekrény szegélyébe kerül arra nehéz lenne!
Innen jött az ötlet hogy a TV távirányítón van sok funkciógomb amivel a tv hez kapcsolt videomagnót lehet vezérelni! De nekünk nincs..... így "szabadok" a gombok,
Az elvileg kivitelezhető hogy keresek egy Dekodoló progit, kiiratom hogy milyen kódot küld a szabad gombokra, utánna azt teszem be a led vezérlőprogramjába???
A hozzászólás módosítva: Jan 8, 2018
(#) Bakman válasza Firefighter1 hozzászólására (») Jan 8, 2018 /
 
Még szép, hogy meg lehet csinálni. Sőt, ha nem akarsz kínlódni a dekódolással te magad, vegyél egy ilyet: "5V IR Infrared Remote Decoder". UART kimenete van, arra pedig egyszerű Rx megszakítást írni. Egy hátránya van a modulnak, a folyamatos gombnyomást nem közvetíti.
(#) neoone hozzászólása Jan 14, 2018 /
 
Sziasztok. Csináltam egy progit a 6-os verzióval, a szimulációban minden szép, csak nem tudom hex-re lefordítani. Sajnos nekem a hibajelentés csak annyit mond, hogy valamelyik számítással van a gond. Tud valaki megoldást?

hiba.jpg
    
(#) Bakman válasza neoone hozzászólására (») Jan 14, 2018 /
 
16F628A kontrollerben használni float változót szinte lehetetlen, nincs elég RAM a kontrollerben. A nagyobbakban van elég, de a legritkább esetben van rá szükség vagy még annyiszor sem.

Másrészt a float (lebegőpontos) típusú változókkal műveletet végezni külön függvényben kell, lásd melléklet. A képen egy összeadás van. Jelentése: y=x+2.3. Egy függvényben egy művelet hajtható végre.

Ha nem ultra titkos a program, töltsd fel, kijavítjuk neked.
A hozzászólás módosítva: Jan 14, 2018

Shot_282.jpg
    
(#) neoone válasza Bakman hozzászólására (») Jan 14, 2018 /
 
Szia! Nem titkos, youtube-ról van én csak kicsit átalakítottam.
(#) Bakman válasza neoone hozzászólására (») Jan 14, 2018 /
 
Mindenképpen 16F628A kontrollert akarsz használni? Mindenképpen billentyűzetet akarsz használni? Mindenképpen kelleni fog a grafikus kijelző? Mi a végső cél tulajdonképpen?

A float változóhoz a kontroller édes kevés. A kijelzőhöz végképp.

2,56-tal való szorzást csináld meg egész számokkal. Pl.:

x=13*2,56
x=(13*256)/100
A hozzászólás módosítva: Jan 14, 2018
(#) Bakman válasza neoone hozzászólására (») Jan 14, 2018 /
 
Kijavítottam a hibákat, amiért nem fordult le. Azután azért nem fordult le, mert kevés neki a kontroller. Átállítottam 18F26K22-re, ez az eredmény:
  1. RAM available:3896 bytes, used:1186 bytes (30.5%), free:2710 bytes (69.5%),
  2. Heap size:2710 bytes, Heap max single alloc:127 bytes
  3. ROM available:65536 bytes, used:7022 bytes (10.8%), free:58514 bytes (89.2%)
RAM-ból a program 1186 byte-ot használ, a 16F628A-ban 224 byte van. Tehát hatszor több kellene, mint amennyi van. ROM-ból is kellene négyszer annyi...

A programban van még hiba. Ha csak egy számot nyomsz le (pl. 5 %-ot akarsz), akkor a második számjegy ott marad az előző beírásból.
A hozzászólás módosítva: Jan 14, 2018
(#) neoone válasza Bakman hozzászólására (») Jan 15, 2018 /
 
Köszi, a szám beadással nincs gond, mert ha csak 5% akarsz akkor 05 számokkal adod-be.
(#) frekivalto hozzászólása Jan 20, 2018 /
 
Sziasztok.

Egy új projekten gondolkodom...
Megosztanám veletek, elkelne egy-két ötlet, javaslat.

Maga a projekt egy hangerő szabályozó lenne. Lenne egy adó keszulek, abban lenne egy forgatható impulzus adó (rotary encoder), meg az elektronika, esetleg LED-es visszajelzéssel, hogy a hangerő milyen szinten van.
A másik oldalon lenne a vevő, meg a motoros potenciométer, és az ehhez szükséges elektronika.
Az adó és vevő közötti átvitel lehetne infra, vagy rádiós.

Ehhez kérnek segítséget, támpontokat, javaslatokat, hogy ki milyen megoldással oldana meg.

Az adóban az impulzus adó (encoder) lekezelése, és a visszajelzéssel nem lenne gondom. Ami problémát látok, az az átvitel lenne. Ilyet meg nem csináltam, nem volt rá szükségem eddig...

A motoros poti amit néztem, az Conradban kapható. 4-6V DC, 100mA forgatás köt, veghelyzetnel 150mA.

Elsőre ennyit tudtam összeszedni. Előre is köszönöm az építő jellegű hozzászólásokat, javaslatokat, ötleteket.

Üdv. Peti
(#) Bakman válasza frekivalto hozzászólására (») Jan 20, 2018 /
 
Az adó és a vevő oldalra is egy-egy RF modul. Az egyszerűség kedvéért én UART csatolós RF modullal állnék neki a dolognak, pl. APC220.
Következő: »»   294 / 360
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem