Arduino LED Matrix Control. Controlling lots of LEDs

Similar documents
Grove - OLED Display 1.12"

Giant Digital Letterforms: LEDs and Pixelated Type

Objectives: Learn how LED displays work Be able to output your name on the display

ECE Design Team 3 Madi Kassymbekov How to use MSP 430 Peripheral Sensors and use of LEDs as sensors

Module 4: Traffic Signal Design Lesson 1: Traffic Signal (Arduino) Control System Laboratory Exercise Grade 6-8

LAB #6 State Machine, Decoder, Buffer/Driver and Seven Segment Display

Introduction. The Clock Hardware. A Unique LED Clock Article by Craig A. Lindley

LED Array Tutorial. This guide explains how to set up and operate the LED arrays that can be used for your. Internal Structure of LED Array

Experiment 0: Hello, micro:bit!

ECE 372 Microcontroller Design

uresearch GRAVITECH.US GRAVITECH GROUP Copyright 2007 MicroResearch GRAVITECH GROUP

Dynamic Animation Cube Group 1 Joseph Clark Michael Alberts Isaiah Walker Arnold Li

Arduino Lesson 3. RGB LEDs

Touch Interactive Matrix LED Display for the Collective Awareness Ecosystem

Laboratory 11. Required Components: Objectives. Introduction. Digital Displays and Logic (modified from lab text by Alciatore)

Light Emitting Diodes (LEDs)

Character LCDs. Created by lady ada. Last updated on :47:43 AM UTC

We had to design a Led circuit that would contain multiple Leds, activate them by address, then holds the flashing addressed Led in memory and

Comp 410/510. Computer Graphics Spring Introduction to Graphics Systems

Lesson 4 RGB LED. Overview. Component Required:

VikiLABS. a g. c dp. Working with 7-segment displays. 1 Single digit displays. July 14, 2017

Schematic Analysis of P10 16x32 RGB LED Panel 3 in 1 DIP Type Dual (Dual In-Line Package) on Trafficlight Revolution

Chapter 9 MSI Logic Circuits

SEP Bright Pi v1.0 Assembly Instructions

Theory and Practice of Tangible User Interfaces. Thursday Week 3: Analog Input. week. Sensor 1: Potentiometers. Analog input

Published in A R DIGITECH

Digital (5hz to 500 Khz) Frequency-Meter

LED Array Board.

9/23/2014. Andrew Costin, Tom Syster, Ryan Cramer Advisor: Professor Hack Instructor: Professor Lin May 5 th, 2014

Optimized design for controlling LED display matrix by an FPGA board

USER MANUAL Nokia 5110 LCD

TV Synchronism Generation with PIC Microcontroller

Preface. About SunFounder. About Super Kit. Free Support

2.13inch e-paper HAT (D) User Manual

Part 1: Introduction to computer graphics 1. Describe Each of the following: a. Computer Graphics. b. Computer Graphics API. c. CG s can be used in

The Micropython Microcontroller

Preface. If you have any TECHNICAL questions, add a topic under FORUM section on our website and we'll reply as soon as possible.


ENGR 40M Project 3a: Building an LED Cube

HDMI-UVC/HDMI-Parallel converter [SVO-03 U&P]

Types of CRT Display Devices. DVST-Direct View Storage Tube

L14 - Video. L14: Spring 2005 Introductory Digital Systems Laboratory

Device: LDP This document Version: 1.1. Date: July Description: 64x16 1R1G LED Display Panel

A Directional Indicator with a Symbol Based Interface for improvised Safety-Enhanced Directional Indicators using Matrix LED

Self-Playing Xylophone

Nixie Clock Type Frank 2 Z570M

Data Sheet. Electronic displays

ECE 4510/5530 Microcontroller Applications Week 3 Lab 3

Laboratory 8. Digital Circuits - Counter and LED Display

The reduction in the number of flip-flops in a sequential circuit is referred to as the state-reduction problem.

Data Acquisition Using LabVIEW

Building the ChronoDot Calendar Reminder

TIL311 HEXADECIMAL DISPLAY WITH LOGIC

Build A Video Switcher

LED Driver IC IK2108A TECHNICAL DATA. Description

ENGR 40M Project 3b: Programming the LED cube

Digital 1 Final Project Sequential Digital System - Slot Machine

TV Character Generator

Large 5 X 7 Dot Matrix Alphanumeric Displays 17.3/26.5 mm Character Heights Technical Data

