
Passo 1 de 7
Do número no código ao pino da placa
Relacione os nomes usados no sketch aos conectores e ao LED integrado do Arduino Uno R3.
Trilha de aprendizado · Nível 9 · Tutorial 4
Configure uma saída digital e controle um LED com um programa sequencial, verificando a ligação e a corrente antes de energizar a montagem própria.
Do número no código ao pino da placa
Relacione os nomes usados no sketch aos conectores e ao LED integrado do Arduino Uno R3. 2 min
Configurar a saída e comandar o LED integrado
Configure o LED integrado como saída, comande HIGH e LOW e interprete corretamente o estado do pino durante e após a inicialização. 3 min
Prever piscadas com comandos e esperas
3 min
Conferir a corrente antes de montar
Verifique a corrente e os limites do GPIO antes de conectar o LED externo. 3 min
Montar o LED externo com a placa desligada
Monte o LED externo no pino digital 7 e faça uma inspeção factual do circuito antes de conectar a alimentação. 3 min
Gravar e verificar a sequência no LED externo
Execute o sketch no LED externo ligado a D7, observe a sequência e confira o reinício após reset. 3 min
Aplicação final: prever, executar e conferir
Aplicação final para prever, executar e conferir duas piscadas curtas seguidas de uma pausa maior em um LED externo ligado ao D7. 3 min

Passo 1 de 7
Relacione os nomes usados no sketch aos conectores e ao LED integrado do Arduino Uno R3.
Um GPIO é um pino de uso geral que o programa pode configurar para interagir com o circuito. Nesta prática, vamos usar GPIOs somente como saídas digitais: o programa comandará um nível alto ou baixo para controlar um LED.
No Arduino Uno R3, os conectores marcados de 0 a 13 são os pinos digitais usados pela API Arduino. Assim, o número escrito no código se refere à identificação do conector da placa — não à posição de um terminal no encapsulamento do ATmega328P.

O número 7 no programa aponta para o conector digital D7 da placa.
Para começar sem montar nenhum componente, use a constante pronta LED_BUILTIN. No Uno R3, ela identifica o LED integrado marcado com L, ligado ao pino digital 13.
Em vez de espalhar um número pelo programa, declare uma constante com o pino controlado. Mais adiante, a troca para o LED externo exigirá alterar apenas esse valor.
Use esta declaração no início do sketch. Ela seleciona o LED integrado; ainda não configura nem altera o pino.
const uint8_t pinoLed = LED_BUILTIN;Dica
Ao trocar para o circuito externo, a ideia será manter o mesmo nome e mudar somente a identificação para o pino digital 7. A configuração e os comandos serão estudados no próximo passo.
Associe cada identificação ao elemento correto no Uno R3.
Faça as associações.
Toque em um item e depois no par correspondente.
Atenção
Durante toda esta prática, mantenha os pinos digitais 0 e 1 sem conexões externas. Eles são usados pela comunicação USB/serial da placa e conexões adicionais podem atrapalhar a gravação do programa.
Por enquanto, localize D7 e o LED L na sua placa, sem conectar fios. No próximo passo, você configurará o LED integrado como saída.

Passo 2 de 7
Configure o LED integrado como saída, comande HIGH e LOW e interprete corretamente o estado do pino durante e após a inicialização.
Você já conhece setup() e loop(). Dentro desses blocos, use chamadas de funções prontas da API Arduino: escreva o nome, parênteses e os argumentos.
pinMode(pino, OUTPUT) define que o pino será uma saída.digitalWrite(pino, HIGH) ou digitalWrite(pino, LOW) comanda o nível dessa saída.Essas são chamadas de funções, não definições de funções. Os blocos void setup() { ... } e void loop() { ... } fazem parte da estrutura do sketch.
Nesta etapa, LED_BUILTIN identifica o LED integrado L do Uno R3, ligado ao pino digital 13. Assim, você pode testar o programa sem montar componentes externos.

