60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 15:10

Sziasztok,

nem tudom hogy ez-e a megfelelő forum a 60 napos ingyenes tanfolyam anyagainak megvitatására. Ha nem, kérlek javasoljatok jobb helyet.

az elmúlt néhány lecke alatt kezd kirajzolódni, hogy a leckék olvasása után nyitva maradnak kérdések az adot anyaggal kapcsolatosan. Igy volt ez korébban a frekvencia-moduláció kapcsán és most is igy van a soros portoknál.

A tanfolyami leckében a következő példa szerepel soros komunikációra. El tudja valaki magyarázni hogy hol és hogyan definiáljuk a soros kommunikáció "nyelvét" azaz hogy milyen adatok (betük vagy számok vagy más) érkezik a soros kommunikáció során? A char paranccsal csak a figyelembe vett értékeket definiáljuk, ha jól értem, de gondolom nem csak B és K értékből áll a soros kommunikáció. Honnan tudjuk egyáltalán hogy B és K szerepel majd a kapott adatok között?

A program

Kód: Egész kijelölése

/*
  SerialLED
  Soros porton kapcsolgathato LED
  60 nap alatt arduino tanfolyam
  (c) TavIR http://www.tavir.hu
 */
 
int inByte = 0;
  // bejovo adat
int adatjott =0;
  //eddig hany adatot kaptam?
char be ='B';
  // Valtozo bekapcsolashoz
char ki ='K';
  // Valtozo kikapcsolashoz
 
void setup()
{
  Serial.begin(9600);
    // soros sebesseg
  pinMode(13, OUTPUT);
    // D13: LED
  Serial.println("Start...");
}
 
void loop()
{
  if (Serial.available() > 0) {
    // van adat feldolgozasra?
    inByte = Serial.read();
      // 1 byte beolvasasa
    delay(100);
      // 100 ms szunet
    adatjott++;
      // szamlalo novelese
    if (inByte == be) {
      digitalWrite(13, HIGH);
        // Ha B jon, bekapcsol
    }
    if (inByte == ki) {
      digitalWrite(13, LOW);
        // Ha K jon, kikapcsol
    }   
    Serial.print("Eddig jott: ");
      // Soroson visszairjuk mi is volt
    Serial.println(adatjott, DEC);
  }
}



Admin, szerk: CODE gombot használni kell! Különben nem lesz programszerű....

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9870
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Robert » 2016. december 4. vasárnap, 15:21

A program előtt a leckét _figyelmesen_, és _többször, tagoltan_ kell elolvasni:

Például a fejezet így kezdődik:

" Sorosporti programozás

A soros kommunikáció Arduino nyelven igen egyszerűen megvalósítható. Két fő részből áll:
1, inicializálás,
2, adatküldés/fogadás

Feladat: hogyan oldanád meg, hogyha soros porton B betű jön, bekapcsoljon a LED; míg ha K betű, akkor kikapcsoljon?"


A tanfolyam anyagai egy helyen vannak. A soros #14 fejezet pl itt:
60 nap alatt Arduino #14 (Soros kommunikáció)
viewtopic.php?f=34&t=1174&start=15


Az összes többi:
viewforum.php?f=34

A kódbeszúrás a CODE gombbal készül.
Valamint javasolt olvasmány:
Fórum hozzászólások: viewtopic.php?f=23&t=828
http://www.tavir.hu - a gazda :)

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 20:05

Róbert, a kérdésem a tobbi programozóhoz szólt. Szerintem mi nem egy nyelvet beszélünk, a kérdésemre sem most, sem a korábbi próbálkozásaim során nem kaptam Töled releváns választ. Ha egy kezdó a küldött lecke után veszi a fáradtságot és beir a fórumra, gondolod hogy nem olvasta el előtte kétszer is a leckét?

Ha estleg valaki veszi a fáradtságot és elmagyarázza a fenti programot, azt megköszönöm.

Üdv.

Avatar
csabeszq
Bitfaragó
Hozzászólások: 663
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: csabeszq » 2016. december 4. vasárnap, 20:19

Te definiálod a soros kommunikáció nyelvét. A fenti program ellenőrzi, hogy B, vagy K betű jött-e, ennek megfelelően kapcsolgatja a LED-eket.

Ha átírod a kódot Q-ra és Y-ra, akkor arra fog a LED kapcsolni.
Megnyitod a soros monitort, beírod, hogy "B", megnyomod a küldés gombot, akkor a LED-nek fel kellene kapcsolnia. Ez a nyelv.

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 20:24

köszi. Épp azt nem értem, hogyan definiálom a soros kommunikáció nyelvét? A fenti példában pl. ?

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 4. vasárnap, 20:28

Pontosabban, azt értem hogy én irom be a betűket a monitoron és ez alapján kapcsolgat, de mi történik ha pl. kérdőjelet irok be? az - ha jol tudom -, nem része a byte-nak...

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1023
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: SanyiSay » 2016. december 4. vasárnap, 20:44

Tiborx8 írta:Róbert, a kérdésem a tobbi programozóhoz szólt.

Tiborx8 írta:köszi. Épp azt nem értem,



Kedvesem átkiabált a másik szobából hogy min kacagok hangosan. Hát ezeket a sorokat olvastam épp. :lol:
Ma a nagy beszólások világnapja van ahogy látom.

Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1023
Csatlakozott: 2009. február 28. szombat, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: SanyiSay » 2016. december 4. vasárnap, 21:12

char be ='B';

helyett írd hogy

char be ='?';

de nem igazán ez a lényeg, hanem a szám amit ez a karakter takar, mert ha nem betüket küldesz hanem számot 0-255 között nem mindegyiknek lesz megjeleníthető karakter formálya. ASCII

Küldeni meg te tudod mit küldesz a soros porton. Célszerű olyan terminál programot használni ami nem csak szöveges megjelenítésre képes.
Mondjuk a HTerm.
Ott látod ASCII, HEX, BIN, DEC, formában a bájtot ami vagy amik érkeznek, és amit küldtél azt is.

Avatar
Robert
Elektronbűvölő
Hozzászólások: 9870
Csatlakozott: 2005. december 9. péntek, 7:00
Tartózkodási hely: Budapest
Kapcsolat:

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Robert » 2016. december 4. vasárnap, 21:15

Tipp:
A processzor agyában a char/byte egy szám. 0...255 közt.
Ezt mi láthatjuk: számként (bináris, hexa, decimális formában); a számokhoz rendelt karakterként (ASCII kódtábla).

Körülbelün ennek analógiája:
- Mennyi pénz van nálad a buksza első zsebében?
A válasz:
- 124 Ft 30 fillér.
- egy százas, két tizes és 2 db 2 Ft-s és 3 db 10 filléres.
Ugyanaz az lényegi információ - többféleképp megközelítve.
http://www.tavir.hu - a gazda :)

Tiborx8
DrótVégénSzéndarab
Hozzászólások: 35
Csatlakozott: 2016. november 28. hétfő, 19:40

Re: 60 nap alatt Arduino #14 (Soros kommunikáció) - hogyan működik?

HozzászólásSzerző: Tiborx8 » 2016. december 5. hétfő, 16:31

Megértettem a programot. Köszönöm a segítséget.


Vissza: “60 nap alatt Arduino - Házi feladatok”

Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 1 vendég