Copyright 2011 by Enoch Hwang, Ph.D. and Global Specialties. All rights reserved. Printed in Taiwan.

PHYS 3322 Modern Laboratory Methods I Digital Devices

Embedded System Training Module ABLab Solutions

Christmas LED Snowflake Project

FPGA Laboratory Assignment 4. Due Date: 06/11/2012

Assembly Instructions And User Guide. Nixie FunKlock. FunKlock Issue 4 (1 February 2017)

USER'S MANUAL. Getting started with ALEXAN ATMEL AT89C2051/AT89C4051 Training Module - 1

Part Number Terminals LCD Mode LED Color. * Simultaneous RGB illumination achieves infinite colors. Forward Current I F 20mA Power Dissipation P d mw

Put Your Data Up in Lights Using an LED Display Chip

Digital Blocks Semiconductor IP

Mal-2 assembly guide v1.0

PRODUCT NO.: PT-L735 PRODUCT NAME: Ultra Portable LCD Projector

Multi-Function Hexahedron An Interactive LED Cube

Lecture Flat Panel Display Devices

CMPE 466 COMPUTER GRAPHICS

The Serial Port is Dead! Long Live the Serial Port! USB Serial Port Breadboard Experiments with the FTDI FT232R

Overview of All Pixel Circuits for Active Matrix Organic Light Emitting Diode (AMOLED)

SOC Implementation for Christmas Lighting with Pattern Display Indication RAMANDEEP SINGH 1, AKANKSHA SHARMA 2, ANKUR AGGARWAL 3, ANKIT SATIJA 4 1

Sequential Logic Notes

Hitachi Europe Ltd. ISSUE : app084/1.0 APPLICATION NOTE DATE : 28/04/99

MSS-CASCADE User Manual

Monolithic CMOS Power Supply for OLED Display Driver / Controller IC

Display Technologies CMSC 435. Slides based on Dr. Luebke s slides

Product General Specification

Model Railway Animation: Part 1, LEDs - Expanded By David King

Arduino Hacking Village THOTCON 0x9

AN-ENG-001. Using the AVR32 SoC for real-time video applications. Written by Matteo Vit, Approved by Andrea Marson, VERSION: 1.0.0

DEM N1 TMH-PW-N

This module senses temperature and humidity. Output: Temperature and humidity display on serial monitor.

Experiment # 4 Counters and Logic Analyzer

AT03716: Implementation of SAM L Configurable Custom Logic (CCL) Peripheral. Description. SMART ARM-based Microcontrollers APPLICATION NOTE

LogicBlocks Experiment Guide a learn.sparkfun.com

Nixie Clock Type Frank 3

Digital. Digital. Revision: v0.19 Date: : / 76

International Journal of Innovative Scientific &Engineering Technologies Research 1(2):29-41, December, 2013

AIS CUBE 2.83 AMOLED DISPLAY. Datasheet & Application Note Preliminary Release

EM6126 EM MICROELECTRONIC - MARIN SA. Digitally programmable 65 and 81 multiplex rate LCD Controller and Driver. Features. Typical Applications

SparkFun Inventor's Kit for micro:bit Experiment Guide

The Haply Development Kit

Alice EduPad Board. User s Guide Version /11/2017

Image generator. Hardware Specification

Transcription:

Arduino LED Matrix Control Controlling lots of LEDs

Intro LED basics Matrix-connected LED arrays Example: Lego 10196 Grand Carousel

LED V/I relation V I 3 2.5 diode current vs. voltage 2 Current flows, and the LED emits light, with positive voltage No current (light) with zero or negative voltage diode current (A) 1.5 1 0.5 0-0.5-1 -2-1.5-1 -0.5 0 0.5 1 1.5 2 diode voltage (V)

Using LEDs LEDs can only handle ~2V before damage But Arduino outputs are 5V logic Limit diode voltage and current with a series resistor V can now be 5V without damaging LED; the rest of the voltage drops across the ballast resistor V R I For Vdiode=2V Use: V=5V R=3kΩ I=1mA

Arduino UNO board Atmel AVR microcontroller Power with USB or AC adapter I/O, power pins on headers

Sequence blink Blink LEDs 1 through 6 in a sequential pattern...

Limitations of direct drive Number of LEDs limited to number of I/Os Arduino UNO: 13 digital outputs Ballast resistors are a big hassle Need one resistor per LED But we can get rid of them (more later...)

LED matrix Arrange diodes in a rectangular array: matrix Columns have common anode Rows have common cathode Reduced I/O: 12 lines (not 35)

