Artigos

Matriz de LEDs de 8×8 com Raspberry Pi e MAX7219

Neste novo tutorial, vamos ver como controlar uma matriz de LEDs de 8×8 com Raspberry Pi e um controlador MAX7219. O controlador MAX7219 é um chip capaz de controlar até 64 LEDs independentes já que incorpora um descodificador BCD e uma memória RAM interna para armazenar o estado de cada LED.

Para escrever este projeto, testamos o seguinte modulo:

MAX7219

Como pode ver, é uma matriz de leds montada sobre uma placa e um chip MAX7219 que a controla. A ideia deste projeto é divertirmo-nos um pouco mostrando textos e icones na matriz usando um script em Pyhton.

 

Montagem de fios e ligações

 

esquem_max7219_matriz_leds

 

  • O pino 1 (VCC) do modulo deve ser interligado ao pino 2 do Raspberry Pi (5v).
  • O pino 2 (GND) do modulo deve ser interligado ao pino 6 do Raspberry (GND).
  • O pino 3 (DIN) do modulo deve ser interligado ao pino 19 do Raspberry (MOSI).
  • O pino 4 (CS) do modulo deve ser interligado ao pino 24 do Raspberry (SPI).
  • O pino 5 (CLK) do modulo deve ser interligado ao pino 23 do Raspberry (CLK).

Preparar o Raspberry Pi

Ao procurar na Internet encontrei este repositório de GitHub onde se podem descarregar uns drivers que são perfeitos para controlar a matriz. O primeiro passo será descarregar los drivers. Uma vez descarregados, descomprimimos a pasta ‘max7219-master‘ no escritório e descarregamos com WinSCP ou similar no na pasta ‘/home/pi‘ do Raspberry Pi.

Uma vez descarregada a pasta, vamos introduzir os comandos na consola:

 

cd /home/pi/max7219-master
sudo python max7219/setup.py install

 

Se lhe der erro de GCC é porque faltam umas dependências, instalámos executando este comando na consola e  executamos os comandos do passo anterior:

 

sudo apt-get install python-dev

 

A placa Raspberry Pi dispõe de um SPI bus, que vem bloqueado por defeito, para habilitá-lo temos que desligar ‘spi-bcm2708‘ do blacklist, para isso abrimos o arquivo ‘/etc/modprobe.d/raspi-blacklist.conf‘ do Raspberry Pi e colocamos um ‘#‘ em frente de ‘blacklist spi-bcm2708‘, vai-nos ficar assim:

 

# blacklist spi and i2c by default (many users don't need them)

#blacklist spi-bcm2708
blacklist i2c-bcm2708
blacklist snd-soc-pcm512x
blacklist snd-soc-wm8804

 

Agora reiniciamos o Raspberry e já podemos executar um script de teste para ver se o nosso matriz de LEDs de 8×8 já funciona.

 

Scripts de teste

Agora que já temos o Raspberry preparado e o módulo ligado corretamente vamos lançar um script simples para mostrar mensagens em scroll:

 

#!/usr/bin/env python

import max7219.led as led
import max7219.transitions as transitions

led.init()

#Mensagem de scroll de baixo para cima
led.show_message("Olá, como estás?", transition = transitions.up_scroll)
#Mensagem em scroll da direita para a esquerda
led.show_message("Olá, como estás?", transition = transitions.left_scroll)
#Mensagem a mostrar caracteres um a um
led.show_message("Olá, como estás?", transition = transitions.simple)

#Apagamos todos os LEDs
led.letter(0)

 

Também podemos mostrar carateres fixos através da função ‘letter‘, um exemplo de código seria:

 

#!/usr/bin/env python

import max7219.led as led
led.init()
led.letter(XXX)

 

Se trocarmos XXX por um número, por exemplo 1, vai-nos mostrar uma cara sorridente tipo ‘Smile’. Se os alterarmos por um 3 vai-nos aparecer um coração e se alteramos por um 4 vai fazer um diamante. Ao testar diferentes números verá que também existem ícones, letras e números. Eu testei uns quantos e deu-me isto:

 

  • 0 LEDs apagados
  • 1 Smile
  • 2 Cara de Pacman
  • 3 Coração
  • 4 Diamante
  • 5 Carater raro
  • 6 Árvore de Natal
  • 7 Bandeira do Japão
  • 8 Bandeira Japão invertida
  • 9 Circulo
  • 10 Circulo invertido
  • 11 Símbolo masculino
  • 12 Símbolo feminino

Matriz leds Raspberry Pi

————————–

Gostaram deste artigo ? Deixem o vosso comentário no formulário a baixo.

Não se esqueçam de fazer like na nossa página no facebook.

Todos os produtos utilizados neste artigo podem ser encontrados na loja de componentes eletrónicos ElectroFun.

Comments

comments

Deixar uma resposta