Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
As portas OR são muito úteis, mas têm um recurso estranho que pode funcionar bem, mas em certas aplicações pode causar problemas. Esse é o fato de que, se ambas as entradas são uma, a saída também é uma. Se tivéssemos um aplicativo em que não queríamos isso, talvez estivéssemos construindo um somador, usaríamos algo chamado Exclusive Or Gate, que é abreviado como XOR ou EOR.
Etapa 1: Design
Uma maneira de obter o comportamento XOR é usar uma porta OR regular e, em seguida, lidar com o caso em que ambas as entradas são positivas. Se amarrarmos uma porta AND às entradas, podemos obter um sinal quando esse caso aparecer. Podemos então pegar esse sinal, invertê-lo e ligá-lo e a saída da porta OR a outra porta AND. Isso fará com que, sempre que não for o caso de ambas as entradas estarem ativadas, a porta OR simplesmente passará pela segunda porta AND, mas quando ambas as entradas forem altas, a primeira porta AND desligará a segunda porta AND e manterá a saída desligada independentemente do estado da porta OR.
Um ajuste que acabei fazendo no circuito final foi trocar a combinação AND / NOT por uma porta NAND, que é apenas uma porta AND invertida. A maneira como isso funciona ficará evidente mais tarde.
Agora vamos escrever o mesmo esquema, mas com transistores e resistores. O tipo de transistor que usei é o 2N2222 BJT, que é bastante comum (o 2N4401 e o 2N3904 também funcionam). Eu usei 6 transistores, 3 resistores de 20k ohm, 3 resistores de 47k ohm, 1 510 ohm resistor, dois botões e um LED. Escolhi esses valores de resistor com base na minha fonte de alimentação de 5 V e na corrente mínima de 0,1 mA ou 0,0001 A para o 2N2222. se você usar a lei de Ohm para calcular a resistência correta ao aterramento para esses valores, obterá 50.000 ohms. 47k ohms é próximo o suficiente para a porta NAND inferior, mas por que o valor mais baixo para a porta OR e a primeira entrada da segunda porta AND? A razão é porque os emissores dos transistores que compõem a porta OR são conectados através da base de outro transistor, portanto, passando por um segundo resistor, não diretamente para o aterramento. (O resistor limitador de corrente do LED é um valor baixo o suficiente para ser insignificante neste cálculo).
Etapa 2: adicionar transistores, botões e o LED
Etapa 3: Adicionar resistores
Etapa 4: adicionar fios
A maneira como estou alimentando minha placa é conectando os barramentos de alimentação a uma fonte de alimentação de bancada de laboratório configurada para corrente máxima de 5 V e 500 mA. O mesmo tipo de entrada pode ser obtido conectando-se energia aos pinos 5V e GND de um Arduino, mas na verdade uma fonte de alimentação de 5V funciona (embora uma fonte limitada de corrente seja recomendada para reduzir o risco de explodir componentes).
Etapa 5: Teste e solução de problemas
Agora que ele está conectado, vou deixar você testar o seu. Se um ou outro dos botões for pressionado, o LED deve acender. Se ambos forem pressionados, no entanto, o LED se apagará.
Problemas comuns
- Se uma entrada parece não funcionar como deveria, e o caso em que ambas as entradas ainda estão ativadas fornece um zero, verifique a tensão na entrada da porta AND que vem da porta OR quando esse botão é pressionado. Se estiver baixo (<2V), reduza a resistência do resistor indo da porta OR para a porta AND.
- Se a porta ainda atua como apenas uma porta OU, o que significa que quando ambas as entradas estão ativadas, a saída está ligada, verifique a tensão que entra na entrada da porta E que vem da porta NAND. Se for alto quando os dois botões forem pressionados, certifique-se de que seus transistores na porta AND estejam funcionando e verifique a resistência de lá até o aterramento quando os dois botões forem pressionados. Se a resistência for alta e / ou a tensão for baixa, substitua esses dois transistores ou reduza a resistência das entradas para as portas NAND.
Etapa 6: Quer mais?
Se você gostou deste Instructable vá em frente e confira meu livro na Amazon chamado "The Beginners Guide to Arduino." Ele aborda os princípios básicos do circuito e também o código C ++ usado para programar um Arduino.