Display a character =

Matrix LEDs: One diode Key idea #1: a diode only turns on when its anode is high (1) and its cathode is low (0) 0 1 Otherwise the diode is off 0 OFF 0 ON Driving cathode high disables the diode, independent of anode 0 1 1 OFF 1 OFF

Matrix LEDs: One row 0 1 1 1 0 OFF ON ON ON OFF 0 Enable the row by pulling the common cathode low Turn on individual diodes by pulling anodes high

Matrix LEDs: Two rows, first row on 0 1 1 1 0 0 1 Row 1 is enabled (cathode is low), anodes select LEDs Row 2 is off (cathode is high)

Matrix LEDs: Two rows, second row on 1 0 0 0 1 1 0 Row 1 is off (cathode is high) Row 2 is enabled (cathode is low), anodes select LEDs

Persistence of vision If we switch quickly between rows 1 and 2, it looks like they re both active Silicon is way faster than our eyes, so... Key idea #2: Use persistence of vision to scan the whole array Cycle through all the rows in sequence to create the illusion that all selected LEDs are on

Matrix LEDs: Array scan 0 1 1 1 0 1 0 0 0 1 1 0 0 0 1 1 1 1 1 1 1 0 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 Scan seven rows in sequence to make a character Scan fast enough and the eye thinks all the selected LEDs are turned on This is how all displays work: fast cycling through individual lines

Matrix LEDs: Challenges Coding all this is a lot of work Choose bit pattern Binary encode for each scan line Send the code sequences to anode, cathode pins Maintain timing for array scan refresh Change the pixel pattern? Do it all again... A ballast R for each column Better than one for each diode

Arduino example? Arduino 8x8 array example: File Examples 07.Display RowColumnScanning But this is too complicated, there is a simpler way to control LEDs

Adafruit 16x8 LED backpack board Holtek HT16K33 drives up to 16x8 LED matrix = 128 LEDs 3-bit I2C addressable for up to 8 matrices = 1024 LEDs No ballast resistors: current sources drive LEDs directly Four I/Os to Arduino: power, gnd, clock, data https://www.adafruit.com/product/1427 - $6

Breakout board demo Adafruit demo board with 16x8 LED array Sparkfun StemTera board integrates an Arduino board into a protoboard Only need power, ground, SCL (clock), SDA (data) from Arduino

Adafruit HT16K33 Arduino API The whole reason to use the backpack board API manages pixels, not hardware Draw dots, lines, rectangles Scroll text Dump bitmap pictures

Lego 10196 Carousel The stock model, with invisible(*) upgrades (*) Replaced center column mirrors with light columns

Carousel Electronics Block Diagram Slip ring allows electrical continuity through a rotating joint

Core column LEDs An Anode column

Carousel core LED matrix schematic Each An line goes to a 8-LED column in the core 12 of 16 possible columns used

Core HT16K33 board 12 of 16 possible columns used Not shown: set I2C address to 0x70

Crown section LEDs C4 C3 C4 C2 C2 C5 C0 C1 C5 C0 C1 Odd anode column Even anode column

Carousel crown LED matrix schematic Each An line goes to a 5 (or 6) LED section of the crown Missing C3 LED on odd columns is at the top (at beard deco)

Crown HT16K33 board 6 of 8 possible rows used Not shown: set I2C address to 0x71

Carousel Arduino code Setup: create two Matrix objects Variables: bitmaps for diagonal stripes, pseudorandom pattern Loop patterns All on All on / all off blink Core horizontal line crawl = crown loops Diagonal stripes (bitmap) Pseudorandom (bitmap) All off

References Adafruit LED driver breakout board, Arduino drivers https://www.adafruit.com/product/1427 Carousel blog post https://blog.adafruit.com/2017/04/11/lego-grand-carousel-with-ht16k33- breakout-leds-slip-ring-upgrade/ Sparkfun StemTera https://www.sparkfun.com/products/14083 Snappable protoboard https://www.sparkfun.com/products/13268 Matrix tutorial http://embedded-lab.com/blog/lab-12-basics-of-led-dot-matrix-display/

References Video demo https://youtu.be/bwpxw-rt0cw Brickshelf gallery, Arduino source http://www.brickshelf.com/cgi-bin/gallery.cgi?f=569208 Flickr https://www.flickr.com/photos/timrueger/ Demo slideshow PDF http://www.timrueger.net/docs/lego_10196_grand_carousel_with_arduino_leds.pdf