Está querendo ingressar no universo de sistemas embarcados e não sabe por onde começar? Quer solucionar questões técnicas com Arduino mas sente dificuldade nos códigos? Então esse artigo é para você. Hoje vamos desenvolver um Projeto de semáforo no Tinkercad usando programação em blocos.
O que é Tinkercad?
O Tinkercad é uma plataforma online desenvolvida pela Autodesk que oferece ferramentas de modelagem 3D, design eletrônico e programação visual. Projetada para iniciantes, educadores e entusiastas de tecnologia, o Tinkercad permite criar modelos 3D, simular circuitos eletrônicos, programar interações e experimentar virtualmente, tudo através de uma interface intuitiva de arrastar e soltar. Com uma abordagem amigável, intuitiva e recursos versáteis, é usado para explorar criativamente o mundo da fabricação digital, eletrônica e design, facilitando a prototipagem rápida e a aprendizagem prática.
O que é programação em blocos? Por que utilizar?
A programação de blocos é uma abordagem visual para criar software, na qual os programadores montam lógica de programação utilizando blocos gráficos interconectados, ao invés de escrever código tradicional. Essa abordagem é frequentemente associada a plataformas de desenvolvimento de baixa codificação (low code) ou de não codificação (no code), que visam simplificar o processo de criação de software, tornando-o mais acessível para pessoas com diferentes níveis de habilidades técnicas.
Acesse o site da plataforma Tinkercad clicando aqui e siga as instruções.

Para cadastrar-se, clique no canto superior direito no item “Inscrever-se”. Caso já tenha uma conta cadastrada, pular os próximos passos.

Após isso, clique em “Criar uma conta pessoal”.

Caso possua uma conta Gmail ou Apple, é só acessar conforme sua respectiva conta. Ou pode também entrar com um e-mail.
Os próximos passos são simples, é um cadastro básico onde você irá inserir informações não-sensíveis e pronto! Conta criada. Se você já possui conta Google ou Apple, essas informações serão disponibilizadas automaticamente, mediante a sua aceitação.
Uma vez logado, a imagem que você terá na tela será muito próxima dessa:

Para criar o seu projeto, clique em “+ Criar”.

Selecione “circuito”.
Com uma nova página criada, vamos inserir os componentes. Para viabilizar uma futura montagem prática, elaborei uma lista de peças simplificada, separando o que é necessário somente no software e o que é adicional para montar na bancada. Confira:
Lista de materiais software:
01 x Arduino UNO;
02 x LED Vermelho;
02 x LED Amarelo;
02 x LED Verde;
06 x Resistor 330Ω 1/4W;
01 x Protoboard;
01 x KIT Jumpers Macho-Macho (diversos).
Se quiser montar na bancada e usar sem a necessidade da alimentação USB do computador, acrescente esses itens:
01 x Fonte 9V;
01 x Fonte Ajustável para Protoboard.
Mãos à obra | Hands-on
Após seguir os passos anteriores, você estará com um projeto novo e em branco.
As próximas etapas são separar os componentes e fazer as ligações elétricas. A complexidade é relativamente baixa. Se considerarmos todos os componentes (exceto ligações), são exatos 14 componentes, sendo 6 LEDs, 6 Resistores, 1 protoboard e 1 Arduino UNO.
Caso seja pouco experiente no assunto, sugiro que reproduza fielmente a imagem abaixo.
Quer aprender mais sobre o Tinkercad e suas aplicações? acesse Tinkercad | Simulador de componentes eletrônicos.

Importante: levar o GND para o trilho de alimentação da protoboard.
Observe também o mapa de entradas e saídas, endereçando os pinos do Arduino à respectiva sinalização visual.

Funcionamento de um semáforo de cruzamento de duas vias
Um semáforo de duas vias é um sistema de controle de tráfego utilizado em cruzamentos ou interseções de estradas para regular o fluxo de veículos. Ele possui três luzes coloridas: vermelha, amarela e verde, para cada direção de tráfego, indicando quando os veículos devem parar, reduzir a velocidade ou avançar.


Vamos separar o semáforo em fases:

Enquanto na via A o semáforo estiver verde, na via B o semáforo deve estar vermelho;
Antes do semáforo da via B ficar verde, a sinalização da via A deve ficar amarelo;
Após o semáforo da via A ficar vermelho, a sinalização da via B pode ficar verde;
Antes que o semáforo da via A volte a ficar verde, o semáforo da via B deve ficar amarelo.
Após essas fases, o ciclo é reiniciado e tudo recomeça.
Programação em blocos – Semáforo no Tinkercad
Agora que o hardware está pronto e entendemos sobre o princípio de funcionamento do semáforo em um cruzamento de duas vias, vamos à programação em blocos.

O primeiro bloco no início seria o que na IDE do Arduino chamamos de “SETUP”. Ali você insere informações gerais e condições e códigos que rodarão apenas uma vez no Arduino, inclusive a função pinMode() na qual orientamos o Arduino a tratar aquele pino como entrada ou saída. Aqui na programação em blocos no TinkerCAD, quando utilizarmos um bloco definir pino como dentro do bloco para sempre, de maneira automática a instrução pinMode() já será interpretada, ou seja, é mais fácil do que parece.

Dentro do bloco para sempre é onde inserimos a nossa rotina que funcionará em loop, aquela que queremos que o Arduino continue a executar ciclicamente.
Assim como o funcionamento está descrito em partes, separei uma tabela indicando o funcionamento dos semáforos em 4 fases, também elaborei essa subdivisão dentro do bloco para sempre utilizando um bloco comentário, deixando o código mais simples e intuitivo.
Os únicos três blocos utilizados serão: comentário, definir pino como e aguardar.
Fase 1

Na primeira fase, para assegurar o correto funcionamento do nosso projeto, vamos definir os pinos 5 e 10 como alto e os pinos 6, 7, 8 e 9 como baixo. Dessa maneira, garantimos que somente os pinos 5 (verde do semáforo A) e 10 (vermelho do semáforo B) estarão em nível lógico alto, ou seja, LED aceso, os demais, apagados. Em seguida, vamos colocar o valor 10 no bloco aguardar. Dica: Esse valor é uma característica alterável do projeto. Teste diferentes valores para adequar à sua necessidade.
Fase 2

Agora na segunda fase, vamos definir os pinos 6 e 10 como nível lógico alto, assim como os pinos 5, 7, 8 e 9 em nível lógico baixo. Dessa maneira, garantimos que somente os pinos 6 (amarelo do semáforo A) e 10 (vermelho do semáforo B) liberem tensão acendendo os LEDs necessários. Os demais ficarão apagados. Em seguida, vamos colocar o valor 3 no bloco aguardar. Vale ressaltar que o intervalo de tempo que o farol fica amarelo é menor em relação ao farol verde. Mas também sugiro que teste diferentes valores.
Fase 3

Na terceira fase há uma mudança no sentido do fluxo dos carros das vias. O semáforo A precisa fechar (acender o sinal vermelho) e depois o semáforo B acende o verde. É exatamente isso que acontece em nossos blocos, os pinos 7 e 8 devem estar com valor alto, o demais, baixo. Se a via B for uma avenida principal, por exemplo, você pode aumentar o tempo no bloco aguardar de forma a aumentar a vazão de carros nessa via.
Fase 4

Por fim, a quarta e última fase do semáforo. Nesse ponto acontece da via B estar com o farol amarelo e a via A com o farol vermelho, então os pinos que estarão em nível lógico alto serão os 7 e 9. Os demais pinos, baixo.
Como todas as fases estão dentro do bloco para sempre, quando o Arduino terminar de executar esse conjunto de códigos, as instruções a serem executadas voltam a ser do primeiro bloco, aqueles que estão dentro da fase 1. Assim a programação em blocos no Tinkercad irá ficar ciclicamente em loop infinito. A construção da lógica em blocos ficou da seguinte forma:
Conclusão
A programação em blocos é uma incrível porta de entrada para quem quer entrar no universo dos sistemas microcontrolados. Com uma curva de aprendizado rápida e sem utilizar uma linha de código, é possível desenvolver soluções completas. Porque na verdade, o que você insere como bloco o Tinkercad converte para código. Contudo, a programação em blocos pode se apresentar insuficiente para soluções mais avançadas e em questões mais profissionais. Os mesmos recursos que ajudam podem se apresentar como limitados.
E então, gostou do Projeto de semáforo no Tinkercad? Deixe um comentário abaixo dizendo o que achou e quais as modificações que implementou. Para mais conteúdos como este, acesse nosso blog.