Semáforos com Arduino

Implementando Semáforos com Arduino

Projetos de semáforos com Arduino são facilmente encontrados na Internet. No entanto, muitos deles usam apenas um Arduino como base para todo o hardware necessário ao projeto. Neste projeto, observa-se a presença de dois ou mais Arduinos, onde um implementa a controladora e os outros implementam o mostrador, ou seja, o semáforo propriamente dito.

A "Filosofia" do Projeto

A objetivo do projeto, que é desenvolver um produto didático que contenha apenas as características fundamentais do produto real, tem dois elementos que o caracterizam. O primeiro está relacionado à organização do conjunto, que segue as mesmas características do produto real, ou seja, conta com dois componentes distintos, a controladora mestre e os mostradores escravos.

O segundo elemento que caracteriza o projeto está na forma de comunicação entre o mestre e os escravos, que usa de um componente tecnológico com nome bem conhecido na área da comunicação de dados, o protocolo. O protocolo aqui usado é o I2C que, de modo geral, permite a identificação dos componentes da "rede" e implementa a comunicação por troca identificada de mensagem entre o componente mestre e os componentes escravos. Ressalta-se que os escravos nunca enviam mensagens, apenas executam tarefas relacionadas ao conteúdo das mensagens recebidas pelo mestre.

Estas características de projeto, que tem a simplicidade como fundamento, devem permitir ao alunos a rápida compreensão de seus componentes e a consequente facilidade em adicionar funcionalidades ao produto. Dentre as funcionalidades podem ser citadas a forma como o semáforo controla o fluxo (2, 3, ou 4 tempos) e os dispositivos periféricos ao conjunto base, como identificadores sonoros para pedestres cegos.

Implementando e Testando no Simulador

Atualmente é muito fácil testar seus projetos com o uso do Arduino. Além deles serem de baixo custo, ainda existem alguns bons simuladores - eficientes e gratuitos. Este projeto usará o simulador de circuito TinkerCAD, pois é gratuito, tem uma interface que gera um produto (circuito) simulado, com características físicas bem semelhante ao produto real.

Para facilitar ainda mais o processo de compreensão do produto, ele foi desenvolvido em duas fases. Na primeira fase o semáforo é implementado em sua forma mais simples, ou seja, um mestre e um escravo. As duas fases implementam o semáforo via programação de microcontroladores (inseridos nos Arduinos).

O projeto (fase 1) pode ser completamente acessado na simulação a seguir, que permite ao usuário simular a execução, e nesta execução ele também pode observar o programa (código) que controla o seu funcionamento.

Ao observar os códigos verifica-se que são bem pequenos e que identificar o mestre e o escravo não é problema, pois o mestre descreve o funcionamento efetivo do semáforo e o escravo apenas implementa este funcionamento quando recebe a mensagem relativa a cor a ser exibida.

Na segunda fase já pode ser observado um semáforo de tempo simples - os mais comuns. Na simulação a seguir observa-se nos programas a identificação diferenciada para os escravos. Isto permite que comportamentos diferentes para estes escravos. Mesmo com comportamentos diferentes, destaca-se que a única diferença entre os programas dos escravos estão na identificação dos mesmos.