Arduino Mega 2560 Serial2

Odpovědět
petrkozanek7
Příspěvky: 1
Registrován: 06 led 2019, 09:02
Reputation: 0

Arduino Mega 2560 Serial2

Příspěvek od petrkozanek7 » 06 led 2019, 09:15

Dobrý den potřeboval bych prosím překopat tento sketch ze software serial na serial2 na Arduinu. Nevím jak přesně pracuje čtení z portu2 a poslaní do portu0 (PC). přepsaní myserial na serial2 nepomohlo, hlásí to chybu CRC 0/0, samozřejmě jsem smazal ze sketche tu knihovnu atf. Děkuji moc Petr

#include <SoftwareSerial.h>;

SoftwareSerial mySerial(A3, A4); // prvni TX , druhy - RX

byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
unsigned char response[9];

void setup() {
Serial.begin(9600);
mySerial.begin(9600);
}

void loop()
{
mySerial.write(cmd, 9);
memset(response, 0, 9);
mySerial.readBytes(response, 9);
int i;
byte crc = 0;
for (i = 1; i < 8; i++) crc+=response;
crc = 255 - crc;
crc++;

if ( !(response[0] == 0xFF && response[1] == 0x86 && response[8] == crc) ) {
Serial.println("CRC error: " + String(crc) + " / "+ String(response[8]));
} else {
unsigned int responseHigh = (unsigned int) response[2];
unsigned int responseLow = (unsigned int) response[3];
unsigned int ppm = (256*responseHigh) + responseLow;
int x = ppm;
float y = x/1000.00;

unsigned int teplota = (unsigned int) response[4];
int a = teplota;
float b = a-40;

Serial.print ("koncentrace CO2: ");
Serial.print(ppm);
Serial.print(" PPM ");
Serial.print(y);
Serial.println("%");
Serial.print("teplota: ");
Serial.print(b);
Serial.println(" stupnu Celsia");

}
delay(5000);
}

Uživatelský avatar
BlindP
Příspěvky: 33
Registrován: 23 črc 2017, 00:46
Reputation: 0

Re: Arduino Mega 2560 Serial2

Příspěvek od BlindP » 06 led 2019, 12:09


RomanB
Příspěvky: 14
Registrován: 04 zář 2017, 14:28
Reputation: 0

Re: Arduino Mega 2560 Serial2

Příspěvek od RomanB » 06 led 2019, 12:41

Vkládej kod přes "code"

Kód: Vybrat vše

//#include <SoftwareSerial.h>; to si vymaž

//SoftwareSerial mySerial(A3, A4); // prvni TX , druhy - RX  to taky vymazat

byte cmd[9] = {0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79}; 
unsigned char response[9];

void setup() {
Serial.begin(9600);
Serial2.begin(9600); // zmeneno
}

void loop() 
{
Serial2.write(cmd, 9); //změneno z mySerial na  Serial2 , je nutne dodrzet velikost pismen, serial.begin(9600) neni Serial.begin(9600);
memset(response, 0, 9);
Serial2.readBytes(response, 9); //změneno 
int i;
byte crc = 0;
for ( i = 1; i < 8; i++) crc+=response[i];  //tady ti chybi [i],protoze tento web editor to nezobrazuje
crc = 255 - crc;
crc++;

if ( !(response[0] == 0xFF && response[1] == 0x86 && response[8] == crc) ) {
Serial.println("CRC error: " + String(crc) + " / "+ String(response[8]));
} else {
unsigned int responseHigh = (unsigned int) response[2];
unsigned int responseLow = (unsigned int) response[3];
unsigned int ppm = (256*responseHigh) + responseLow;
int x = ppm;
float y = x/1000.00;

unsigned int teplota = (unsigned int) response[4];
int a = teplota;
float b = a-40;

Serial.print ("koncentrace CO2: ");
Serial.print(ppm);
Serial.print(" PPM ");
Serial.print(y);
Serial.println("%");
Serial.print("teplota: ");
Serial.print(b);
Serial.println(" stupnu Celsia");

}
delay(5000);
}

pavel1tu
Příspěvky: 546
Registrován: 26 říj 2017, 08:28
Reputation: 1
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Arduino Mega 2560 Serial2

Příspěvek od pavel1tu » 06 led 2019, 13:42

NO, čekal jsem až to někdo odpoví,
já se jen zeptám.

Proč SoftwareSerial.h ? Když tam máte k dispozici 4 sériové porty ?
UNO, NANO, Mikro, PRO mini, DUE
http://pavel1tu.8u.cz/

RomanB
Příspěvky: 14
Registrován: 04 zář 2017, 14:28
Reputation: 0

Re: Arduino Mega 2560 Serial2

Příspěvek od RomanB » 06 led 2019, 14:18

Protože to asi okopčil z https://arduino.stackexchange.com/quest ... utput?rq=1 a tam je tam kod pro UNO a on má MEGA a chce využít HW Serial2 komunikaci a neví si rady jak. Uvádím pro jistotu Serial2, myšleno tím druhý, ať se to neplete, protože u MEGA je Serial1 (piny 18 a 19), Serial2 (piny 16 a 17) a Serial3 (piny 14 a 15)

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 0 hostů