Sistemas Digitais · Documento de Requisitos Técnicos

Conferência de carga
para inspeção

Trabalho AP1 · 2026.2 · Arduino Mega 2560
Prof. Clayton J A Silva · Entrega: 02/10/2026

Dois sensores analógicosConferência por botõesSoma autorizadaAlarme de excesso de peças

Sumário

01 / Descrição geral do projeto

1.1 Escopo

Desenvolver uma estação didática de conferência de carga para uma bancada de inspeção. Uma bancada de inspeção possui três posições de fixação, cada uma destinada a uma peça. Dois alimentadores, A e B, preparam peças do mesmo tipo para o próximo ciclo. Os potenciômetros simulam os códigos informados pelos sensores de quantidade desses alimentadores. Cada valor numérico representa uma quantidade de peças: A = 2 significa duas peças preparadas pelo alimentador A. Antes de reunir as peças, o operador informa, por dois push-buttons, a quantidade esperada de A, conforme a ordem de produção. O comparador verifica essa conferência.

Quando a leitura é válida e a conferência coincide, o circuito libera as duas quantidades para um somador físico de 4 bits. O total informa quantas posições de fixação serão necessárias. Até três peças podem ser acomodadas; quatro ou mais exigem dividir a carga em outro ciclo. LEDs indicam conferência pendente, excesso de peças ou entrada inválida, e carga liberada. Não é necessário construir a bancada mecânica: o protótipo representa seu painel de conferência.

Dois sensores analógicosValidação + conferênciaSoma autorizadaCarga da bancada e alarme

Todos os blocos participam de uma única decisão: sem conferência aprovada não há totalização válida; após a soma, o número de posições disponíveis determina a liberação da carga. O Arduino adquire e disponibiliza os bits. As decisões e a soma são realizadas no circuito externo.

1.2 Modelo didático dos sensores dos alimentadores

O potenciômetro em A0 produz o código de 10 bits N₀. Seus quatro bits menos significativos formam X, de 0 a 15. Somente X de 0 a 3 representa uma quantidade válida de A; X de 4 a 15 representa código inválido do primeiro sensor. A quantidade A utiliza os dois bits menos significativos de X.

O potenciômetro em A1 produz N₁. Seus dois bits menos significativos representam B, de 0 a 3. Todos os quatro códigos de B são válidos.

Interpretação dos potenciômetros: eles selecionam códigos de sensores simulados. X = N₀ módulo 16 e B = N₁ módulo 4; os valores se repetem ao girar o potenciômetro. Não há conversão proporcional de ângulo em quantidade. A extração dos bits é uma convenção didática; um sensor industrial precisaria de uma codificação e uma interface próprias. Os bits não podem ser substituídos por reescalonamento ou pelos bits mais significativos.

1.3 Não escopo

1.4 Objetivos

02 / Funcionalidades do produto

2.1 Aquisição e representação digital — F01

Ler A0 e A1 aproximadamente a cada 100 ms, formando um par de amostras N₀ e N₁. Apresentar ambas no monitor serial, em decimal e em binário de dez dígitos, com zeros à esquerda. Disponibilizar os dez bits de N₀ em dez pinos e LEDs. Disponibilizar também os dois bits inferiores de N₁ em dois pinos e LEDs.

As leituras são realizadas em sequência. Manter o par disponível até a próxima atualização; a mensagem serial deve corresponder ao mesmo par enviado aos pinos.

Conversão de 10 bits: no Mega 2560, analogRead retorna um inteiro de 0 a 1023. O sketch extrai os bits e os escreve em pinos digitais; o barramento não aparece automaticamente. Com referência nominal de 5 V, o passo ideal é 5/1024 V, aproximadamente 4,88 mV.

2.2 Validação dos quatro bits do primeiro sensor — F02

O circuito externo recebe X = x₃ x₂ x₁ x₀. Produzir FALHA = 0 para X entre 0 e 3 e FALHA = 1 para X entre 4 e 15. Uma entrada inválida deve impedir a soma e acender o LED vermelho ALARME, mesmo que os dois bits inferiores coincidam com os botões.

Os bits x₁ e x₀ formam A = A₁ A₀. Portanto, todos os quatro bits participam do sistema: dois informam a quantidade e os outros dois permitem identificar códigos fora da faixa aceita.

2.3 Conferência com dois push-buttons — F03

