Cover image
Try Now
2020-10-18

Arduino library for MCP3208 8 channel, 12 bit, ADC chip

3 years

Works with Finder

4

Github Watches

7

Github Forks

20

Github Stars

MCP3208

Arduino library for MCP3208 8 channel, 12 bit, ADC chip

Usage

The library provides a constructor which takes a chip select pin number. To use the library you must first create a new MCP3208 object with the pin number. On the chipKIT boards you also get the option of passing a DSPI object to use a different SPI bus than the default:

Arduino or chipKIT:

MCP3208 myADC(10);

chipKIT only:

DSPI1 mySPI;
MCP3208 myADC(&mySPI, 10);

You can also miss out all parameters and the default chip select pin of 10 will be used.

Reading the ADC values can be done in two ways. The chip supports both normal linear analog reading (as the on-board ADC on Arduino and chipKIT boards provides), and also differential reading; that is the difference between the voltages applied to two adjacent channels.

To do a normal straight reading use the analogRead() member function of the MCP3208 object. For instance, to read from channel 3:

int myValue = myADC.analogRead(3);

For differential reading channels are numbered 0 to 3 instead of 0 to 7 and form the single-ended pairs 0+1, 2+3, 4+5 and 6+7. The analogReadDif() member function is used to read a differential value, so to read the voltage difference between inputs 4 and 5, you would use:

int myValue = myADC.analogReadDif(2);

Differential reading is done in either one or two stages depending on the voltages applied. If the voltage difference is positive then the channels are read simultaneously and the value returned. However, if the difference is negative the first reading will return an invalid value, so the channel assignments are then swapped and a new reading taken. The negative of this new value is then returned, thus giving you the full positive and negative difference ranges.

For more detail on how the chip works you should consult the datasheet:

http://ww1.microchip.com/downloads/en/DeviceDoc/21298c.pdf

相关推荐

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://zenepic.net
  • Embark on a thrilling diplomatic quest across a galaxy on the brink of war. Navigate complex politics and alien cultures to forge peace and avert catastrophe in this immersive interstellar adventure.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • https://reddgr.com
  • Delivers concise Python code and interprets non-English comments

  • 林乔安妮
  • A fashion stylist GPT offering outfit suggestions for various scenarios.

  • 田中 楓太
  • A virtual science instructor for engaging and informative lessons.

  • 1Panel-dev
  • 💬 MaxKB is an open-source AI assistant for enterprise. It seamlessly integrates RAG pipelines, supports robust workflows, and provides MCP tool-use capabilities.

  • Mintplex-Labs
  • The all-in-one Desktop & Docker AI application with built-in RAG, AI agents, No-code agent builder, MCP compatibility, and more.

  • GeyserMC
  • A library for communication with a Minecraft client/server.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • GLips
  • MCP server to provide Figma layout information to AI coding agents like Cursor

  • Dhravya
  • Collection of apple-native tools for the model context protocol.

  • patchy631
  • In-depth tutorials on LLMs, RAGs and real-world AI agent applications.

    Reviews

    5 (1)
    Avatar
    user_baaHte3l
    2025-04-17

    The MCP3208 from MajenkoLibraries is an excellent choice for anyone needing a reliable and efficient ADC for their projects. It offers great precision and versatility, supporting up to 8 channels of analog input. The documentation on GitHub is thorough and easy to follow, making it simple to integrate into both beginner and advanced projects. Highly recommended for its performance and ease of use!