GithubHelp home page GithubHelp logo

elintonsilva / arduino_keypads Goto Github PK

View Code? Open in Web Editor NEW

This project forked from joeyoung/arduino_keypads

0.0 0.0 0.0 8.68 MB

arduino libraries for keypad interface on I2C bus

License: GNU General Public License v3.0

C++ 99.00% OpenSCAD 1.00%

arduino_keypads's Introduction

arduino_keypads

This repository contains several separate arduino format libraries, each one adding to the library Keypad external expansion port communication via an I2C (or Wire( )) port on the arduino microprocessor.

The separate libraries each handle the I/O needed by Keypad for different expansion port chips:

  • Keypad_I2C - PCF8574, PCF8574A and PCF8575
  • Keypad_I2Ca - PCA9554, PCA9555, PCA9534, PCA9535, PCA9539, PCA6408, PCA6416
  • Keypad_MC16 - MCP23016
  • Keypad_MCP - MCP23008
  • Keypad_MC17 - MCP23017
  • Keypad_tw - PCF8574, PCF8575 using the TinyWire lib on atTiny processors

The reason for separate libraries for each sort of expansion port IC is that their register sets, while implementing similar I/O functions, are generally not compatible among the devices, or/and because the I/O needed for Keypad is a small subset of the port chip capabilities, a system will likely only contain one type of port IC so a simple program library for that specific device will have a smaller memory footprint than would a single larger program that could handle all devices.

To use the libraries, download the .zip file, unzip to a temporary location, and then move the library desired into your libraries folder. The library manager does not work on the entire repository.

A recent update to the libraries permits the optional specifation of an I2C port as an alternative or in addition to Wire on those arduino that have more than one I2C bus. See the example Hello_I2Cboth in Keypad_I2C for using two expansion port chips on MKR ZERO. See also the arduino tutorial Adding more Serial Interfaces to SAMD microcontrollers (SERCOM)

The Keypad library is found on github.

An interesting use of Keypad's features enables decoding of quadrature encoders--see the examples KeypadEnc, and KeypadEnc_I2C in the Keypad_I2C library.

The folder scadKeypadLabel has a simple scad script for creating keypad overlays.

arduino_keypads's People

Contributors

joeyoung avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.