Cover image
Try Now
2017-07-05

Library and driver for interfacing an MCP3221 I2C ADC. Includes smoothing via Moving Average, Cumulative Moving Average and Exponential Moving Average

3 years

Works with Finder

2

Github Watches

7

Github Forks

10

Github Stars

Welcome To: SW_MCP3221 Driver Library

Note: This can be used with any AVR/Arduino that needs to interface with hardware that is based on an MCP3221

Updated: 2017, July renamed to separate from the other library

Originally written as a simple interface this driver has been extended with a couple simple averaging methods, and makes taking readings very easy. This class is extended by the MiniLib class which uses this and a few other interfaces extensively!

Class Info

  • Simple implementation with instancing (MCP3221 mcp3221(address,vref) for example)
  • Feed it address and and measured VREF(I.E measured VDD into IC)

Method Info

  • readI2CADC, takes a single reading from the MCP3221 which is in constant conversion mode by default(IIRC its always in this mode)
  • calcMillivolts, calls readI2CADC and uses VREF value that was input during instance creation
  • calcRollingAVG, Takes current raw adc reading and adds it to a storage array(default is 10 data points), th oldest data point is dropped and array is shifted to move with readings
  • calcEMAVG, approximates a rolling average by using an ALPHA coefficient and a power of 2 POWER for division, only needs a current reading which is weighted by ALPHA is pass through
  • updateVRef in case a class which inherits from this one can update the vref should it be necessary

Average and Smoothing Info

Quick list of Smoothing methods used in this driver
  • Rolling/Moving average, uses an array to store data points, oldest is removed and current reading is added in as array is shifted to move with dataset
  • Exponential moving average using power of 2 division(POWER) to avoid unnecessary float math, approximates a moving average while only using current data point
  • Number of rolling average samples have been increased to 20 will wait to see if this is adequate or not.

License Info

Creative Commons License
MCP3221 Library by Ryan Edwards, Sparky's Widgets is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

相关推荐

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

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

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

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

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

  • Lists Tailwind CSS classes in monospaced font

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • https://appia.in
  • Siri Shortcut Finder – your go-to place for discovering amazing Siri Shortcuts with ease

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

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

  • tomoyoshi hirata
  • Sony α7IIIマニュアルアシスタント

  • apappascs
  • Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.

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

  • jae-jae
  • MCP server for fetch web page content using Playwright headless browser.

  • ravitemer
  • A powerful Neovim plugin for managing MCP (Model Context Protocol) servers

  • patruff
  • Bridge between Ollama and MCP servers, enabling local LLMs to use Model Context Protocol tools

  • pontusab
  • The Cursor & Windsurf community, find rules and MCPs

  • av
  • Effortlessly run LLM backends, APIs, frontends, and services with one command.

  • WangRongsheng
  • 🧑‍🚀 全世界最好的LLM资料总结(Agent框架、辅助编程、数据处理、模型训练、模型推理、o1 模型、MCP、小语言模型、视觉语言模型) | Summary of the world's best LLM resources.

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

  • appcypher
  • Awesome MCP Servers - A curated list of Model Context Protocol servers

    Reviews

    1 (1)
    Avatar
    user_H0BJAqy3
    2025-04-17

    The MCP3221-Library by SparkysWidgets is a fantastic tool for interfacing with the MCP3221 ADC. The code is clean, well-documented, and easy to integrate into existing projects. I highly recommend it for anyone needing precise ADC functionality. Great job, SparkysWidgets! Check it out here: https://github.com/SparkysWidgets/MCP3221-Library