Depois de configurado como saída, D13 recebe um comando de nível; o LED integrado permite observar esse efeito.
No Uno R3, sob carga pequena, HIGH comanda um nível próximo de 5 V e LOW, um nível próximo de 0 V. Esses nomes não ajustam brilho nem corrente: o LED integrado já possui o circuito apropriado na placa.
Para começar em nível baixo de forma explícita, comande LOW antes de habilitar o modo OUTPUT. Em seguida, o comando HIGH deixa o LED integrado aceso e permanece assim até que outro comando altere o nível.
Copie este sketch completo para um sketch local na IDE Arduino, grave-o no Uno R3 e observe o LED L da placa.
const uint8_t pinoLed = LED_BUILTIN;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, OUTPUT);
}
void loop() {
digitalWrite(pinoLed, HIGH);
}Após a inicialização, o LED L permanece continuamente aceso. Pode haver atividade breve do LED integrado durante reset ou bootloader, antes de setup().
Resultado físico esperado, não uma mensagem no console. Durante reset ou bootloader, o LED integrado pode apresentar atividade breve antes da execução de `setup()`.
Exemplo
Com a placa conectada apenas pelo USB compatível, grave o sketch. Após setup(), o LED L deve ficar aceso de modo contínuo. Não há espera nem comando para apagar neste programa.
Agora substitua todo o conteúdo do mesmo sketch local pelo código abaixo e grave novamente.
const uint8_t pinoLed = LED_BUILTIN;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, OUTPUT);
}
void loop() {
digitalWrite(pinoLed, LOW);
}Após a inicialização, o LED L permanece continuamente apagado.
Resultado físico esperado, não uma mensagem no console.
Neste segundo teste, o LED L deve permanecer apagado depois da inicialização. Repetir digitalWrite(pinoLed, LOW) em cada passagem de loop() não cria um efeito visual novo: o nível baixo já continua valendo.
Do mesmo modo, repetir HIGH no sketch anterior não produz piscadas. Um nível comandado persiste até outra instrução o modificar.
Atenção
Ao pressionar RESET ou ao ligar a placa, os GPIOs passam primeiro por um período de alta impedância. Antes de setup() executar, o bootloader também pode causar atividade breve no LED integrado.
Portanto, digitalWrite(..., LOW) em setup() define o estado inicial do seu programa, mas não garante que o LED não tenha mostrado atividade durante a partida.
Complete as lacunas para configurar o LED integrado como saída e mantê-lo aceso. Diferencie a chamada que escolhe a direção elétrica da chamada que comanda o nível.
Preencha as duas lacunas do sketch.
const uint8_t pinoLed = LED_BUILTIN;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, );
}
void loop() {
digitalWrite(pinoLed, );
}Após gravar cada sketch, registre o que você observou no LED L. Se pressionou RESET, diferencie o comportamento contínuo depois de setup() de qualquer atividade breve vista antes disso.
Escreva pelo menos 40 caracteres (0/40).

Passo 3 de 7
delay(duração) pausa o fluxo principal por uma quantidade de milissegundos. Por exemplo, delay(300) representa 300 ms, ou 0,3 s.
Durante a espera, a próxima instrução ainda não é executada. Assim, se a última ordem foi digitalWrite(pinoLed, HIGH), o LED permanece aceso até um novo comando mudar a saída.

Quando a saída está em HIGH, o LED integrado fica aceso; quando está em LOW, fica apagado. A duração de cada trecho vem do delay seguinte.
Observe o ritmo: um acendimento curto seguido de um apagamento mais longo. A animação ilustra o padrão; confira os tempos pelo código e pela linha do tempo, não como uma medição precisa.
A sequência visual se repete a cada retorno ao início de loop.
Dica
delay é útil para estes exemplos sequenciais simples. Como a execução fica esperando, ele não é uma solução geral quando o programa precisa atender outras tarefas durante o intervalo; essa alternativa será estudada mais adiante.
Copie este sketch completo para a IDE Arduino. Ele usa o LED integrado, sem componentes externos.
const uint8_t pinoLed = LED_BUILTIN;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, OUTPUT);
}
void loop() {
digitalWrite(pinoLed, HIGH);
delay(300);
digitalWrite(pinoLed, LOW);
delay(700);
}LED integrado: aceso por aproximadamente 300 ms LED integrado: apagado por aproximadamente 700 ms Ciclo repetido a cada aproximadamente 1 s
Resultado esperado ao observar o LED L da placa; o sketch não imprime mensagens no Monitor Serial.
Rastreie um ciclo:
HIGH acende o LED.delay(300) mantém essa saída por 300 ms.LOW apaga o LED.delay(700) mantém essa saída por 700 ms.loop() recomeça e o LED recebe HIGH outra vez.O ciclo dura aproximadamente 1.000 ms, isto é, 1 s: 300 ms aceso + 700 ms apagado.
Exemplo
No início de cada nova volta de loop(), o comando HIGH vem logo após a espera de 700 ms. Por isso, não há uma pausa adicional planejada entre o fim do apagamento e o próximo acendimento.
Complete os intervalos para que o LED fique explicitamente aceso por 250 ms e, depois, apagado por 750 ms em cada ciclo.
const uint8_t pinoLed = LED_BUILTIN;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, OUTPUT);
}
void loop() {
digitalWrite(pinoLed, HIGH);
delay();
digitalWrite(pinoLed, LOW);
delay();
}Organize as quatro instruções para obter: LED aceso por 300 ms e apagado por 700 ms, repetidamente.
Qual afirmação descreve corretamente o sketch com 300 ms em HIGH e 700 ms em LOW?

