Sending 16 bit and 32 bit numbers with Arduino I2C

I’ve been using I2C a lot lately and something that keeps popping up is the need to send large numbers.  I2C normally only sends a single byte at a time so you are limited to 255 as the largest number.  This post will show you how I break large numbers apart to send them over I2C and reassemble them on the other side.

Continue reading “Sending 16 bit and 32 bit numbers with Arduino I2C”

Arduino i2c problem sending multiple bytes

I ran into a bit of a weird problem a little while back when using I2C on Arduinos.  I friend also had the problem recently so I figured maybe it was common enough that this post could help other people.  The problem occurs when you have the master request a certain number of bytes from the slave.  Except when the slave sends the bytes back, they all show up as -1 except for the last one.  Here is some example code and a workaround solution.

Continue reading “Arduino i2c problem sending multiple bytes”

ATtiny i2c Slave

I’m working on a project where I need several sensors that communicate back to a central processor.  Since I’ll have several of these sensors I need them to be cheap and the ATtiny85 jumped to mind.  The only problem is that I’ve never used i2c with the ATtiny series before.  I read dozens of “tutorials” about it from around the web and couldn’t find a nice simple example.  This is my solution.

Continue reading “ATtiny i2c Slave”