Stránka 2 z 7
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 17:55
od Viktor_EX
prosim te, nefunguje to. nevim co mam delat.
puvodni priklady jsem prekopal podle rady, nic to nedela.
vysilac:
Kód: Vybrat vše
byte buff[16];
int i=0;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial1.begin(9600);
for(i = 0; i < 16; i++){
buff[i] = 100 + i;
}
}
void loop() {
// put your main code here, to run repeatedly:
String readString;
String Q;
//-------------------------------Check Serial Port---------------------------------------
while (Serial1.available()){
delay(1);
if(Serial1.available()>0){
char c = Serial1.read();
Serial.print(c);
if (isControl(c)){
break;
}
}
}
while (Serial.available()) {
delay(1);
if (Serial.available() >0) {
char c = Serial.read(); //gets one byte from serial buffer
if (isControl(c)) {
//'Serial.println("it's a control character");
break;
}
readString += c; //makes the string readString
}
}
Serial1.write(buff, 16);
delay(1000);
}
prijimac:
Kód: Vybrat vše
byte buff[16];
int i=0;
int readVolty[17];
#include <SoftwareSerial.h>
void setup() {
// put your setup code here, to run once:
pinMode(13,OUTPUT);
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
//-------------------------------Check Serial Port---------------------------------------
while (Serial.available()) {
delay(1);
if (Serial.available() >0) {
Serial.readBytes(buff, 16);
for(i = 0; i < 16; i++){
readVolty[i+1] = buff[i] + 150;
}
for(i = 1; i < 17; i++){
Serial.print (readVolty[i]);
Serial.print ("/");
}
Serial.println ("/");
}
}
}
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 18:09
od kiRRow
u vysílače ...
Kód: Vybrat vše
// put your main code here, to run repeatedly:
String readString;
String Q;
//-------------------------------Check Serial Port---------------------------------------
while (Serial1.available()){
delay(1);
if(Serial1.available()>0){
char c = Serial1.read();
Serial.print(c);
if (isControl(c)){
break;
}
}
}
while (Serial.available()) {
delay(1);
if (Serial.available() >0) {
char c = Serial.read(); //gets one byte from serial buffer
if (isControl(c)) {
//'Serial.println("it's a control character");
break;
}
readString += c; //makes the string readString
}
}
celý tohle dej do pryč ... pozůstatek examplu ... zatím budeme v loopu jen vysílat ty pěkně nakrmený data z setupu
u přijímače :
https://docs.arduino.cc/tutorials/commu ... ialExample koukni jak se používá knihovna a softwarový seriál ... pak stím budeš moct pracovat uplně stejně jako se dvěma linkami na mega ... škoda že tu u sebe nemám zrovna nic na čem bych to otestoval
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 18:14
od kiRRow
a pak by to mělo jít takhle
Kód: Vybrat vše
if (mySerial.available()) {// je něco na mojemSerialu ?
mySerial.readBytes(buff, 16); // čti seriovou linku po 16bytech a nasyp ji do bufferu
//Serial.write(buff, 16); // vypsat do pc ... odkomentovat pro debug
}
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 18:31
od Viktor_EX
prosim te, na myserial to hazelo chybu, tak jsem to prepsal na serial
uz to neco dela, pri upgrade UNO musim vytahnout ty dva draty na tx/rx, nahraju program, a pak tam napicham draty zpatky, pise to na monitoru tohle:
defghijklmnopqrs250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/265//
defghijklmnopqrs250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/265//
defghijklmnopqrs250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/265//
defghijklmnopqrd250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
efghijklmnopqrsd251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 18:38
od Viktor_EX
ted jsem zaremoval to //Serial.write(buff, 16);
a vysledek viz nize, takova trosku ducharina
Kód: Vybrat vše
if (Serial.available()) {// je něco na mojemSerialu ?
Serial.readBytes(buff, 16); // čti seriovou linku po 16bytech a nasyp ji do bufferu
//Serial.write(buff, 16); // vypsat do pc ... odkomentovat pro debug
}
for(i = 0; i < 16; i++){
readVolty[i+1] = buff[i] + 150;
}
for(i = 1; i < 17; i++){
Serial.print (readVolty[i]);
Serial.print ("/");
}
Serial.println ("/");
for(i = 0; i < 16; i++){
buff[i] = 55;
}
delay(10000);
250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/265//
250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/265//
250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/265//
250/251/252/253/254/255/256/257/258/259/260/261/262/263/264/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/250//
251/252/253/254/255/256/257/258/259/260/261/262/263/264/265/264//
265/250/251/252/253/254/255/256/257/258/259/260/261/262/263/258//
259/260/261/262/263/264/265/250/251/252/253/254/255/256/257/251//
252/253/254/255/256/257/258/259/260/261/262/263/264/265/250/250//
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 18:52
od kiRRow

- why.jpg (14.01 KiB) Zobrazeno 3633 x
a čím to krmíš ? .. protože defghij..... vypadalo dost nadějně .... odpovídá to číslům 100 101 102 103 atp ... pak se to nějak začíná bortit ty data .... dal bych na stranu přijímače drobný delay na konec loopu ... postupoval bych po 1ms
možná vysílat v pomalejších intervalech
edit :
OMG ---> už jsem konečně pochopil kde se berou ty nesmysly 250 atd ... ty tam někde napočítáváš těch 150 viď
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 19:02
od Viktor_EX
no jasne, realna cisla budou 250-360
aby se to vlezlo do byte, krmim to 100+i(0-15), a na strane prijmu pricitam +150, takze vysledek by mel spravne 250-265 vypany na monitoru
ale tam nejaky gulaš
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 19:08
od kiRRow
dej u přijímače úplně na konci loopu delay(5); někde občas přeskočí byte a celý se to posune ... pokud to nepomůže tak zvyš delay na straně vysílače ... jinak je super posílat aktuální kód

Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 19:09
od Viktor_EX
na prijimaci jsem to nastavil podle toho prikladu, tj mySerial ... bla bla 2,3 TX/RX ... to funguje, tj. ted nemusim vytahovat piny z TR/RX na prijmove strane, mam je napichany v 2 a 3
zkousel jsem i jinou rychlost, ale po case, jako by se posunul registr, a je to celý šoupnutý, mam na konci prijimace delay asi 10000
vysilac ma 1000
Re: 2X Arduino + TX/RX + prenos cisel
Napsal: 09 úno 2022, 19:13
od Viktor_EX
ted mam ten prijimac takhle, dole zkousim nulovat ten registr
Kód: Vybrat vše
if (mySerial.available()) {// je něco na mojemSerialu ?
mySerial.readBytes(buff, 16); // čti seriovou linku po 16bytech a nasyp ji do bufferu
//Serial.write(buff, 16); // vypsat do pc ... odkomentovat pro debug
}
for(i = 0; i < 16; i++){
readVolty[i+1] = buff[i] + 150;
}
for(i = 1; i < 17; i++){
Serial.print (readVolty[i]);
Serial.print ("/");
}
Serial.println ("/");
for(i = 0; i < 16; i++){
buff[i] = 55;
}
delay(1000);