Passo 4 de 7
Verifique a corrente e os limites do GPIO antes de conectar o LED externo.
Para o LED externo, usaremos uma saída ativa em nível alto: quando D7 recebe HIGH, ela fornece tensão ao circuito e o LED pode acender; com LOW, o LED apaga.
O caminho de corrente é único e em série:
D7 → resistor → ânodo do LED → cátodo do LED → GND
O resistor é obrigatório: ele limita a corrente que sai do GPIO e atravessa o LED. Nesta prática, o objetivo é uma corrente pequena, aproximadamente entre 2 e 5 mA.

Em HIGH, a corrente percorre D7, resistor, LED e GND. Em LOW, não há tensão suficiente para condução nessa ligação.
Atenção
Não conecte o LED diretamente entre D7 e GND. Também não aplique 12 V a D7 nem a qualquer GPIO do Uno R3: estes pinos trabalham com níveis compatíveis com a placa, não com tensões automotivas ou de fontes de 12 V.
Exemplo
Use os dados deste caso de referência para conferir a corrente antes da montagem:
Pela lei de Ohm aplicada ao resistor:
I = (5,0 V − 2,0 V) / 1,0 kΩ = 3,0 mA
Com a tolerância, o resistor pode variar de 950 Ω a 1050 Ω. Mantendo os demais valores do exemplo, a estimativa fica entre aproximadamente 2,86 mA e 3,16 mA. É uma corrente pequena e adequada como alvo para esta prática.
Dica
A queda direta não é igual para todos os LEDs e também varia com corrente, temperatura e componente. Portanto, o cálculo é uma estimativa baseada nos dados fornecidos; para outro LED, consulte seus dados e refaça a conferência.
Aqui, 1 kΩ é deliberadamente conservador: não é uma tentativa de obter o brilho máximo.
Além do resistor, confira os limites da saída e os limites compartilhados do microcontrolador. Como D7 está fornecendo corrente em HIGH, os limites de fornecimento são os diretamente relevantes nesta ligação.
Valores de referência para o Uno R3 com ATmega328P. Consulte a documentação da placa e do componente se mudar de modelo.
| Item | Valor de referência | Como interpretar |
|---|---|---|
| Corrente por GPIO | 20 mA | Condição especificada de operação; não é alvo de projeto. |
| Máximo absoluto por GPIO | 40 mA | Limite de dano; nunca usar como corrente contínua planejada. |
| Grupo de D7 fornecendo corrente | 150 mA | Soma das correntes do grupo que inclui D5 a D8. |
| Terminais VCC do chip | 200 mA | Limite total de corrente fornecida pelo microcontrolador. |
| Terminais GND do chip | 200 mA | Limite total de retorno pelo microcontrolador. |
Atenção
Não multiplique 20 mA pelo número de GPIOs para decidir uma corrente total. Correntes simultâneas dos pinos e o consumo do próprio microcontrolador entram nos limites agregados e de alimentação.
Nesta prática há somente um LED externo com cerca de 3 mA, mas esse raciocínio continua necessário em qualquer montagem.
Com os dados do exemplo, complete a corrente nominal estimada no resistor:
(5,0 V − 2,0 V) / 1,0 kΩ = ____
Preencha a lacuna com a corrente nominal estimada.
Qual justificativa aprova melhor o circuito de referência com D7, LED vermelho e resistor de 1 kΩ?

