Sida 1 av 2
2 Arduino pratar I2C
Postat: 10 mars 2012, 10:14:17
av rolex42
Har precis lyckats få 2 Arduino Duemilanove att prata I2C över "vanlig" ethernet-kabel.
Tänkte försöka komma upp i närmare 10 m så jag kan hämta data från solcells-experiment på vinden.
Jag har proto-shields med RJ45 kontakt. Vad jag vet finns ingen standard för I2C med RJ45, så jag har kopplat pin 3 GND(SCL), 6 SCL, 7 SDA, 8GND(SDA).
Jag använder cat5 UTP kablar. Jag har ingen pull-up som bla diskuteras
här och
här
3 m fungerar men inte 4 m och längre.
Provade med pull-up (6k ohm & 5V) på ena proto-shield och då fungerar min längsta kabel på 15 m.
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 10:38:17
av 13th.Marine
Då enheterna är anslutna Open Collector så behöver du Pullup- motstånd.
Storleken på dessa beror på Buskapacitansen och hastigheten.
I ett projekt jag jobbade i hade vi 4k7 motstånd vid Masterenheten och 8k2 vid slavenheterna.
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 10:45:14
av Icecap
Med 10m kabel kan det komma "intressanta" störningar. Att inte ha lite drivning/filter mellan är rent av dumt, på något tidpunkt kommer endera eller båda att bränna av.
Jag har som regel att en processorpinne aldrig får lämna kretskortet utan skydd!
Mest undrar jag: varför inte köra RS485 och en UART? Skulle något eldas upp blir det att byta drivkretsen, inget mer.
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 11:01:19
av JustNeed
Ballt att det funkar på 15 m.
Jag gissar på att anledningen till att det inte finns en standard för RJ45 är för att i2c är avsett att användas på betydligt mindre avstånd (typ inom kretskort).
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 11:04:59
av 13th.Marine
"Inter integrated circuit" =)
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 12:11:20
av rolex42
RS232 (UART) är troligen ett bättre alternativ än I2C, men jag har inte sett så många exempel där man kör seriellt med Arduino eftersom man ofta har datorn ansluten (Arduino USB går ju på samma pinnar).
Hittade
denna där det bla står "when multiple serial connections are necessary". Det blir en hel del "strulig" programmering här...
Om man nu går vidare med detta kanske man kan skydda Arduinon med 100 ohm på utgången och få en tillräckligt säker lösning.
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 14:57:21
av polmanswe
Du kan få köpa 2 rs232 till fiber + fiber av mig istället

Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 20:05:19
av Icecap
rolex42: "skydda Arduinon med 100 ohm på utgången och få en tillräckligt säker lösning"
Tillåt mig att skratta rått och högt! Ska du dra ut kabeln 10m+ är 100 ohm helt och totalt likgiltig och utan verkan!
Du kan dock montera lite transistor osv. mellan enheterna och få ett skapligt skydd men det ska en del omtanke till.
Men jag tackar dig, nu har jag ytterligare ett argument att hålla mig borta från Arduino.
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 20:12:53
av Borre
Å vad har Arduino med att göra vad rolex42 anser (eller tror, du vet "kanske...") fungera?
För övrigt, trevlig attityd...
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 20:29:41
av Micke_s
82b96 funkar 20m enligt NXP, I2c bus extender.
Rs485 kommer du nog billigare undan. Halv duplex så blir det lika många trådar som i2c, jorden måste du ha mellan enheterna.
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 20:35:31
av Icecap
Borre: 100 ohm kommer inte att ge något skydd alls!
Och ju mer jag läser om Arduino och alla underversioner det tydligen finns, ju mer blir jag övertygad om att de mest är en upphottat basic stamp. I början tyckte jag faktisk att de kanske kunde vara ett vettigt alternativ till vissa saker...
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 20:39:39
av Borre
Det har jag inte sagt heller. Jag frågar vad det har med Arduino att göra eftersom du ser det som ett argument att hålla dig ifrån Arduino. Men det var väl bara vanligt "kasta skit på Arduino"...
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 22:52:35
av PHermansson
Arduino är ju bara en AVR med ett särskilt IDE och ett gäng mjukvarubibliotek. Ok, det finns en kondensator extra i reset-kretsen, men det är den enda skillnaden mot ett vanligt Atmega-bygge.
I övrigt håller jag med om RS485. Softwareserial för att ha flera serieportar är inga konstigheter. Det går även att ha en MAX485 inkopplad på den vanliga serieporten samtidigt som det är kopplad till datorn via RS232/USB-adapter.
Re: 2 Arduino pratar I2C
Postat: 10 mars 2012, 23:52:10
av TomasL
Som info har Philips lite Appnotes där man kör I2C på 2 km.
Re: 2 Arduino pratar I2C
Postat: 11 mars 2012, 09:08:52
av rolex42
Men vad innebär
MAX485 inkopplad på den vanliga serieporten samtidigt ...
i praktiken då?
Eftersom jag använder Serial Monitorn för debugging antar jag det som skickas på kabeln blir det jag ser på monitorn?