Anexando um LED ao pino Rx do PIC

13

Eu preciso de alguma maneira de saber se o microcontroller( PIC) está recebendo (ou transmitindo) dados. Então, pensei em manter um separado LEDpara que ele pisque quando ocorrer qualquer transferência de dados.

Mas preciso saber como anexar isso LED. É correto conectar diretamente um LEDaos pinos PICs Tx(e Rx)? Quero dizer, isso afetará os dados transferidos de alguma forma (como a queda da tensão etc ...).

Anubis
fonte

Respostas:

14

(Pelo menos alguns) PICs não podem acionar muita corrente (*), mas também para o pino RxD é melhor usar um transistor para acionar o LED, pois você evitará carregar o transmissor na outra extremidade (provavelmente um MAX3232 ou similar ?).

insira a descrição da imagem aqui

Conecte a entrada "Q" à linha TxD / RxD. Um transistor de uso geral típico terá um ganho de cerca de 100, então 1 mA de corrente base é suficiente para obter 20 mA de corrente de coletor.


RBR

Para um barramento de 3,3 V e fonte de alimentação, use as mesmas equações, substituindo 5 V por 3,3 V, então os valores do seu resistor serão 2,2 kΩ e 47 Ω resp.



Um MOSFET como o AndrejaKo sugere é uma boa alternativa, mas verifique se você tem um tipo de porta de nível lógico , com uma tensão limite de porta máxima um pouco abaixo da tensão do barramento. (Não são lógicas FET portão nível em que podem ser tão alto quanto 4 V e então você não terá corrente de dreno suficiente com uma tensão de barramento 3.3 V). A vantagem real do FET é que ele requer pouca unidade atual, mas como precisamos apenas de um mA para o BJT, também não teremos problemas com isso.


(*) Este controlador PIC aleatório especifica uma queda de 700 mV com corrente de saída de apenas 3 mA, que é uma resistência de saída de 230 Ω. Um LED de 2 V acionado diretamente a partir de uma saída de 3,3 V reduz a saída em 1 V a apenas 4 mA. A maioria dos LEDs indicadores são especificados para 20 mA.

stevenvh
fonte
Boa resposta stevenvh, +1 para adicionar sugestões de tamanho de resistência, muitos outros apenas se refere a lei de Ohm
chwi
1
Mesmo que essa seja a maneira "correta" de fazê-lo ... se você não puder conduzir menos de 5mA a partir do pino do MCU, eu questionaria o valor desse MCU em aplicativos do mundo real. Os tranceivers RS232 também são muito resistentes. Tenho vários projetos em que o resistor em série e o LED ficam diretamente nas linhas rx / tx. Funciona bem mesmo que você não use o MAX, mas tranceivers baratos de segunda fonte. Contanto que você não tente dirigir 20mA ou algo do tipo, não haverá problemas. E se você escolher um LED moderno e brilhante, poderá usar facilmente um resistor de 10k.
Lundin
Ω
@stevenvh Talvez eu seja mimado com a Freescale, onde você pode conduzir alguns + -20mA através de um único pino (em Vdd = 3V) sem sair da especificação. Embora, é claro, é preciso projetar com margens. Quanto ao tranceiver MAX, os padrões têm uma especificação de volatilidade de limite de alta> 2.0V, baixa <0.8V, de modo que nunca deve ser um problema.
Lundin
Entre as especificações de LED de 20mA é para o brilho ideal. Se você colocar uma moderna super brilhante com cerca de> 300mcd, poderá reduzir a corrente para menos de um décimo do que usaria com os LEDs clássicos. Estamos falando de uA em vez de correntes mA.
Lundin
10

Não, você não deseja conectar o LED através de um transistor de chave lateral baixa, como outros demonstraram. No caso normal, o nível de inatividade de ambas as linhas é alto, o que resultaria no LED aceso na maioria das vezes. Será muito difícil notar que, ocasionalmente, fica um pouco mais escuro. O que você deseja é que o LED acenda apenas quando a linha estiver no estado ativo, o que é baixo. Aqui está um circuito simples:

O transistor é usado na configuração do seguidor de emissor, o que elimina a necessidade de um resistor de base e também usa a corrente base mínima possível para a corrente de LED resultante. Quando a linha digital ficar baixa, o emissor estará em cerca de 700 mV. Considerando um LED verde normal que cai cerca de 2,1 V, deixa 2,2 V em R1. 2.2V / 120Ω = 18 mA, que é um pouco abaixo do máximo de 20 mA, para o típico T1-3 / 4 e muitos outros LEDs comuns.

Este é um caso em que você deseja maximizar a saída de luz do LED, ou seja, executá-la na sua corrente máxima. A linha ficará baixa por períodos curtos, portanto, você deseja tornar esse período o mais visível possível. Se isso não funcionar, você precisará de algum tipo de alongamento de pulso, mas tente primeiro.

Se você estiver usando uma fonte de 3,3 V, ajuste R1 de acordo. 3.3V - 2.1V - 700mV = 500mV em R1. 500mV / 20mA = 25Ω. Você deseja deixar alguma margem, para que o valor padrão de 27 Ω funcione bem. A alimentação de 3,3 V é aproximadamente o mínimo em que você deseja usar a configuração do seguidor de emissor.

Olin Lathrop
fonte
5

Você não deve tentar conectar o diodo diretamente ao pino, pois isso afetará definitivamente a operação do pino. Em vez disso, tente usar um mosfet de nível lógico para acionar o LED. Conecte o pino de porta do MOSFET ao pino Rx e o dreno ao LED e a um resistor.

insira a descrição da imagem aqui

Ignore o número da peça mostrado no esquema. O BS170 seria muito mais barato e funcionaria bem para esse fim.

AndrejaKo
fonte