Passo 5 de 7
Monte o LED externo no pino digital 7 e faça uma inspeção factual do circuito antes de conectar a alimentação.
Monte somente com a placa desconectada: retire o cabo USB e qualquer outra alimentação antes de inserir, remover ou reposicionar fios. Use um Arduino Uno R3, protoboard, LED de baixa potência, resistor de 1 kΩ já conferido e jumpers.
A ligação desta prática é uma única série: D7 → resistor → ânodo do LED → cátodo → GND. O resistor pode ficar antes do LED, como no esquema, pois continua no mesmo caminho da corrente. Não conecte nada aos pinos digitais 0 e 1.

Siga o caminho elétrico, não apenas a posição física das peças na protoboard.
Atenção
Não ligue o LED diretamente entre D7 e GND: sem resistor, a corrente pode ultrapassar um valor seguro para o LED e para o GPIO. Também não aplique 12 V, VIN ou 5 V diretamente a D7.
Nesta prática, a alimentação virá apenas do USB compatível, depois da inspeção. Não use ao mesmo tempo uma fonte em VIN ou no pino de 5 V.
Na protoboard, furos de uma mesma trilha podem estar conectados internamente. Portanto, confira onde cada terminal realmente chega:
O ânodo e o cátodo devem ocupar trilhas diferentes; o LED não pode ter seus dois terminais na mesma trilha conectada.
Dica
A aparência ajuda, mas não prova a conexão. Confira o LED pela marca física: em modelos comuns, a perna mais longa é o ânodo e o lado achatado do encapsulamento indica o cátodo. Se os terminais já foram cortados ou dobrados, consulte a marcação do seu componente em vez de adivinhar.
Antes de energizar, acompanhe com o dedo — sem puxar os fios — o percurso D7, resistor, LED e GND. O resistor precisa estar em série: a corrente que sai de D7 deve necessariamente passar por ele antes de alcançar o LED.
Organize as ações abaixo para uma montagem segura.
Coloque na ordem correta.
Com a placa ainda desconectada, faça a conferência final:
Somente após essa inspeção, o próximo step orientará a conectar uma única USB compatível para gravar e observar a sequência.
Com a placa ainda desenergizada, registre a inspeção que você realizou na sua montagem. Informe: o pino de sinal usado; o valor e a posição do resistor; como confirmou ânodo e cátodo; para qual GND o cátodo retorna; como verificou que não há curto entre D7 e GND; e que D0 e D1 ficaram livres.
Se encontrou e corrigiu algum erro, descreva a correção feita antes de energizar.
Escreva pelo menos 80 caracteres (0/80).

Passo 6 de 7
Execute o sketch no LED externo ligado a D7, observe a sequência e confira o reinício após reset.
Com a placa ainda desconectada, confirme a montagem já inspecionada: D7 → resistor → ânodo do LED → cátodo → GND. Mantenha D0 e D1 livres.
O comportamento do exemplo anterior passa para o LED externo mudando somente a constante pinoLed para 7. A configuração como saída e os comandos HIGH, LOW e delay permanecem com a mesma função.
Depois dessa conferência, conecte somente o cabo USB compatível. Não conecte outra fonte a VIN nem ao pino de 5 V.

O caminho elétrico continua em série; a sequência de níveis de D7 determina os períodos visíveis de aceso e apagado.
Crie ou substitua o conteúdo de um sketch local por este código completo. Selecione Arduino Uno e a porta correta na IDE, compile e grave na placa.
const uint8_t pinoLed = 7;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, OUTPUT);
}
void loop() {
digitalWrite(pinoLed, HIGH);
delay(700);
digitalWrite(pinoLed, LOW);
delay(300);
}LED externo em D7 aceso por cerca de 0,7 s. LED externo em D7 apagado por cerca de 0,3 s. Sequência repetida em ciclos de aproximadamente 1 s.
A mensagem de gravação concluída confirma a transferência do firmware, mas não comprova que o circuito externo está correto. Confira o LED externo visualmente por pelo menos dois ciclos.
Dica
A cada ciclo, o LED externo deve ficar aceso por cerca de 0,7 s e apagado por cerca de 0,3 s. Observe pelo menos dois ciclos completos: o período aceso é visivelmente maior que o apagado.
Compare o circuito real com essa previsão. Se a IDE informar que a gravação terminou, mas o LED externo não seguir o padrão, ainda há algo a conferir no programa ou na montagem.
Complete os elementos que levam o padrão previsto ao LED externo: seleção de D7, modo da saída e tempos de aceso e apagado.
const uint8_t pinoLed = ;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, );
}
void loop() {
digitalWrite(pinoLed, HIGH);
delay();
digitalWrite(pinoLed, LOW);
delay();
}Após observar os ciclos, pressione o botão RESET da placa. Depois da inicialização, D7 recebe novamente o comando LOW; em seguida, loop() começa e inicia o período aceso de 700 ms.
O LED integrado da placa pode mostrar atividade breve durante a partida. Ele não é a referência deste teste: observe o LED externo conectado a D7.
Registre sua observação após gravar e depois de pressionar RESET. Informe: (1) se o LED externo repetiu aproximadamente 0,7 s aceso e 0,3 s apagado; (2) o que ocorreu após o reset; e (3) uma verificação que você faria se houvesse divergência.
Se precisar revisar polaridade, resistor ou fios, desconecte o USB antes de alterar a montagem.
Escreva pelo menos 80 caracteres (0/80).