Dois push-buttons normalmente abertos, P₁ e P₀, formam a quantidade esperada R = P₁ P₀. Um botão pressionado representa 1 e um botão solto representa 0.

P₁P₀Quantidade esperada R
SoltoSolto0
SoltoPressionado1
PressionadoSolto2
PressionadoPressionado3

Construir com portas lógicas um comparador de 2 bits entre A e R. Disponibilizar somente IGUAL (A = R) e DIFERENTE (A ≠ R) em pontos de teste. DIFERENTE deve ser obtido pela inversão de IGUAL; basta construir uma função de igualdade e seu complemento. A soma só poderá ser habilitada quando FALHA = 0 e A = R. A saída de habilitação será chamada H.

O LED amarelo CONFERIR deverá acender quando a entrada for válida, mas A e R forem diferentes. Se a entrada for inválida, prevalece o alarme vermelho e CONFERIR fica apagado.

Os botões codificam um número; não armazenam uma confirmação. Para R = 2, manter apenas P₁ pressionado. Ao soltar ou pressionar qualquer botão, a conferência é refeita. R = 0 é uma seleção válida com ambos soltos; quantidades iguais a zero são permitidas.

2.4 Liberação dos operandos e soma — F04

Usar H para habilitar, por portas AND, os dois bits de A e os dois bits de B antes de entrarem no somador. Se H = 1, o somador recebe A e B. Se H = 0, recebe 0 e 0.

Empregar obrigatoriamente um CI somador de 4 bits da família 74HC283 ou equivalente compatível. Os dois bits superiores de cada operando e o carry de entrada deverão ser fixados em 0. Exibir S₃ S₂ S₁ S₀ em quatro LEDs e deixar o carry final acessível em ponto de teste.

Com H = 1, S = A + B varia de 0 a 6. Com H = 0, S = 0 significa soma bloqueada. Não confundir esse estado com uma soma válida de 0 + 0: as indicações de status distinguem os casos.

Dois bits por operando, três bits úteis no resultado. A soma 3 + 3 gera 0110. S₂ deve ser preservado. S₃ e o carry final permanecem em 0 para as entradas previstas.

2.5 Liberação da carga para inspeção — F05

A bancada possui três posições de fixação, com uma peça por posição. S indica o total de peças oferecidas pelos dois alimentadores. Se S for 4, 5 ou 6, a carga precisa ser reduzida ou dividida entre ciclos. O circuito deve avaliar S e gerar as indicações:

SituaçãoCONFERIR — amareloALARME — vermelhoLIBERADO — verdeSoma S
X inválidoApagadoAcesoApagado0, bloqueada
X válido e A ≠ RAcesoApagadoApagado0, bloqueada
X válido, A = R e total de 0 a 3ApagadoApagadoAcesoA + B
X válido, A = R e total de 4 a 6ApagadoAcesoApagadoA + B

O excesso de peças para as três posições acende ALARME e impede LIBERADO, mas não deve zerar a soma: o valor excedente deve continuar visível. Não realimentar ALARME na habilitação do somador. H depende somente da validação e da conferência.

Total zero: com a conferência válida e A = B = 0, LIBERADO indica ausência de impedimento de carga; não significa iniciar uma inspeção sem peças. O projeto não inclui comando de partida da máquina.

2.6 Exemplo de operação completa

  1. Selecionar no primeiro potenciômetro X = 2, correspondente a A = 10.
  2. Manter P₁ pressionado e P₀ solto: R = 10. A conferência habilita a soma.
  3. Selecionar B = 1 no segundo potenciômetro: as duas peças de A e a peça de B ocupam as três posições; S = 3 e LIBERADO acende.
  4. Alterar B para 2: agora são quatro peças para três posições; S = 4, LIBERADO apaga e ALARME acende. Uma peça deverá ficar para outro ciclo.
  5. Soltar P₁: R = 0, a conferência falha, a soma fica em 0 e CONFERIR acende.
  6. Selecionar X = 6: apesar de seus bits inferiores ainda representarem A = 2, o código é inválido; ALARME acende e a soma permanece bloqueada.

03 / Descrição detalhada do esquema elétrico

3.1 Pinagem e componentes

