Skype: mariano.andre

Taquara, RS, Brasil

TABELA DE REFERÊNCIA PARA DIODO ZENER

Olá Pessoal!

Quero compartilhar com vocês uma tabela de referência para diodo zener. Esta tabela é bastante útil e trás referências para potencias de 0,5W, 1W e 5W. Uma sugestão é imprimir a tabela e deixá-la em local de fácil acesso, tornando assim mais rápida a consulta das referências além de não haver a necessidade de fazer buscas frequentes na internet para identificar a tensão de diodos zener. Clique no link abaixo para acessar a tabela.




TABELA DE FIO ESMALTADO

Olá!

Quero compartilhar uma tabela com informações sobre fio esmaltado. A tabela tem informações como resistência do fio e número de espiras por centímetro, que é muito útil quando vamos fazer bobinas, indutores e até mesmo transformadores.


Abraço.

CONTADOR DIGITAL COM PIC - MONTADO


Olá!

Como prometido, ai estão as fotos do contador digital que montei em uma caixa padrão DIN.


Abraço.

CURSO GRATUITO DE 8051 - Iniciativa u8051



Iniciativa 8051 é um projeto do Prof. Cristian M. Goulart, Coordenador do Curso Técnico em Eletrônica do Centro de Referência Estadual em Educação Profissional Monteiro Lobato (CIMOL, em Taquara no Rio Grande do Sul), que ensina programação  de microcontroladores 8051 e PIC desde 2008. 


O objetivo do projeto é oferecer gratuitamente um Curso de Programação de Microcontroladores 8051, para que hobbistas, estudantes e profissionais que estejam geograficamente distantes de uma instituição de ensino, ou que não dispõem de um horário fixo para frequentar as aulas possam receber aperfeiçoamento profissional ajustado à sua disponibilidade de horários.


Acesse o site www.u8051.com.br, tire suas dúvidas e faça sua inscrição. Participe, atualize seus conhecimentos e compartilhe  suas experiências.


CONTADOR DIGITAL UP/DOWN COM PIC - 5 DÍGITOS



Caros amigos,

Hoje venho compartilhar mais um projeto, um contador digital up/down de cinco dígitos.



Em 1998 resolvi montar uma máquina para enrrolar transformadores.  Na época os contadores digitais tinham um preço significativo se comparado aos preços da atualidade e como meus recursos financeiros eram limitados, decidi usar um contador mecânico. Os testes começaram com odômetros de carro e logo surgiram as dificuldades, como por exemplo, sincronizar uma volta no eixo da máquina e uma volta registrada no odômetro. Depois de tanto quebrar a cabeça resolvi montar um contador digital baseado nos integrados CMOS, 4510 e 4511. Durante 6 anos usei meu contador CMOS sem maiores problemas. No entanto meus conhecimentos de programação acerca dos microcontroladores foram evoluindo e surgiu a ideia de usar um PIC para esta aplicação. Depois de trocar ideias com amigos mais experientes em programação e microcontroladores, em 2006 montei o circuito abaixo.


Este circuito foi montado em uma caixa padrão  DIN 98x48x135. O resultado ficou muito bom. Prometo postar uma foto do contador em breve.

O firmware utilizado na época foi o seguinte, compilado no CCS:

/*---------------------------------------------------------------Projeto:    Contador Digital up/downAutor:      Mariano André AndersonFirmware:   CD001 - 17/10/2006---------------------------------------------------------------*/
#include <16F628.h>
#use     delay(clock=4000000)
#fuses   XT, NOWDT, PUT, NOBROWNOUT, PROTECT, NOLVP
#define  en373    pin_a0
#define  clock    pin_a4
#define  upd      pin_a3
#define  bt1      pin_a1
#define  bt2      pin_a2

//- Variáveis Globais -------------------------------------------
int   unidade, dezena, centena, milhar, umilhar, i;

//- Função para converter o valor da variável para 7 segmentos --
// 0 = ligado  1 = desligado
//                        BAFGPCDE                     A
byte const converte[]={ 0b00011000,    //0         * * * * *
                        0b01111011,    //1         *       *
                        0b00101100,    //2       F *       * B
                        0b00101001,    //3         *   G   *
                        0b01001011,    //4         * * * * *
                        0b10001001,    //5         *       *
                        0b10001000,    //6       E *       * C
                        0b00111011,    //7         *       *
                        0b00001000,    //8         * * * * *
                        0b00001001};   //9             D     * P

//- Função para atualizar o display -----------------------------
void atualiza_display()
{
   output_b (converte[unidade]);
   output_high(en373);
   delay_us(1);
   output_low(en373);
   output_b(0b11101111);
   delay_ms(1);
   output_b (converte[dezena]);
   output_high(en373);
   delay_us(1);
   output_low(en373);
   output_b(0b11110111);
   delay_ms(1);
   output_b (converte[centena]);
   output_high(en373);
   delay_us(1);
   output_low(en373);
   output_b(0b11111011);
   delay_ms(1);
   output_b (converte[milhar]);
   output_high(en373);
   delay_us(1);
   output_low(en373);
   output_b(0b11111101);
   delay_ms(1);
   output_b (converte[umilhar]);
   output_high(en373);
   delay_us(1);
   output_low(en373);
   output_b(0b11111110);
   delay_ms(1);
}

//- Função para somar -------------------------------------------
void mais_um()
{
   unidade++;
   if (unidade > 9)
   {
      unidade = 0;
      dezena++;
   }
   if (dezena > 9)
   {
      dezena = 0;
      centena++;
   }
   if (centena > 9)
   {
      centena = 0;
      milhar++;
   }
   if (milhar > 9)
   {
      milhar = 0;
      umilhar++;
   }
   if (umilhar > 9)
   {
      umilhar = 0;
   }
   i=0;
}

//- Função para subtrair um -------------------------------------
void menos_um()
{
   unidade--;
   if (unidade > 9)
   {
      unidade = 9;
      dezena--;
   }
   if (dezena > 9)
   {
      dezena = 9;
      centena--;
   }
   if (centena > 9)
   {
      centena = 9;
      milhar--;
   }
   if (milhar > 9)
   {
      milhar = 9;
      umilhar--;
   }
   if (umilhar > 9)
   {
      umilhar = 9;
   }
   i=0;
}
//- Início da rotina principal ----------------------------------
void main()
{
   set_tris_b (0b00000000);     
   set_tris_a (0b00011110);             
   unidade = 0;                         
   dezena  = 0;
   centena = 0;
   milhar  = 0;
   umilhar = 0;
   while (true)
    {
      atualiza_display();
        {
        if (i==1)
          {
            if ((!input(clock)) && ( input(upd))) mais_um();
            if ((!input(clock)) && (!input(upd))) menos_um();
          }
        if (input(clock))
          {
           delay_us(200);
           if ( input(clock)) i=1;
          }
        }
    }
}
//- Fim ---------------------------------------------------------

Sinta-se a vontade para montar este circuito e fazer melhorias no firmware. E se depois você quiser compartilhar os resultados (sem interesse comercial) o blog estará a disponível para divulgação. Neste caso favor enviar os arquivos por e-mail que será dado os devidos créditos.

Abraço.