FAÇA UM CONTADOR DE VOLTAS PARA ENROLAMENTO DE BOBINAS – COM PIC 16F676 /PIC16F628A

Muitos hobistas preferem enrolar suas bobinas e transformadores, segundo suas necessidades. Gostaria de controlar melhor o número de voltas? Então veja mais…

A prática do enrolamento não é difícil, mas exige paciência e ter alguns truques práticos para ser bem sucedido. Não entraremos exatamente neste mérito, mas sim, na forma de controlar o número de voltas. Para isto faremos uso do seguinte esquema abaixo:

Ou se preferir, podemos usar a versão abaixo com pic 16f628a:

O que vemos aqui , nada mais é que um simples contador de 4 dígitos (0-9999 voltas) usando display de 7 seguimentos, com ânodo comum. O processo de contagem é feito pelo microcontrolador 16F676 (opcionalmente, com 16f628a), de apenas 14 pinos. Como sensor foi usado um reed switch (interruptor acionado por magnetismo), muito comum em aplicações de alarmes. Geralmente são vendidos aos pares com um imã, ficando fácil a sua obtenção e utilização. Nada impede de usar outro tipo de sensor, como por exemplo, foto-sensor ou mesmo um sensor Hall (daqueles que tem dentro dos pequenos motores de ventiladores de PC). Esta escolha ficará por conta do hobista. Em geral, temos um eixo com manivelas em um extremo, e no outro será preso a forma para enrolamento. Na própria manivela, podemos colar o ‘imã’ e o reed switch poderá ficar preso junto ao mancal de apoio do eixo, em uma posição que fique exposto ao campo magnético do imã e seja acionado por ele uma vez a cada volta (vide o esquema acima).

Abaixo, o formato de reeds comerciais e uma opção com foto-transistor. Poderá ser usado os reed pequenos em envólucro de vidro e pequenos imãs retirados de leitores de CD estragados.

USO DO CONTADOR

Após preparar a forma e separar o fio a ser usado, ligue o ‘conta_voltas’, ‘zere’ o mostrador e comece a enrolar. A cada volta na manivela será incrementado o contador, até atingir o número de voltas desejadas. Para nova bobina, repita o processo.

O ARQUIVO ASM

Os displays são multiplexados, sendo apresentados um por vez em um sequência continua, sendo tudo ‘orquestrado’ pela interrupção do timer 0 , a cada 4 milissegundos. O loop principal testa continuamente a entrada do sensor, e quando ocorre uma mudança de estado, irá incrementar o contador CONT0 e CONT1. Em seguida, irá converter o novo valor e colocar nos registradores de apresentação DIG0 A DIG3. A interrupção se encarrega de mostrar estes novos valores. Tudo muito simples!!!
Este contador, obviamente, pode ter outros usos, como por exemplos, controlar uma quantidade de peças que sai de uma linha de produção ( usando sensor de foto-sensível), controle de fluxo de pessoas (uma ‘catraca’ eletrônica) e muitos outros usos.
Obs. Este material foi montado apenas em breadboard, sujeito a bugs ainda não detectados, sendo fornecido o arquivo ASM. Este poderá ser alterado segundo as necessidades do hobista.

Segue o arquivo ASM:

CONTA_VOLTAS_ASM

Segue o arquivo HEX:

CONTA_VOLTAS_HEX

Segue o arquivo ASM para versão com pic 16f628a:

CONTA_VOLTAS_628_ASM

Segue o arquivo HEX para versão com pic 16f628a:

CONTA_VOLTAS_628_HEX

Também, em 15/08/2015 foi postado esta versão com 16f628a, usando câtodo comum. Abaixo segue a pasta com os arquivos desta versão:

CONTA_VOLTAS_628_CATODO_FILES

