2 arduino közötti kommunikáció
Re: 2 arduino közötti kommunikáció
Köszönöm!
Van még mit reszelni. Ha működik a kommunikáció, közzé teszem.
Van még mit reszelni. Ha működik a kommunikáció, közzé teszem.
Re: 2 arduino közötti kommunikáció
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);}
}
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);}
}
Re: 2 arduino közötti kommunikáció
Ez a sor mire jó?
Kód: Egész kijelölése
if (digitalRead(txden)== HIGH){
http://www.tavir.hu - a gazda
Re: 2 arduino közötti kommunikáció
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.
Re: 2 arduino közötti kommunikáció
De, ha minden feltétel nélkül adom meg a Serial.write()-ot, akkor is hasonló a helyzet.
Re: 2 arduino közötti kommunikáció
De, ha minden feltétel nélkül adom meg a Serial.write()-ot, akkor is hasonló a helyzet.
Re: 2 arduino közötti kommunikáció
Azt TE irányítod az AVR-ről, nem beolvasós....Eredetleg az RS485 modul engedélyező portjának a beolvasása.
http://www.tavir.hu - a gazda
Re: 2 arduino közötti kommunikáció
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.
Re: 2 arduino közötti kommunikáció
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.
És az UNO-n hardware-sen közös.
http://www.tavir.hu - a gazda
Re: 2 arduino közötti kommunikáció
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);
}
}
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);
}
}
Re: 2 arduino közötti kommunikáció
Mivel nézed a jóságot? Mivel fogadod
Kapcsolási vázlat? Különösen a 485 környéke....
Kapcsolási vázlat? Különösen a 485 környéke....
http://www.tavir.hu - a gazda
Re: 2 arduino közötti kommunikáció
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!
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!
Re: 2 arduino közötti kommunikáció
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.
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.
Re: 2 arduino közötti kommunikáció
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?
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