Passo 7 de 7
Aplicação final para prever, executar e conferir duas piscadas curtas seguidas de uma pausa maior em um LED externo ligado ao D7.
Você vai comandar o LED externo ligado ao D7 com este padrão, repetido continuamente:
O resultado são duas piscadas curtas e uma pausa maior, com o LED apagado. Antes de gravar, acompanhe a transição entre ciclos: terminado o último delay(1000), loop() recomeça imediatamente e comanda HIGH para iniciar a primeira piscada seguinte.

Nível alto acende o LED; nível baixo o apaga. A pausa longa termina com o início imediato da primeira piscada do ciclo seguinte.
Complete o sketch para produzir duas piscadas curtas e uma pausa maior no LED externo em D7.
const uint8_t pinoLed = 7;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, );
}
void loop() {
digitalWrite(pinoLed, );
delay(200);
digitalWrite(pinoLed, );
delay(200);
digitalWrite(pinoLed, HIGH);
delay(200);
digitalWrite(pinoLed, LOW);
delay();
}Com a placa desconectada do USB, faça uma última conferência: D7 → resistor de 1 kΩ → ânodo do LED; cátodo → GND. O resistor precisa estar em série, e a corrente estimada para o caso de referência é próxima de 3 mA. Mantenha D0 e D1 livres.
Somente depois da inspeção, conecte uma única USB compatível. Copie o sketch abaixo para a IDE Arduino, selecione Arduino Uno e a porta correta, compile e grave. Observe ao menos dois ciclos completos. A confirmação de gravação não comprova, por si só, que o LED externo está seguindo o padrão.
Crie ou substitua o conteúdo de um sketch local por este código completo. Ele não requer bibliotecas adicionais.
const uint8_t pinoLed = 7;
void setup() {
digitalWrite(pinoLed, LOW);
pinMode(pinoLed, OUTPUT);
}
void loop() {
digitalWrite(pinoLed, HIGH);
delay(200);
digitalWrite(pinoLed, LOW);
delay(200);
digitalWrite(pinoLed, HIGH);
delay(200);
digitalWrite(pinoLed, LOW);
delay(1000);
}LED externo em D7: aceso por aproximadamente 200 ms apagado por aproximadamente 200 ms aceso por aproximadamente 200 ms apagado por aproximadamente 1.000 ms O ciclo recomeça com o LED acendendo novamente.
Resultado físico esperado no LED externo; os tempos são aproximados e devem ser observados visualmente, não como medição de precisão.
Dica
Depois de observar o padrão, pressione RESET. Após a inicialização, o programa comanda D7 em LOW e então inicia a primeira piscada. Use o LED externo como referência: o LED integrado da placa pode apresentar atividade breve durante a partida, mas isso não confirma o comportamento de D7.
Registre o que você realmente observou na prática. Inclua: o pino usado; o valor do resistor e a corrente estimada; sua previsão para o ciclo; o padrão visto em pelo menos dois ciclos; e o que ocorreu no LED externo após RESET.
Se a montagem não foi executada, informe isso claramente em vez de relatar uma observação como se ela tivesse ocorrido. Se houve divergência e você precisou rever fios, polaridade ou resistor, diga se desconectou o USB antes da alteração.
Escreva pelo menos 120 caracteres (0/120).
Resumo
pinMode(..., OUTPUT) configura a saída; digitalWrite(..., HIGH/LOW) comanda seu nível.delay mantém o último nível e bloqueia temporariamente a sequência.Parabéns! Você concluiu: Controle de LEDs com saídas digitais
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks