Fråga:
Hur använder jag I2C-enheter med Arduino?
Peter Bloomfield
2014-02-13 16:08:54 UTC
view on stackexchange narkive permalink

Jag har några användbara I2C-komponenter, till exempel en 16-bitars port-expander (MCP23017), som jag skulle vilja använda i olika projekt.

Vad behöver jag göra för att göra dessa jobbar du med Arduino? Kommer det att fungera med någon Arduino, eller behöver jag ett specifikt bräde eller sköld?

Tre svar:
#1
+9
Butzke
2014-02-13 16:23:07 UTC
view on stackexchange narkive permalink

Arduino har Wire Library som kommunicerar med I2C.

Detta bibliotek låter dig kommunicera med I2C / TWI-enheter. På Arduino-korten med R3-layout (1.0 pinout) är SDA (datalinje) och SCL (klocklinje) på stifthuvuden nära AREF-stiftet. Arduino Due har två I2C / TWI-gränssnitt SDA1 och SCL1 är nära AREF-stiftet och den ytterligare finns på stift 20 och 21. Som referens visar tabellen nedan var TWI-stift finns på olika Arduino-kort.

Board I2C / TWI-stift

  • Uno, Ethernet A4 (SDA), A5 (SCL)
  • Mega2560 20 (SDA), 21 (SCL )
  • Leonardo 2 (SDA), 3 (SCL)
  • Due 20 (SDA), 21 (SCL), SDA1, SCL1

Du kan ta en titt på detta exempel.

Som @TheDoctor sa:

I2C-dataledningarna behöver båda motstånd till 3.3V. Detta hindrar dem från att driva om de är inaktiverade. Andy-motståndsvärdet ska fungera, men det rekommenderas att använda en mellan 10k ohm och 47k ohm.

Glöm inte pullup-motstånd på I2C-linjerna
För att utöka det behöver i2c-dataledningarna båda motstånd till 5v. Detta hindrar dem från att driva om de är inaktiverade. Andy-motståndets värde bör fungera, men det rekommenderas att använda en mellan 10k ohm och 47k ohm
Det bör sägas att om du använder 5V pullups på Arduino due (som namngavs i svaret) har du skadat kortet. Arduino Due använder 3,3V logik och det behöver INTE 5V pullups, även SDA och SCL är redan dragna upp internt av styrelsen.
#2
+3
Klaus-Dieter Warzecha
2014-02-13 16:14:07 UTC
view on stackexchange narkive permalink

Ytterligare skärmar behövs inte.

Du behöver bara trådbiblioteket och ett par ledningar för att ansluta enheten till SDA och SCL .

Positionen för dessa stift är annorlunda på de olika Arduinos, titta här.

#3
+2
Gordon
2015-11-21 05:14:26 UTC
view on stackexchange narkive permalink

För framtida läsare: använd biblioteket Adafruit_MCP23017.



Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...