communicatie tussen 2 arduino's
7 berichten
• Pagina 1 van 1
- corolla_g6
- Berichten: 47
- Geregistreerd: 24 Nov 2014, 19:47
communicatie tussen 2 arduino's
hallo,
ik ben bezig om 2 arduino's te koppelen, de afstand tussen de 2 is ongeveer 15 meter (master/slave)
hier loopt al een meeraderige kabel (7x1mm²) tussen en graag wil ik deze gebruiken
eventueel kan ik op beide locaties utp naartoe brengen maar het liefst via de bestaande kabel.
ik had gelezen dat het via i2c kan maar daar lees ik verschillende verhalen over..
de bedoeling is om de slave aan te sturen vanuit de master en dan eerst de 8ch relaiskaart en later mischien nog wat data terug te ontvangen
ik ben bezig om 2 arduino's te koppelen, de afstand tussen de 2 is ongeveer 15 meter (master/slave)
hier loopt al een meeraderige kabel (7x1mm²) tussen en graag wil ik deze gebruiken
eventueel kan ik op beide locaties utp naartoe brengen maar het liefst via de bestaande kabel.
ik had gelezen dat het via i2c kan maar daar lees ik verschillende verhalen over..
de bedoeling is om de slave aan te sturen vanuit de master en dan eerst de 8ch relaiskaart en later mischien nog wat data terug te ontvangen
Advertisement
Re: communicatie tussen 2 arduino's
Ik deed het met I2C en dat werkt behoorlijk simpel. Ik weet alleen niet wat het op die afstand doet.
Kris
Kris
Als je het probleem gedetailleerd genoeg omschrijft, heb je meestal al de oplossing.
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: communicatie tussen 2 arduino's
Ik zou het gewoon proberen. bij 1mm^2 heb je ongeveer 0,01 ohm weerstand per meter. Dus daar zal het niet aan liggen. Wel krijg je wat capacitieve demping. Kan zijn dat je dan de I2C snelheid wat naar beneden moet brengen om dat te compenseren
- corolla_g6
- Berichten: 47
- Geregistreerd: 24 Nov 2014, 19:47
Re: communicatie tussen 2 arduino's
oke bedankt nico,
ik heb het geprobeert met een voorbeeld van internet maar daar werdt gebruik gemaakt van 2x een uno en ik heb 2x een mega.. maakt dit uit? want het werkt niet
ik heb natuurlijk wel 20 en 21 gebruikt ipv a4 en a5
cpp code
cpp code
ik heb het geprobeert met een voorbeeld van internet maar daar werdt gebruik gemaakt van 2x een uno en ik heb 2x een mega.. maakt dit uit? want het werkt niet
ik heb natuurlijk wel 20 en 21 gebruikt ipv a4 en a5
cpp code
//master
#include <Wire.h>
int switchPin = 2;
void setup()
{
Wire.begin();
pinMode(switchPin,INPUT);
}
void loop()
{
Wire.beginTransmission(4); // the adress of the other board(slave)
Wire.write("switchMode is ");
Wire.write(digitalRead(switchPin)); // sends data
Wire.endTransmission(); // stop transmitting
delay(500);
}
cpp code
//slave
#include <Wire.h>
int ledPin = 2;
int switchMode =0; //contains the recieved status of the switch
void setup()
{
Wire.begin(4); // join i2c bus with address #4
Wire.onReceive(receiveEvent); // register event
Serial.begin(9600); // start serial for output
pinMode(2,OUTPUT);
digitalWrite(2,HIGH);
}
void loop()
{
if(switchMode == 1) digitalWrite(2, LOW);
else if(switchMode == 0) digitalWrite(2, HIGH);
}
// function that executes whenever data is received from master
// this function is registered as an event, see setup()
void receiveEvent(int howMany)
{
switchMode = Wire.read(); // receive byte as an integer
Serial.println(switchMode); // print the integer
}
- nicoverduin
- Berichten: 5043
- Geregistreerd: 13 Mei 2013, 20:57
- Woonplaats: Heemskerk
Re: communicatie tussen 2 arduino's
Heb je het eerst getest met korte draadjes? Want als dat ook niet werkt, dan kun je zoeken tot je een ons weegt, maar gaat het niet werken.
- corolla_g6
- Berichten: 47
- Geregistreerd: 24 Nov 2014, 19:47
Re: communicatie tussen 2 arduino's
uiteraard eerst getest met korte draadjes.
ik heb nu 2 sketchen geschreven en het werkt, maar niet op de lange kabel....
hoe kan ik de i2c snelheid naar beneden brengen?
iets in de Wire.begin()?
ik heb nu 2 sketchen geschreven en het werkt, maar niet op de lange kabel....
hoe kan ik de i2c snelheid naar beneden brengen?
iets in de Wire.begin()?
Re: communicatie tussen 2 arduino's
The twi.init() call is internal to the Wire library. It performs the following tasks:
enables the TWI hardware to access the appropriate pins on the ATmega processor. In the case of the ATmega 328, these are analog pins 4 for SDA and 5 for the SCL line of the I2C bus.
sets the clock frequency that the TWI hardware will use if/when it is the master on the I2C bus. It is set in the source code to 100kHz, but theoretically at least you can reset this frequency by calling Wire.setclock(). The value passed is the bitrate from 400000L to 31000L. Wire.setclock(400000L); should set it to 400kHz. Wire.setClock() must be called after Wire.begin(). Wire.begin() initializes the bitrate to 100kHz.
zie http://playground.arduino.cc/Main/WireLibraryDetailedReference
enables the TWI hardware to access the appropriate pins on the ATmega processor. In the case of the ATmega 328, these are analog pins 4 for SDA and 5 for the SCL line of the I2C bus.
sets the clock frequency that the TWI hardware will use if/when it is the master on the I2C bus. It is set in the source code to 100kHz, but theoretically at least you can reset this frequency by calling Wire.setclock(). The value passed is the bitrate from 400000L to 31000L. Wire.setclock(400000L); should set it to 400kHz. Wire.setClock() must be called after Wire.begin(). Wire.begin() initializes the bitrate to 100kHz.
zie http://playground.arduino.cc/Main/WireLibraryDetailedReference
7 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten