O que são Portas Digitais? Portas digitais são aquelas que podem assumir apenas dois níveis lógicos bem definidos, nível alto e baixo. Normalmente, o nível lógico alto é a tensão de alimentação do Arduino (5V ou 3.3V, dependendo do modelo) e nível lógico baixo é 0V (pino conectado ao GND). As portas digitais são comumente chamadas de I/O ports, que em inglês significa "portas de entrada e saída". Esse nome vem do fato que uma porta digital pode assumir dois possíveis modos de operação, o modo de entrada e o modo de saída. Portas no modo de Saída: Quando setamos uma porta digital para o modo de saída podemos controlar qual o estado lógico que ela apresenta. Tornando possível, assim, controlar dispositivos externos como lâmpadas, atuadores, relés etc. É importante lembrar que jamais poderemos exceder a corrente máxima de saída, que é aproximadamente 20mA. Se colocarmos cargas que drenam mais iremos danificar o pino de saída e, nos casos em que necessitamos de mais corrente, é necessário o uso de algum buffer digital de potência com transistores ou portas lógicas. Portas no modo de Entrada: As portas digitais no modo de entrada serão abordadas na nossa próxima aula. Mas, basicamente, são portas em que podemos conectar um dispositivo externo e ler, no código, qual o nível presente. Utilizaremos essas portas para ler sensores digitais como botões, chaves fim de curso, sensores de nível ou até protocolos de comunicação. Como eu configuro o modo? Para configurar o modo você irá utilizar a função pinMode(PINO, MODO). Substitua PINO pelo número da porta e em MODO defina o modo para entrada (INPUT) ou saída (OUTPUT). Veja dois exemplos abaixo: Configurando o pino 14 como saída: pinMode(14, OUTPUT); Configurando o pino 21 como entrada: pinMode(21, INPUT); Como eu defino o estado de uma Saída? Para configurar o estado lógico de um pino em modo saída iremos utilizar a função digitalWrite(PINO, ESTADO). Substitua PINO pelo pino de interesse e ESTADO por nível alto (HIGH) ou nível baixo (LOW). Veja dois exemplos abaixo: Ligando o pino 12: digitalWrite(12, HIGH); Desligado o pino 9: digitalWrite(9, LOW); Para utilizar digitalWrite você previamente deve utilizar pinMode para setar o pino como saída! Projeto Semáforo Neste pequeno projeto irei demonstrar o uso de saídas digitais para a criação de um pequeno semáforo. O exemplo é simples mas coloca em prática todo o conteúdo presente nesse documento. O semáforo será constituído de 3 leds (vermelho, amarelo e verde), conectados nas portas 48, 50, e 52 de um Arduino Mega. Qualquer Arduino pode ser usado, contanto que alteremos as portas para valores compatíveis com os disponíveis na placa. O esquemático do circuito montando por ser visto a seguir: Cada led está conectado a uma porta do Arduino utilizando um resistor de 220Ω para adequadamente controlar a corrente necessária. O código do projeto pode ser visto na vídeo-aula no final da página, onde é detalhadamente explicado. Veja abaixo uma foto do semáforo.