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.
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.
1.3 Não escopo
- Movimentação física dos lotes, motores ou atuadores de potência.
- Contagem acumulada de itens, armazenamento da leitura ou retenção da confirmação.
- Cálculo de comparação, soma ou alarme pelo Arduino.
1.4 Objetivos
- Capítulo 1: adquirir sinais analógicos e observar sua quantização e representação digital.
- Capítulos 2 e 3: projetar validação, habilitação e alarmes por tabelas verdade, álgebra booleana e mapas K.
- Capítulo 4: utilizar somador de 4 bits, operandos de 2 bits e propagação de carry.
- Capítulo 5: comparar a quantidade lida com um código definido por push-buttons.
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.
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 |
|---|---|---|
| Solto | Solto | 0 |
| Solto | Pressionado | 1 |
| Pressionado | Solto | 2 |
| Pressionado | Pressionado | 3 |
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.
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.
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ção | CONFERIR — amarelo | ALARME — vermelho | LIBERADO — verde | Soma S |
|---|---|---|---|---|
| X inválido | Apagado | Aceso | Apagado | 0, bloqueada |
| X válido e A ≠ R | Aceso | Apagado | Apagado | 0, bloqueada |
| X válido, A = R e total de 0 a 3 | Apagado | Apagado | Aceso | A + B |
| X válido, A = R e total de 4 a 6 | Apagado | Aceso | Apagado | A + 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
- Selecionar no primeiro potenciômetro X = 2, correspondente a A = 10.
- Manter P₁ pressionado e P₀ solto: R = 10. A conferência habilita a soma.
- 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.
- 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.
- Soltar P₁: R = 0, a conferência falha, a soma fica em 0 e CONFERIR acende.
- 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
| Elemento | Ligação / requisito |
|---|---|
| Arduino Mega 2560 | 5 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 B | D32 = 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 comparador | Portas lógicas externas; não usar CI comparador pronto para substituir a modelagem. |
| Habilitação | Quatro portas AND, uma por bit útil dos operandos A e B. |
| Somador | CI de 4 bits, com pinagem conforme o datasheet do componente escolhido. |
| Indicadores | Dez 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
- Preferir CIs 74HC em 5 V e conferir compatibilidade de níveis se utilizar outra família.
- Dimensionar os resistores dos LEDs para respeitar a corrente de cada saída; 2,2 kΩ é um ponto de partida. Usar buffer se necessário.
- Adicionar desacoplamento de 100 nF junto à alimentação de cada CI.
- Fixar entradas não utilizadas em nível definido; não unir saídas.
- Identificar pontos de teste X, A, B, R, FALHA, IGUAL, DIFERENTE, H, S e carry final.
- Documentar no EasyEDA códigos dos componentes, números dos pinos, alimentação, resistores, LEDs e barramentos.
3.3 Modelagem lógica
- Tabela de 16 linhas de X para FALHA, expressão canônica, mapa K e simplificação.
- Tabela de 16 pares A/R para IGUAL e DIFERENTE, expressão e simplificação de IGUAL. Indicar DIFERENTE como complemento de IGUAL.
- Equações de H e das quatro portas de habilitação dos operandos.
- Tabela das 16 somas de A e B e explicação da propagação de carry no CI.
- Tabelas e equações dos três LEDs de status. Para detectar excesso, considerar uma palavra S de 4 bits: valores maiores que 3 excedem as três posições de fixação.
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
- Conferir alimentação, GND e orientação dos CIs. Identificar os barramentos e pontos de teste.
- Demonstrar leitura real dos dois potenciômetros, incluindo extremos e posição intermediária; comparar LEDs e monitor serial.
- Testar os 16 códigos X para a validação.
- 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.
- Com X válido e R = A, testar as 16 combinações A/B no somador.
- 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₁ | X | A | B | R | H | S | CON | AL | LIB |
|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 00 | 1 | 0 | 0 | 0 | 1 |
| 1 | 1 | 1 | 1 | 1 | 00 | 0 | 0 | 1 | 0 | 0 |
| 2 | 1 | 2 | 2 | 1 | 10 | 1 | 3 | 0 | 0 | 1 |
| 2 | 2 | 2 | 2 | 2 | 10 | 1 | 4 | 0 | 1 | 0 |
| 2 | 3 | 2 | 2 | 3 | 10 | 1 | 5 | 0 | 1 | 0 |
| 3 | 3 | 3 | 3 | 3 | 11 | 1 | 6 | 0 | 1 | 0 |
| 2 | 1 | 2 | 2 | 1 | 00 | 0 | 0 | 1 | 0 | 0 |
| 6 | 1 | 6 | 2 | 1 | 10 | 0 | 0 | 0 | 1 | 0 |
| 15 | 3 | 15 | 3 | 3 | 11 | 0 | 0 | 0 | 1 | 0 |
| 16 | 1 | 0 | 0 | 1 | 00 | 1 | 1 | 0 | 0 | 1 |
| 18 | 5 | 2 | 2 | 1 | 10 | 1 | 3 | 0 | 0 | 1 |
| 2 | 6 | 2 | 2 | 2 | 10 | 1 | 4 | 0 | 1 | 0 |
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ério | Pontos |
|---|---|
| Aquisição dos dois canais e explicação da representação digital | 1,5 |
| Validação de X e modelagem booleana | 1,5 |
| Comparador, botões e habilitação dos operandos | 2,0 |
| Somador de 4 bits e liberação da carga | 2,0 |
| Esquema completo no EasyEDA | 1,5 |
| Integração, testes e explicação do protótipo | 1,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
| Turma | Data |
|---|---|
| Sexta-feira — turma6a | 2 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
- 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.
- 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.
- 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.