duinozone.cz - Arduino a Raspberry fórum

Autor Téma: problem s čtemín z RS232  (Přečteno 300 krát)

Schamann

  • Host
problem s čtemín z RS232
« kdy: Únor 02, 2017, 01:00:35 dopoledne »
Zdravím mám problém se čtením dat se Seriového portu:

My komponenty:
Arduino Mega
Konfigurace externího zařízení: 9600,8,1,0,0
Každých 10 sekund odesílá: *XD,1234,1234,12,1234,1234,1234#
Arduino ma spolecnou zem.


Na všech HW serivých portech (1-3) mám stejný výsledek, zkousel jsem i  SoftwareSerial - stejne.


Ocekávám neco jako toto:
*XD,1234,1234,12,1234,1234,1234#

(char)Serial.read() ctu toto:

µęť•źŹk§ź--§źťŤ'§źťźź§ź•źź§ź--•ź§ź›•Źą

Serial.read() ctu toto:

181 234 157 149 159 143 107 167 159 149 167 159 155 149 147 167 159 151 159 159 167 159 159 159 159 167 159 153 157 141 167 159 155 151 151 185

na vsech portech mi jakekoliv jine zarieni bez problemu funguje
toto zarizeni po pripojeni k PC pres bezny rs232 port krasne komunikuje a posila to co ma citelne.

pouzivam defaultni SerialEvent sketch:
String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete

void setup() {
  Serial.begin(9600);
  Serial1.begin(9600); 
  inputString.reserve(200);
}

void loop() {
  if (stringComplete) {
    Serial.println(inputString);
    inputString = "";
    stringComplete = false;
  }
}

void serialEvent1() {
  while (Serial1.available()) {
    char inChar = (char)Serial1.read();
    //delay(1);    //no effect   
    //delay(10);  //no effect
    inputString += inChar;
    Serial.print(inCahr);
    //Serial.write(inCahr); //no effect
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}


Zarizeni je OK,
Arduino je OK,
Cim to? kodovani? napetove urovne? HEX DEC ASC... uz jsem vyzkousel snad vsechno.

Díky za cokoliv.

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:problem s čtemín z RS232
« Odpověď #1 kdy: Únor 03, 2017, 14:01:41 odpoledne »
arduino resp. atmega nema rs232. ma pouze uart ktery neni primo kompatibilni s logikou ttl. neuvadis jake je to externi zarizeni tak nevim jaky ma komunikacni protokol a napetove urovne.
navic nevim co pouzivas pro zobrazni serioveho portu. tady se lisi i ruzne verze arduino ide.
me tohle delal sw serial na gsm modulu protoze mel velkou komunikacni rychlost coz je u tebe ok a mel vystup 3.3V a ja arduino na 5v vetsinou to funguje tady se to proste nepotkalo. pouzil jsem hw a je to ok. ty hw pouzivas . mozna se jeste podivat na moznosti nastaveni kom.protokolu arduina. myslim tim vypnou paritu atd.

pepe

  • Host
Re:problem s čtemín z RS232
« Odpověď #2 kdy: Duben 26, 2017, 13:51:00 odpoledne »
Ahoj, tak by mě zajímalo, zdas to už rozchodil - řeším asi stejný problém. Arduinem přijímám signál z GPS modulu v pohodě, chtěl jsem však tento signál nasimulovat simulátorem z PC a nešlo to. Když jsem se kouknul na to, co Arduino "čte" z modulu mi šel signál $GPGGA,055929.553,5003.5766,N,01430.6436,E,1,6,1.34,309.1,M,45.4,M,,*56
kdežto ze simulátoru četlo Arduino něco takovéhoto:
[}ĹeMťť§ť§ź—§źť§źź§źźź§źź§ź›§źź§źźź§źź§ź™§źź§źźź§źź§ź—§źź§źźź§źź«‘Ťĺë
Simulátor polohu vysílá RS232 na COM1 počítače.  Když jsem se ale kouknul na signál analyzátorem seriových linek, signál z PC to přečetlo dobře, ale nepřečetlo to signál z GPS modulu. Pak přišel kolega a ten tipuje, že to bude napěťovou úrovní. Arduino používá 5V a COM v PC 12V. Příští týden mi dinese převodník RS232 na TTL a uvidíme...
Držím palec :)

Offline posjirka

  • Zkušený bastlíř
  • ****
  • Příspěvků: 433
Re:problem s čtemín z RS232
« Odpověď #3 kdy: Duben 26, 2017, 23:31:37 odpoledne »
samozrejme ze 12v je extrem ktery nejspis i odpalil arduino. konvertor urovni je nutnost. i pres to to nemusi byt vsechno. mas nastavenou stejnou rychlot komunikace ? mas nastavenou kontrolu parity nebo ne ? jak mas ukonceny radek zpravy ? ....to vse ti muze delat bordel.

pepe

  • Host
Re:problem s čtemín z RS232
« Odpověď #4 kdy: Květen 05, 2017, 11:43:21 dopoledne »
Tak vyřešeno - pomohl ten převodník. Kupodivu Arduino vydrželo a když jsem vrazil mezi PC a Arduino převodník na TTL, šlape jako hodinky :)
Tak držim palec při dalších pokusech :)