2
\$\begingroup\$

I'm helping someone teach an embedded programming course at my university, and he's starting to cover i2C in class. SPI is next. We're trying to come up with a groovy, easy-to-interface, low-cost i2C/SPI peripheral that we could assign as a class project.

I do a lot of electronics design on the side, so I've had my fair share of interfacing with MEMS/light/temperature sensors, peripheral expanders, drivers, and everything else under the sun. I'm having a hard time coming up with a good project, though, because it seems like everything I can think of is:

  • Way too complicated (many peripherals tend to have dozens of registers required to get the device working)
  • Boring (there's nothing to get excited about when you get a temperature or barometric sensor working)
  • Expensive (we'd like to be able to buy a class set of 35 modules, so keeping things in the $2-5 range would be great!)
  • Circuit/analog-heavy (Ideally, the peripheral would be breadboardable relatively easily, without too much support circuitry; it needs to be 5V compatible)

What say you, electronics community? Bonus points for coming up with a wacky (yet straightforward) project to actually make use of said sensor.

\$\endgroup\$
1
  • \$\begingroup\$ GPIO expanders are real easy and practical, 24xxx or similar EEPROMs as well \$\endgroup\$ Mar 13, 2016 at 3:02

3 Answers 3

4
\$\begingroup\$

I start a similar class in a few weeks. In my class the students must choose their subject chip themselves, but I made a list of suggestions based on what is available on the well-known Chinese websites. (I looked wider than just SPI and I2C). The tag names are Dutch, but you might guess what they mean. Maybe it contains some things you can use. I'll keep an eye on the other suggestions that are made :)

A/D converters: HX711, AD7705, ADC0832, ADS1015, ADS1115, ADS1256, MAX6675, NCP3202, MCP3208, PCF8591, TLC1543

D/A converters : PCF8591, PT8211, M62392, DAC7612, DAC7800, TLC5615

Gyro’s, accelerometers, magnetometers : MPU-6050, LSM303, ADXL335, ADXL345, HMC5883L, MMA7455

HF modules, transceivers : RF1100SE, RFM73, NRF2401, NRF905

FM radio’s :RDA5807, Si4703, TEA5767

Licht en/of kleur sensors : TSL2560/2561, BH1750, TCS3200

LED strip drivers : SK6812, WS2812

Temperatuur, vochtigheid, druk, gas – sensors : BMP180, Si7021, AM2321, TGS4161, HR202L, HTU21D, T6603-5, DS1820

LED drivers (dot-matrix): MAX7219, TM1636 (datasheet?), TM1638, TM1640

GPIO extenders: MCP23008, MCP23S08, MPC23017, MCP23S17, 74HC165, 74HC595, 74HC259, TPIC6C595, PCF8574(A)

RTCs (real-time-clocks): DS3231, DS1307, DS1302

Camera: OV7670

Ethernet: ENC28J60, W5100, W5500, LAN8720

Audio decoders: VS1003, VS1053

Diversen : TTP226, groove finger print sensor (?)

OLED display drivers: SSD1306, SSD1351

Grafische LED display drivers: ST7735R, ST7565, ILI9340, KS0108 (5V)

LED matrix displays

Displays met analoge (composiet) input

\$\endgroup\$
2
\$\begingroup\$

LED drivers. Maybe something like the TCA6507 http://www.ti.com/product/TCA6507 a 7 bit "fun light" Not too many registers, and it can do fade on/off and "breathing". Since it's configurable fade functions, they can do different values so not everyone ends up the same.

Doesn't need much support parts. SMD, but you can teach them how to solder tssop to dip boards (easy) or do it for them.

\$\endgroup\$
2
\$\begingroup\$

Take a look at tne M24LR64 dual interface eeprom.

On the I²C side it looks like a boring eeprom, but you can also talk to it wireless via NFC at the same time (most Android phones have this).

That lets you do simple communication from your mobile phone via shared memory to your microcontroller.

They are dirt cheap and even prototype friendly eval-boards are available. There are other I²C eeproms with similar functionality available from other manufacturers as StMicro as well.

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.