Também, em 16/03/2014, foi feito esta nova versão do contador de voltas, que conta tanto para frente (incrementa a contagem) como para trás (decrementa a contagem). Isto facilita quando temos que retroceder para arrumar o alinhamento do fio em uma bobina que esteja sendo enrolada na forma. Esta versão não foi realizada com 16f676, porque este tem apenas 14 pinos e se necessita de 16 pinos totais.
Utiliza dois foto-transistores e 2 leds, um disco opaco, tendo uma janela, preso ao eixo. Quando o disco interrompe a passagem de luz, gera os pulsos de contagem. É importante que a janela do disco permita que os dois foto-transistor sejam acionados ao mesmo tempo, uma vez por volta. O funcionamento é bem simples:
Quando giramos para um lado, encontramos primeiro o foto-transistor da entrada ‘trig’ (por ex.). A outra entrada ainda está em nivel ‘1’, pois não foi acionado o foto-transistor da entrada ‘dir’. Ocorrerá um decremento. Virando ao contrário, acionamos o foto-transistor da entrada ‘dir’ e continuando o giro, quando o disco permite iluminar o foto-transistor da entrada ‘trig’, ocorrerá um incremento na contagem, pois ‘dir’=0. Assim, a entrada ‘dir’ determinará se será incremento ou decremento. Pode-se usar outros tipos de sensores como reed_switch , sensor ‘hall’ , contatos mecânicos, etc. Foi inserido um delay de 50 ms para fins de ‘debouncing’ em caso de usar chaves mecânicas como sensores.
Segue o esquema:

Segue a pasta com os arquivos em “C” e “Hex”:

CONTADOR_UP_DOWN

Também, em 15/08/2015 foi alterado o arquivo acima para suportar tanto ânodo comum como cátodo comum. Segue a pasta com os arquivos abaixo:

CONTADOR_UP_DOWN_628_CAT

Ainda em 27/05/2016 foi alterado o arquivo em “C” para retirada de bug relacionado a rotação máxima e incremento pós reset. Segue pasta com os novos arquivos, com opção para displays de 7 seguimentos ânodo ou cátodo comum:

conta_voltas_628_v3_files

Em 17/11/2017 foi alterado o arquivo em “C” para salvar a contagem na EEprom interna do PIC em caso de falha no fornecimento da energia elétrica. Foi necessário alterar o esquema para usar mais um pino do PIC como sensor de tensão da rede. Segue a pasta zipada com esta versão:

conta_voltas_up_down_eep

Manuais:
Datasheet PIC16F676
Datasheet PIC16F628a

Preço de PIC

Curiosidades:
O eterno fascínio pelo ouro
O sistema de navegação das tartarugas
Os eficientes e versáteis escudos da Terra
Vespões constroem com imãs
O universo – cheio de surpresas
Um trem sem rodas
O que revela a visão do invisível
Monóxido de carbono – o assassino silencioso
O que é Artrite?
Bolor – Amigo ou inimigo?

Outros assuntos:
O que preciso saber sobre trocar mensagens de textos?
Quando um dos cônjuges tem necessidades especiais
Como ser um bom pai
Como lidar com dívidas
Como resolver diferenças no casamento
Como tratar o cônjuge com respeito
Como evitar ferir com palavras
Ensine seus filhos bons princípios com atividades de colorir
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Entrevista com um bioquímico

Até o próximo artigo!!!

