2 arduino közötti kommunikáció

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. május 29. hétfő, 18:23

Köszönöm!
Van még mit reszelni. Ha működik a kommunikáció, közzé teszem.

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 5. hétfő, 13:45

Sziasztok!
Van itt ez a kis progi. Az UNO-ra feltöltés után elindul és működik. A soros monitorral működik (Tx villog). De nem indul el (Tx nem villog), ha az USB portról leválasztás után újra bedugom, vagy ha külső tápról használom. Mi a hibája?

int txden = 13;
int count = 0;


void setup(){
Serial.begin(9600);
pinMode(txden, OUTPUT);
digitalWrite(txden, HIGH); // master
}

void loop(){
if (digitalRead(txden)== HIGH){
Serial.write(count++);
delay(1000);}

}

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

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: Robert » 2017. június 5. hétfő, 14:57

Ez a sor mire jó?

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

if (digitalRead(txden)== HIGH){
http://www.tavir.hu - a gazda :)

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 5. hétfő, 15:10

Eredetleg az RS485 modul engedélyező portjának a beolvasása. Azt a programot egyszerűsítettem le erre a néhány sorra, mer az egész úgy működött ill. nem működött, ahogy az előzőekbe leírtam. De bármilyen nevű változóba írhatná a port állapotát, vagy anélkül is feltételkényt szerepelhetne itt a digitalRead(), akkor is csak a serial monitorral való lekérdezéskor működik, önálló táppal nem.

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 5. hétfő, 15:13

De, ha minden feltétel nélkül adom meg a Serial.write()-ot, akkor is hasonló a helyzet.

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 5. hétfő, 15:13

De, ha minden feltétel nélkül adom meg a Serial.write()-ot, akkor is hasonló a helyzet.

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

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: Robert » 2017. június 5. hétfő, 15:20

Eredetleg az RS485 modul engedélyező portjának a beolvasása.

Azt TE irányítod az AVR-ről, nem beolvasós....
http://www.tavir.hu - a gazda :)

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 5. hétfő, 15:38

Oké, fogalmazási hiba. Annak az Arduino portnak a beolvasása, amelyik meghatározza, hogy az RS485-ös modul Rx-ként vagy Tx-ként viselkedjen. Ez esetben az eredeti programban Tx volt, ezért a "H" szint.

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

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: Robert » 2017. június 5. hétfő, 16:00

Az USB és a D0/D1 közös használata nem játszik. Csak hibát fog okozni....
És az UNO-n hardware-sen közös.
http://www.tavir.hu - a gazda :)

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 5. hétfő, 19:23

Például ez sem akar önállóan futni:


int enablePin = 2; // use pin 2 for enable pin

void setup() {
// initialize serial:
Serial.begin(9600);
// setup enable pin for server (always high)
pinMode(enablePin, OUTPUT);
delay(10);
digitalWrite(enablePin, HIGH);
}

void loop() {
// send message to slave ("A") with different value
for (int i = 0; i < 5; i++) {
switch (i) {
case 0 : Serial.println("A1000"); break;
case 1 : Serial.println("A0100"); break;
case 2 : Serial.println("A0010"); break;
case 3 : Serial.println("A0001"); break;
}
delay(2000);
}
}

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

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: Robert » 2017. június 5. hétfő, 19:27

Mivel nézed a jóságot? Mivel fogadod
Kapcsolási vázlat? Különösen a 485 környéke....
http://www.tavir.hu - a gazda :)

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 6. kedd, 16:04

Trehány voltam, elhagytam az ellenállásokat. Itt írtál róla:

viewtopic.php?f=23&t=1529&start=15

"Ha elhagyod az ellenallast, akkor mindket ic vetelen van : lebeg a busz. Ez bizony soros veteli hibat okoz. Es ha nincs a programod felkészítve, akkor ez örök várakozást/programhibát okoz. De erre nem megoldás a watchdog!
Tessék a hibát lekezelni/megelőzni. A tüneti kezeléssel csak még nagyobb katasztrófa fele lehet sodródni... :!:"

Még nem volt időm összeállítani az előírásos kapcsolást, de mindenképpen kipróbálom. Köszönöm!

LErvin
DrótVégénSzéndarab
Hozzászólások: 19
Csatlakozott: 2017. május 24. szerda, 20:20

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: LErvin » 2017. június 7. szerda, 17:37

Ezt a kapcsolást csináltam meg a mellékelt szoftverrel:

https://arduino-info.wikispaces.com/Sof ... 485Example

Ehhez ugye nem kellenek a lezáró- és táp fel és lehúzó ellenállások, mert be vannak építve. E szerint a közlés szerint:

https://arduino-info.wikispaces.com/RS485-Modules

Ezek után sem megy önálló tápról.

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

Re: 2 arduino közötti kommunikáció

HozzászólásSzerző: Robert » 2017. június 8. csütörtök, 3:24

Te látod, hogy mit építették össze :)
A modulok egy részén jumperrel állítod be az ellenállásokat, van ahol fixen van rajta. A lezáróellelállás (120R) csak a busz 2 végén legyen!

Kérdés: A-B vonalat nem keresztbe kötötted be?
http://www.tavir.hu - a gazda :)


Vissza: “Arduino / C-nyelvű programozás (AVR-Duino, EthDuino, Arduino, Diecimila)”

Ki van itt

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