Archive For The “Dicas e Hacks” Category

Conectando 6 LEDs com Apenas 3 Pinos do Microcontrolador

Algumas vezes você precisa de mais do que o que tem. Eeu estou falando sobre os pinos do microcontrolador.

Veja bem: você tem que conectar 6 LEDs mas possui apenas três pinos do microcontrolador disponíveis. Utilizar outro microcontrolador não é sempre uma opção e outros circuitos decodificadores também não.

Esta é uma dica simples de como fazer isso. Conecte os diodos LED ao microcontrolador dessa forma:

 

Agora veja: se você setar o pino um para “1” e o segundo para “0” (deixando o pino 3 no estado de alta impedância, como entrada) então você somente vai acender um LED. Você pode ligar dois leds ao mesmo tempo setando o terceiro pino para o estado “1” ou “0”, dependendo de qual LED adicional você pretende acender.
Se você precisar ligar todos os LEDs ao mesmo tempo, precisará mudar o estado dos pinos em uma freqüência mais alta para evitar a sensação dos LEDs piscando.

Com esse método você pode ligar até doze LEDs com apenas 4 pinos. Este é um método conveniente para ser utilizado com LEDs bicolores, quando dois LEDs são colocados no mesmo encapsulamento, mas em diferentes direções.

Este é um exemplo de código em C para o ARV-GCC de como controlar os LEDs. No exemplo, os LEDs estão conectados na porta B, entre os pinos 0 e 2.

Fragmento da função de controle:


unsigned char leds;           // Os bits são os estados dos leds
void LEDs_refresh(void)
{
static unsigned char state;   // Taxa de atualização atual
OFF();                      // Coloca todos os pinos em alta impedância (entrada)
switch (state)
{
   default:
      CLR_0();                  // Coloca o pino 0 baixo
        if (leds &  1) {SET_1();} // Coloca o pino 1 alto para o led 1
        if (leds &  2) {SET_2();} // Coloca o pino 2 alto para o led 2
        state=1;                  // próximo estado
       break;
  case 1:
       CLR_1();                  // Coloca o pino 0 baixo
        if (leds &  4) {SET_0();} // Coloca o pino 0 alto para o led 3
        if (leds &  8 ) {SET_2();} // Coloca o pino 2 alto para o led 4
       state=2;                  //próximo estado
       break;
    case 2:
       CLR_2();                  // Coloca o pino 2 em nível baixo
       if (leds & 16) {SET_0();} // Coloca o pino 0 alto para o LED 5
       if (leds & 32) {SET_1();} // Coloca o pino 1 alto para o LED 6
       state=0;                 // Próximo estado
       break;
}//end switch
}
Esta função deve ser chamada com freqüência para evitar deixar visível a piscada dos LEDs. O melhor é utilizar a interrupção do timer.

O código completo do projeto está na caixa abaixo para download.

Anexos

Read more »

Alternativas de Baixo Custo ao MAX232

Algumas vezes os projetos eletrônicos possuem orçamento apertado e você não pode gastar com um conversor MAX 232. Aqui estão algumas alternativas.

Normalmente nós usamos um circuito com MAX 232 como esse:

RS232_adapter.PNG
O MAX 232 é um circuito integrado conversor de nível, que converte sinais TTL em RS232 e virse-versa. Ele fornece uma ótima rejeição de ruído e é mais robusto à descargas e curtos. Se o seu projeto for mais avançado, você deve utilizar um CI especializado para esta tarefa. No entanto, soluções especializadas são mais caras que as outras.
Este é um exemplo de circuito com transistor para executar a tarefa de conversão:

interface_schematic.gif

Os transistores podem ser todos de uso geral. Este circuito é muito simples e trabalhar sem problemas. É a solução mais barata, pois requer apenas um par de transistor e quatro resistores. Os dois transistores executam um truque para ter a tensão negativa necessária por alguns PCs. Quando o PC não transmite dados, seu pino TX está com uma tensão negativa. A tensão negativa presente é então trazida através do resistor R3 ao pino RD (recepção) do PC.

Alternativamente, RS232 pode ser conseguido utilizando portas lógicas. Isto é acessível quando sua aplicação já está utilizando elementos lógicos e há portas sobreando em algum CI. Como alguns PCs trabalhar bem apenas com tensões positivas, tudo que nós precisamos é inverter a lógica do sinal e para isso utilizamos as portas lógicas. Por exemplo, utilizando o CI CMOS CD4066B:

interface_4066.gif

E, é claro, utilizando circuitos NAND e NOR:

interface_4001.gif

interface_4011.gif

 

E não se esqueça de alimentar os CI’s com 5V.

 

Versão em português por Eletronica.org.
Adaptado com autorização, do original em Science Prog.

Read more »

Valores Comerciais de Resistores, Capacitores, Indutores e Fusíveis

Breve tabela contendo os valores comerciais destes componentes.

Resistores Comerciais
1.0ohm 1.1ohm 1.2ohm 1.3ohm
1.5ohm 1.6ohm 1.8ohm 2.0ohm
2.2ohm 2.4ohm 2.7ohm 3.0ohm
3.3ohm 3.6ohm 3.9ohm 4.3ohm
4.7ohm 5.1ohm 5.6ohm 6.2ohm
6.8ohm 7.5ohm 8.2ohm 9.1ohm

Para obter os demais valores basta multiplicar por: 10, 102, 103, 104, 105, 106,

Capacitores Comerciais

1.0F 1.1F 1.2F 1.3F
1.5F 1.6F 1.8F 2.0F
2.2F 2.4F 2.7F 3.0F
3.3F 3.6F 3.9F 4.3F
4.7F 5.1F 5.6F 6.2F
6.8F 7.5F 8.2F 9.1F

Para obter os demais valores multiplique pelos seus submultiplos: mili, micro, nano e pico.

Indutores Comerciais

1.0H 1.1H 1.2H 1.3H
1.5H 1.6H 1.8H 2.0H
2.2H 2.4H 2.7H 3.0H
3.3H 3.6H 3.9H 4.3H
4.7H 5.1H 5.6H 6.2H
6.8H 7.5H 8.2H 9.1H

Para obter os demais valores basta multiplicar por: 10-3, 10-6.

Fusíveis comerciais

0,1A 0,315A 1,25A 3,15A 6A 20A
0,125A 0,35A 1,5A 3,5A 7A 25A
0,15A 0,4A 1,6A 3,15A 8A 30A
0,2A 0,5A 2A 3,5A 9A 40A
0,25A 0,8A 2,5A 4A 10A 50A
0,3A 1A 3A 5A 15A

Read more »