Felmerült az AVR fórumban, hogy a PC felől hogyan programozzuk a soros portot (itt egy kalap alá veszem a 232/485-öt, hiszen a kommunikáció ugyanaz, csak más hw alapon).
Témaindítónak itt egy projekt részlete (fejlesztési stádiumban), amiből kimazsolázható a szükséges témába vágó információ:
A feladat:
Minden (~10-15) helységben mérni: hőmérséklet vagy hőmérséklet és páratartalom (RH), fényviszonyok (1/0) és max. 3db kontaktus (pl.: ablak nyitva) lekérdezése és központi gyűjtése
Megoldás:
Slave-nek:
Minden helységbe 1 db M8 + a körítés + érzékelők (hőmérséklethez DS1630, páratartalomhoz Sensirion SHT71, fényhez fotoellenállás).
Protokoll: Benbus alapján RS485, nyákon rövidzárak beiktatásával állítható slave ID.
A master felhívására kiolvassa az érzékelők értékeit és visszaküldi az adatokat (magyarán várakozik amíg nem szólítja meg a master).
Master-nek:
1 db PC, ez gyűjti az adatokat, amik egy sql adatbázisba kerülnek.
PC oldalon az Mscomm Activex lett felhasználva. Küldés után egy timer fut, ez idő alatt kell válaszolnia a slave-nek. Itt még felhasználható az Oncom esemény, amely akkor fut le, ha valamilyen esemény történik a soros porton (comEvReceive használata igen ajánlott, hiszen ezzel tudjuk kezelni azt is, amikor a slave keresi a master-t. Ebben az esetben a timer elhagyható, elég azt figyelni, hogy érkezett-e adat a soros porton).
Ellenőrző összeg:
Ezzel sokat szenvedtem, master oldalon a clsCRC osztály végzi, slave oldalon a Crc16 függvény (V 1.11.9.1 BASCOM).
Kapcsolási rajz: Itt
AVR Bascom forrás: Itt
VB server mintaalkalmazás forrása: Itt
Egyéb képek: Itt és Itt
A fentiekkel és a témával kapcsolatban szívesen segítek itt a fórumon..
Soros kommunikáció PC felől
- nobody_hun
- Bitfaragó
- Hozzászólások: 425
- Csatlakozott: 2005. november 14. hétfő, 7:00