66 comments on “FAÇA UM CONTADOR DE VOLTAS PARA ENROLAMENTO DE BOBINAS – COM PIC 16F676 /PIC16F628A

  1. amigo fiz este codigo no flowcode ele gerou o arquivo ASM , mas na pratica não funicona vc poderia me ajudar atraves deste asm modificar para que ele opere , o proposito é que quando aperto o botão aciona o ht6p20b e acende um led e mantem este led acesso e se pressionar o botão de chamada nada acontece só depois do botão cancela ser presionado então o botão aciona outro pino do ht6p20b , e apaga este led , o certo é travar o sistema para não transmitir o codigo novamente enquanto ja foi acionado uma vez , usei um pic12f675 para fazer isso assim consigo bloquear os engraçados que ficam apertando o botão de transmissão e travando o sistema

    o codigo

    ;/////////////////////////////////////////////////////////////////////////////////
    ;// Code Generator: BoostC Compiler – http://www.sourceboost.com
    ;// Version : 6.95
    ;// License Type : Full License
    ;// Limitations : PIC12,PIC16 max code size:Unlimited, max RAM banks:Unlimited, Non commercial use only
    ;/////////////////////////////////////////////////////////////////////////////////

    include “P12F675.inc”
    ; Heap block 0, size:24 (0x00000047 – 0x0000005E)
    __HEAP_BLOCK0_BANK EQU 0x00000000
    __HEAP_BLOCK0_START_OFFSET EQU 0x00000047
    __HEAP_BLOCK0_END_OFFSET EQU 0x0000005E
    ; Heap block 1, size:0 (0x00000000 – 0x00000000)
    __HEAP_BLOCK1_BANK EQU 0x00000000
    __HEAP_BLOCK1_START_OFFSET EQU 0x00000000
    __HEAP_BLOCK1_END_OFFSET EQU 0x00000000
    ; Heap block 2, size:0 (0x00000000 – 0x00000000)
    __HEAP_BLOCK2_BANK EQU 0x00000000
    __HEAP_BLOCK2_START_OFFSET EQU 0x00000000
    __HEAP_BLOCK2_END_OFFSET EQU 0x00000000
    ; Heap block 3, size:0 (0x00000000 – 0x00000000)
    __HEAP_BLOCK3_BANK EQU 0x00000000
    __HEAP_BLOCK3_START_OFFSET EQU 0x00000000
    __HEAP_BLOCK3_END_OFFSET EQU 0x00000000
    gbl_status EQU 0x00000003 ; bytes:1
    gbl_16_LSR EQU 0x00000020 ; bytes:4
    gbl_float_detect_tininess EQU 0x00000039 ; bytes:1
    gbl_float_rounding_mode EQU 0x0000003A ; bytes:1
    gbl_float_exception_flags EQU 0x0000003B ; bytes:1
    gbl_17_gbl_aSig EQU 0x00000024 ; bytes:4
    gbl_17_gbl_bSig EQU 0x00000028 ; bytes:4
    gbl_17_gbl_zSig EQU 0x0000002C ; bytes:4
    gbl_17_gbl_aExp EQU 0x0000003C ; bytes:1
    gbl_17_gbl_bExp EQU 0x0000003D ; bytes:1
    gbl_17_gbl_zExp EQU 0x00000037 ; bytes:2
    gbl_17_gbl_aSign EQU 0x0000003E ; bytes:1
    gbl_17_gbl_bSign EQU 0x0000003F ; bytes:1
    gbl_17_gbl_zSign EQU 0x00000040 ; bytes:1
    gbl_17_gbl_zSigZero EQU 0x00000041 ; bytes:1
    gbl_17_gbl_ret EQU 0x00000030 ; bytes:4
    gbl_indf EQU 0x00000000 ; bytes:1
    gbl_tmr0 EQU 0x00000001 ; bytes:1
    gbl_pcl EQU 0x00000002 ; bytes:1
    gbl_fsr EQU 0x00000004 ; bytes:1
    gbl_gpio EQU 0x00000005 ; bytes:1
    gbl_pclath EQU 0x0000000A ; bytes:1
    gbl_intcon EQU 0x0000000B ; bytes:1
    gbl_pir1 EQU 0x0000000C ; bytes:1
    gbl_tmr1l EQU 0x0000000E ; bytes:1
    gbl_tmr1h EQU 0x0000000F ; bytes:1
    gbl_t1con EQU 0x00000010 ; bytes:1
    gbl_cmcon EQU 0x00000019 ; bytes:1
    gbl_adresh EQU 0x0000001E ; bytes:1
    gbl_adcon0 EQU 0x0000001F ; bytes:1
    gbl_option_reg EQU 0x00000081 ; bytes:1
    gbl_trisio EQU 0x00000085 ; bytes:1
    gbl_pie1 EQU 0x0000008C ; bytes:1
    gbl_pcon EQU 0x0000008E ; bytes:1
    gbl_osccal EQU 0x00000090 ; bytes:1
    gbl_wpu EQU 0x00000095 ; bytes:1
    gbl_ioc EQU 0x00000096 ; bytes:1
    gbl_iocb EQU 0x00000096 ; bytes:1
    gbl_vrcon EQU 0x00000099 ; bytes:1
    gbl_eedata EQU 0x0000009A ; bytes:1
    gbl_eeadr EQU 0x0000009B ; bytes:1
    gbl_eecon1 EQU 0x0000009C ; bytes:1
    gbl_eecon2 EQU 0x0000009D ; bytes:1
    gbl_adresl EQU 0x0000009E ; bytes:1
    gbl_ansel EQU 0x0000009F ; bytes:1
    gbl_FCV_ANSEL EQU 0x00000042 ; bytes:1
    gbl_FCV_BOTAO1 EQU 0x00000043 ; bytes:1
    gbl_FCV_BOTAO2 EQU 0x00000044 ; bytes:1
    CompTempVar2205 EQU 0x00000045 ; bytes:1
    CompTempVar2206 EQU 0x00000046 ; bytes:1
    CompTempVar2207 EQU 0x00000045 ; bytes:1
    CompTempVar2208 EQU 0x00000045 ; bytes:1
    CompTempVar2209 EQU 0x00000045 ; bytes:1
    CompTempVar2211 EQU 0x00000045 ; bytes:1
    delay_ms_00000_arg_del EQU 0x00000045 ; bytes:1
    Int1Context EQU 0x0000005F ; bytes:1
    Int1BContext EQU 0x00000034 ; bytes:3
    ORG 0x00000000
    GOTO _startup
    ORG 0x00000004
    MOVWF Int1Context
    SWAPF STATUS, W
    BCF STATUS, RP0
    MOVWF Int1BContext
    SWAPF PCLATH, W
    MOVWF Int1BContext+D’1′
    SWAPF FSR, W
    MOVWF Int1BContext+D’2′
    BCF PCLATH,3
    BCF PCLATH,4
    GOTO interrupt
    ORG 0x00000010
    delay_ms_00000
    ; { delay_ms ; function begin
    MOVF delay_ms_00000_arg_del, F
    BTFSS STATUS,Z
    GOTO label1
    RETURN
    label1
    MOVLW 0xF9
    label2
    ADDLW 0xFF
    BTFSS STATUS,Z
    GOTO label2
    NOP
    DECFSZ delay_ms_00000_arg_del, F
    GOTO label1
    RETURN
    ; } delay_ms function end

    ORG 0x0000001C
    main
    ; { main ; function begin
    MOVLW 0x20
    BSF STATUS, RP0
    MOVWF gbl_ansel
    MOVLW 0x07
    BCF STATUS, RP0
    MOVWF gbl_cmcon
    MOVLW 0xC0
    BSF STATUS, RP0
    MOVWF gbl_option_reg
    MOVLW 0x01
    BCF STATUS, RP0
    MOVWF gbl_FCV_BOTAO1
    MOVWF gbl_FCV_BOTAO2
    label3
    CLRF gbl_FCV_ANSEL
    MOVLW 0xFE
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFE
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF gbl_gpio
    MOVLW 0xFD
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFD
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF gbl_gpio
    MOVLW 0xFB
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFB
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF gbl_gpio
    MOVLW 0x10
    BSF STATUS, RP0
    IORWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0x10
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF CompTempVar2205
    CLRF CompTempVar2206
    MOVLW 0x10
    SUBWF CompTempVar2205, W
    BTFSC STATUS,Z
    INCF CompTempVar2206, F
    MOVF CompTempVar2206, W
    MOVWF gbl_FCV_BOTAO1
    MOVF gbl_FCV_BOTAO1, F
    BTFSS STATUS,Z
    GOTO label4
    MOVLW 0xFE
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFE
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF CompTempVar2207
    MOVLW 0x01
    IORWF CompTempVar2207, W
    MOVWF gbl_gpio
    MOVLW 0xFD
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFD
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF CompTempVar2208
    MOVLW 0x02
    IORWF CompTempVar2208, W
    MOVWF gbl_gpio
    MOVLW 0xFF
    MOVWF delay_ms_00000_arg_del
    CALL delay_ms_00000
    MOVLW 0x91
    MOVWF delay_ms_00000_arg_del
    CALL delay_ms_00000
    MOVLW 0xFE
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFE
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF gbl_gpio
    label4
    MOVF gbl_FCV_BOTAO1, F
    BTFSS STATUS,Z
    GOTO label3
    label5
    MOVLW 0x08
    BSF STATUS, RP0
    IORWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0x08
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF CompTempVar2209
    CLRF gbl_FCV_BOTAO2
    MOVLW 0x08
    SUBWF CompTempVar2209, W
    BTFSC STATUS,Z
    INCF gbl_FCV_BOTAO2, F
    MOVF gbl_FCV_BOTAO2, F
    BTFSS STATUS,Z
    GOTO label5
    MOVLW 0xFD
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFD
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF gbl_gpio
    MOVLW 0xFB
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFB
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF CompTempVar2211
    MOVLW 0x04
    IORWF CompTempVar2211, W
    MOVWF gbl_gpio
    MOVLW 0xFF
    MOVWF delay_ms_00000_arg_del
    CALL delay_ms_00000
    MOVLW 0x91
    MOVWF delay_ms_00000_arg_del
    CALL delay_ms_00000
    MOVLW 0xFB
    BSF STATUS, RP0
    ANDWF gbl_trisio, W
    MOVWF gbl_trisio
    MOVLW 0xFB
    BCF STATUS, RP0
    ANDWF gbl_gpio, W
    MOVWF gbl_gpio
    GOTO label3
    ; } main function end

    ORG 0x000000AD
    _startup
    MOVLW 0xD5
    BCF STATUS, RP0
    MOVWF gbl_16_LSR
    MOVLW 0xC4
    MOVWF gbl_16_LSR+D’1′
    MOVLW 0xBB
    MOVWF gbl_16_LSR+D’2′
    MOVLW 0xDC
    MOVWF gbl_16_LSR+D’3′
    CLRF gbl_17_gbl_aSig
    CLRF gbl_17_gbl_aSig+D’1′
    CLRF gbl_17_gbl_aSig+D’2′
    CLRF gbl_17_gbl_aSig+D’3′
    CLRF gbl_17_gbl_bSig
    CLRF gbl_17_gbl_bSig+D’1′
    CLRF gbl_17_gbl_bSig+D’2′
    CLRF gbl_17_gbl_bSig+D’3′
    CLRF gbl_17_gbl_zSig
    CLRF gbl_17_gbl_zSig+D’1′
    CLRF gbl_17_gbl_zSig+D’2′
    CLRF gbl_17_gbl_zSig+D’3′
    CLRF gbl_17_gbl_aExp
    CLRF gbl_17_gbl_bExp
    CLRF gbl_17_gbl_zExp
    CLRF gbl_17_gbl_zExp+D’1′
    CLRF gbl_17_gbl_aSign
    CLRF gbl_17_gbl_bSign
    CLRF gbl_17_gbl_zSign
    CLRF gbl_17_gbl_zSigZero
    CLRF gbl_17_gbl_ret
    CLRF gbl_17_gbl_ret+D’1′
    CLRF gbl_17_gbl_ret+D’2′
    CLRF gbl_17_gbl_ret+D’3′
    CLRF gbl_float_rounding_mode
    CLRF gbl_float_exception_flags
    CLRF gbl_float_detect_tininess
    BCF PCLATH,3
    BCF PCLATH,4
    GOTO main
    ORG 0x000000D4
    interrupt
    ; { interrupt ; function begin
    BCF STATUS, RP0
    SWAPF Int1BContext+D’2′, W
    MOVWF FSR
    SWAPF Int1BContext+D’1′, W
    MOVWF PCLATH
    SWAPF Int1BContext, W
    MOVWF STATUS
    SWAPF Int1Context, F
    SWAPF Int1Context, W
    RETFIE
    ; } interrupt function end

    ORG 0x00002007
    DW 0x3F94
    END

    1. Olá Liliano! Ninguém merece debugar asm gerados por compilador ‘C’!!! Faça o seguinte: Jogue este arquivo em um texto.asm e compile no IDE do Mplab. Aí voce poderá usar os recursos para acompanhar linha a linha, a condição dos registradores e se fazem o que deveriam fazer.
      Claudio

  2. :mrgreen: Olá Claudio, esta ideia do nosso colega Liliano e boa, a quantidade de volta vc digita em um teclado matriz e quanto ao motor seria intereçante ser o de passo, pois ele pode parar no ponto exato da contagem, apenas um palpite 💡 Abraços..

  3. Então amigo o motor que eu usava era AC , mas o ideal seria de passo , usao crescente para desenrolar transformador e contar as espiras , depois para facilitar ja pronto usava o sistemna decrescente , só que o meu sistema antigo a placa era enorme , nem sei se tenho o esquema dela mas posso desenhar se for o caso , a maquina seria automatica tipo , seleciona o numero de espeiras ela parte a contagem pelo botão start , quando atingir proximidade do final reduz a velocidade do motor de passo , e ao tremino bloqueia a contagem e avisa com um sinal sonoro , seria inetresante se o proprio pic controlasse o motor e se pudesse ter uma saida para acionar um motro simples para fazer o corte do cobre , masi ai se trata de um pic com mais portas

    1. Olá Liliano!
      Sem dúvida, não seria um projeto pequeno. Eu já enrolei pequenos transformadores na ‘mão’, mas como, usando um motor elétrico, você controla para que o fio não se sobreponha? É por tensão mecânica sobre o fio (como nas máquinas de costuras que mantém o fio sempre esticado)? E quando se trata de fios de diâmetro extramente pequenos? Como faz para que não quebre ? A velocidade é escolhida conforme o diâmetro do fio? O diâmetro da forma entra no cálculo da rotação? Qual a rotação máxima atingida por este motor?
      Cláudio

      1. então amigo , eu esticava o fio mesmo , e cheguei a enrolar fios bem finos , se tiver bem alinhada e lubrificada é muito dificil arrebentar , coloquei um sensor de passagem e prendi um circulo no eixo do motor , e colei uma fita preta neste sensor ele contaria a volta completa do eixo sendo assim a forma não influenciava na contagem , sobre o fio arrebentar coloquei um sensor micro sw onde o fio fazia uma presão ele fica acionado se o fio quebrasse desligava toda a maquina , amigo sobre a velocidade eu trabalhava com um motor AC de maquina de costura tinha um pedal com reostato podia variar esta velocidade pisando no pedal .

        1. Olá Liliano! Obrigado pela explicação. Gostei do seu método. Ví alguns videos aonde o pessoal usa ‘calculadora’ como contador de volta. ‘Jeitinho brasileiro’!
          Cláudio

  4. Ola Claudio Bom dia, você teria como você fazer um exemplo com o ds1307 relógio com data hora e minuto e segundo estou com dificuldade em um trabalho referente a um curso que estou fazendo.
    Obrigado

    1. Olá Ronaldo!
      O DS1307 se comunica com um microcontrolador usando protocolo i2c. Infelizmente, não disponho deste ci no momento, para testes. Poderá ver, para ter uma idéia, com a seguinte Note Application da Maxim: ‘Using a DS1307 with PIC”. Fornece um exemplo de uso com o Pic 16f628.
      Claudio

  5. Ola amigo 2 duvidas , teria como fazer este projeto com 16f628 ?
    outra coisa eu vi uma vez um exemplo na internet só não me lembro onde mas ele tinha a opção de selecionar o numero de parada , opção para cresente e decrescente , seria interessante também uma saida para ligar um relê e poder desligar todo o sistema assim poderia ser programado as voltas e o sistema parar sozinho , eu fiz uma fez um contador assim usando cis digitais cd4017 , contador decada e o 4026 contador com ja com opção paraligar o display direto , assim usando uma porta AND de 4 portas eu podia selecionar os 4 digitos e com a opção de escolher o numero para parar assim coloquei um motor e o sistema todo automatico mas gigante rsrsrs , tipo 4 cis contadores , 4 cis 4017 para selecionar o numero e 1 ci porta AND , fora os transistores e resistores , com um simples pic faria isso tudo .

    1. Olá Liliano!
      Migrar para o 16F628 é uma operação simples, com mudança de arquivos de definição e ajustando as portas corretas (não tem portc, mas ‘portb’). Quanto a fazer de forma automática, é possível sim. Poderia fazer um descritivo ‘ detalhado’ do que tem que fazer a ‘maquina’? Quando se usaria a opção ‘decrescente’? Você consegue ainda achar o artigo, para analisar como deve ser operado? Que tipo de motor deve ser usado? Corrente alternada, corrente continua , motor de passo?
      Claudio

Comments are closed.

Back To Top