ElementoLigação / requisito
Arduino Mega 25605 V e GND comum aos circuitos externos.
Dois potenciômetros lineares de 10 kΩExtremos em 5 V e GND; cursores em A0 e A1, respectivamente.
Código N₀D22 = bit 0, …, D31 = bit 9. D22–D25 alimentam X₀–X₃.
Quantidade BD32 = bit 0 de N₁; D33 = bit 1 de N₁.
Push-buttons P₁ e P₀Cada botão entre 5 V e seu sinal; resistor de pull-down de 10 kΩ entre sinal e GND. Os sinais alimentam diretamente o comparador.
Validação e comparadorPortas lógicas externas; não usar CI comparador pronto para substituir a modelagem.
HabilitaçãoQuatro portas AND, uma por bit útil dos operandos A e B.
SomadorCI de 4 bits, com pinagem conforme o datasheet do componente escolhido.
IndicadoresDez LEDs para N₀, dois para B, quatro para S e três de status. Cada LED com resistor próprio.

3.2 Requisitos elétricos

3.3 Modelagem lógica

Incluir a modelagem nas folhas ou notas do projeto EasyEDA. Todos os 16 códigos X devem ter comportamento definido. Para o comparador, modelar apenas a função IGUAL de A₁, A₀, P₁ e P₀; DIFERENTE utiliza sua inversão.

3.4 Transições

A avaliação considera as saídas estabilizadas. Explicar pequenas oscilações dos bits inferiores do ADC e transições breves causadas pela atualização dos pinos ou pelo contato dos botões. Não se exige memória, debounce com retenção ou amostragem simultânea dos dois canais.

04 / Setup de testes

4.1 Preparação e testes dos blocos

  1. Conferir alimentação, GND e orientação dos CIs. Identificar os barramentos e pontos de teste.
  2. Demonstrar leitura real dos dois potenciômetros, incluindo extremos e posição intermediária; comparar LEDs e monitor serial.
  3. Testar os 16 códigos X para a validação.
  4. Testar os 16 pares A/R no comparador e verificar que IGUAL e DIFERENTE são complementares: exatamente uma dessas saídas deve estar ativa.
  5. Com X válido e R = A, testar as 16 combinações A/B no somador.
  6. Com H = 0, variar os dois sensores e verificar que os operandos efetivos e S permanecem zerados enquanto H continuar em 0.

4.2 Casos de integração — teste do circuito completo

Um caso de integração é um teste que verifica vários blocos conectados, desde as entradas até os LEDs finais. Nos testes anteriores, cada bloco é verificado separadamente. Aqui, deve-se confirmar que a leitura chega à validação, que o comparador habilita os operandos, que o somador calcula o total e que os LEDs apresentam a decisão correta.

Por exemplo: N₀ = 2, N₁ = 1 e botões R = 10 devem produzir A = 2, B = 1, IGUAL = 1, H = 1, S = 3 e LIBERADO aceso. Esse resultado verifica o caminho inteiro. Ao soltar P₁, R passa a 00: DIFERENTE deve ativar, H deve cair para 0, S deve zerar e CONFERIR deve acender.

Como executar cada linha da tabela: fornecer N₀ e N₁ pelo modo de teste, ajustar fisicamente os botões para R, aguardar a estabilização e comparar H, S e os três LEDs com os resultados esperados. Registrar o resultado observado e se o caso passou. Demonstrar também a sequência com os potenciômetros no modo analógico, usando os códigos efetivamente observados.

CON = CONFERIR, AL = ALARME e LIB = LIBERADO. Nas saídas, 1 significa ativo. N₀ e N₁ são os códigos completos; os demais valores numéricos estão em decimal, exceto R, mostrado em binário.

N₀N₁XABRHSCONALLIB
000000010001
111110000100
212211013001
222221014010
232231015010
333331116010
212210000100
616211000010
15315331100010
1610010011001
1852211013001
262221014010

Os casos com N₀ = 16 e 18 e N₁ = 5 e 6 verificam a extração dos bits inferiores. Uma leitura completa alta não implica quantidade alta neste modelo de códigos cíclicos.

4.3 Modo de teste e evidências

O sketch deverá aceitar TESTE N0 N1, com dois inteiros entre 0 e 1023, para colocar um par conhecido nos mesmos pinos usados no modo analógico. O comando ANALOGICO retoma a leitura dos potenciômetros. Valores ou comandos inválidos devem ser rejeitados sem alterar o par vigente.

O modo de teste deve ser visível no monitor serial. Ele não pode simular os botões, calcular H ou substituir a soma e os alarmes. A demonstração inclui obrigatoriamente os dois potenciômetros e os push-buttons reais.

Registrar entradas, resultados esperados e obtidos nas notas do projeto EasyEDA. A simulação pode apoiar a conferência exaustiva; os casos de integração selecionados pelo professor serão demonstrados no protótipo.

05 / Regras de elaboração do sketch

5.1 Responsabilidades

Organizar funções para aquisição dos dois canais, publicação dos bits, impressão das leituras e tratamento dos comandos de teste. Ao iniciar, configurar D22–D33 como saídas e selecionar o modo ANALOGICO.

O Arduino não deve receber os botões nem determinar comparações, habilitação, soma ou status. Seu papel termina no fornecimento dos códigos digitalizados. Os LEDs CONFERIR, ALARME e LIBERADO devem ser acionados pela lógica externa.

5.2 Extração dos bits

Trecho de referência, considerando N0 e N1 já adquiridos e os pinos configurados. Não constitui o sketch completo.

for (byte i = 0; i < 10; i++) {
  digitalWrite(22 + i, (N0 >> i) & 1);
}
for (byte i = 0; i < 2; i++) {
  digitalWrite(32 + i, (N1 >> i) & 1);
}

Imprimir separadamente N0 e N1 com dez dígitos binários; a impressão binária padrão sem preenchimento não assegura os zeros à esquerda.

5.3 Identificação

Incluir no início do sketch os nomes e matrículas de todos os integrantes e identificar o representante. O arquivo utilizado no protótipo deverá acompanhar a entrega.

06 / Regras de avaliação

6.1 Organização

Trabalho em grupo, com representante responsável pela pasta no repositório. Todos deverão participar da apresentação e explicar as decisões do projeto. O peso do trabalho na AP1 será informado pelo professor.

6.2 Demonstração

Apresentar a sequência completa: leitura dos sensores, validação do código, conferência por botões, liberação dos operandos, soma e verificação do número de peças para inspeção. Demonstrar tanto uma operação liberada quanto divergência de conferência, código inválido e excesso de peças para as posições disponíveis.

6.3 Critérios

CritérioPontos
Aquisição dos dois canais e explicação da representação digital1,5
Validação de X e modelagem booleana1,5
Comparador, botões e habilitação dos operandos2,0
Somador de 4 bits e liberação da carga2,0
Esquema completo no EasyEDA1,5
Integração, testes e explicação do protótipo1,5

A pontuação depende do atendimento demonstrado. Blocos isolados, sem conexão funcional, não atendem ao requisito de integração. Cálculos no Arduino não substituem os circuitos externos.

6.4 Data de entrega e apresentação

TurmaData
Sexta-feira — turma6a2 de outubro de 2026

Entregar os arquivos na pasta do grupo e apresentar o protótipo em aula nessa data.

07 / Repositório

Repositório: github.com/claytonjasilva/trabalhoAP1-2026.2.

Cada representante deverá criar a pasta turma6a-<matricula>, substituindo o campo pela própria matrícula e removendo os sinais de menor e maior. Exemplo: turma6a-123456.

Publicar obrigatoriamente na pasta do grupo o projeto editável do EasyEDA, sua exportação em PDF e o sketch completo (.ino) efetivamente utilizado no protótipo. O sketch é um entregável obrigatório, não apenas um arquivo para consulta durante a apresentação. Se necessário, o representante deverá solicitar acesso de escrita ao professor.

turma6a-123456/
  esquema/      # Projeto editável EasyEDA e exportação em PDF
  sketch/       # Arquivo .ino utilizado no protótipo

08 / Entregáveis

  1. Esquema geral no EasyEDA: projeto editável e exportação em PDF, com os dois potenciômetros, Arduino, barramentos, botões, comparador, habilitação, somador e lógica dos LEDs, além de alimentação, componentes, identificação do grupo e notas de modelagem e testes. Deve representar o protótipo efetivamente montado.
  2. Sketch do Arduino: arquivo .ino completo, identificado com integrantes e matrículas, publicado na subpasta sketch/ do grupo. Entregar a versão utilizada na demonstração, incluindo aquisição, saída dos bits e modo de teste.
  3. Protótipo funcional: circuito em protoboard, apresentado em aula, demonstrando a sequência completa.

Não é exigido relatório separado; usar as folhas ou notas do próprio projeto para a documentação.

Referências técnicas