Guia CNC Brasil - Tudo sobre CNC, Router, Laser, Torno e 3D Print

ELETRÔNICA / ELÉTRICA => Eletrônica Básica => Microcontroladores => Tópico iniciado por: Angelo Farinhas em 13 de Dezembro de 2014, 23:30

Título: Ajuda com PIC
Enviado por: Angelo Farinhas em 13 de Dezembro de 2014, 23:30
Boa noite

Meu nome e Ângelo, já fiz uma CNC em madeira a alguns anos atras e postei aqui no fórum algumas fotos, agora estou terminando uma de alumínio com área útil de 400 x 300mm mais para PCI e peças em acrilico e polimeros.

Mas no momento estou abrindo o topico pois tenho algumas  dificuldades com Microcontrolador PIC, sinceramente não entendo nada de programação e peço a ajuda dos amigos do fórum que possam me ajudar.


Procurando na net encontrei uma pessoa que fez o desenho do hardware e o softer, segundo ele fez no Proteus, testei  no Proteus e ate funcionou, mas na hora de gravar no PIC, grava mas não funciona.
Tentei entrar em contato com quem fez mas não tive retorno.

Ja procurei ajuda em outros foruns e na net, mas não encontro quem possa me ajudar, no fórum do clube do hardware, eles responderam alguma duvidas e me deram algumas dicas e orientações, mas não funcionou.

Preciso da ajuda aqui do fórum ou de quem possa me ajudar ja to a quase 8 meses tentando resolver esse problema, estou montando este circuito para um brinquedo to fazendo para umas crianças.

A ideia do circuito e simples para quem entende de programação, e foi feito de forma simples e com poucos componentes .
A ideia e a seguinte.
Um circuito com PIC sem cristal, escolhido o  PIC16F628A,
Utilizando dois botões normalmente abertos pulsado, UP e DOWN ( Frente e Trás)
Alimentado com 4,5 ou 9 v ,
Aciona 10 leds de 1W

Apertando o botão UP acende o led 1
Apertando o botão UP acende o led 2 e apaga o 1
Apertando o botão UP acende o led 3 e apaga o 2 e assim por diante.

Caso eu esteja com o led 7 acesso e quero voltar ao led 4
Aperto o botão DOWN e acende o led 6 apaga o led 7
Aperto o botão DOWN acende o led 5 apaga o led 6
Aperto o botão DOWN acende o led 4 apaga o led 5   e assim por diante.

Em anexo o desenho

Abaixo o programa que foi feito, so tenho isso sei que falta os fuzers e mais algumas coisas mas não sei como fazer.

/*
   Projeto: Leds
   MCU: PIC16F628A
   CLOCK: INTOSC 4MHz
   Compilador: MikroC PRO for PIC

*/


unsigned Saida at PORTA;

sbit Right at PORTA.B0;
sbit Left at PORTA.B1;
char flags = 0;

void main()
{
      CMCON = 7;
      TRISB = 0;
      TRISA = 0;
      TRISA.B0 = 1;
      TRISA.B1 = 1;
      Saida = 0x8000; //Max: 0x8000, Min: 0x0040
     
      while(1)
      {
         if( Left ) flags.B0 = 1;
         if( !Left && flags.B0 )
         {
           flags.B0 = 0;
           if( Saida < 0x8000 )
           {
              Saida <<= 1;
           }
         }
         
         if( Right ) flags.B1 = 1;
         if( !Right && flags.B1 )
         {
            flags.B1 = 0;
            if( Saida > 0x0040 )
            {
               Saida >>= 1;
            }
         }
      }
}


Obrigado pela ajuda

Abraços

Angelo
Título: Re:Ajuda com PIC
Enviado por: minilathe em 15 de Dezembro de 2014, 01:05
Esse teu programa possui alguns erros, para começar:

(1) Você quer acionar 10 LEDs, mas a variável "Saída" está associada apenas à porta A, que possui 8 bits e portanto, poderia acionar apenas 8 LEDs (um LED associado a cada bit da porta).

(2) Em seu circuito, 8 LEDs estão ligados a porta B e dois LEDs à porta A. Isso está incompatível com seu programa. Em outras palavras, seu programa está incompatível com seu hardware. Não entendi como este programa poderia funcionar no Proteus. Não seria outro programa? Ou outro circuito? ...

(3) Seu programa não dispõe de um artifício de debouncing (evitar os múltiplos acionamentos de um botão), usando por exemplo um temporizador, ...

(4) Não estou acostumado com esse Mikro C, mas acho que estão faltando parâmetros de inicialização para definir uso do clock interno (RC), entre outros parâmetros do PIC (inibir watchdog, interrupção, ...).

Eu usava mais o "assembly" do PIC com o aplicativo de desenvolvimento (IDE) da Microchip. Atualmente tenho usado o Arduíno.
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 15 de Dezembro de 2014, 12:02
minilathe

Obrigado pela resposta.
Pelo que descreveu, seria melhor então refazer tudo novamente?
Pode me ajudar?
Título: Re:Ajuda com PIC
Enviado por: minilathe em 15 de Dezembro de 2014, 13:59
Como o programa é muito simples e o grau de mudanças é elevado (em relação a este programa como é atualmente), resulta em ter que consertar e refazer praticamente tudo e inclusive acrescentar um temporizador em alguns pontos do programa, ....

Dá para tentar consertar, se eu fizer, vai consumir alguns HH e ainda terei de instalar um compilador C, um assembler, simulador do PIC, ... Ou posso ir te ajudando (se é que você sabe o que estará fazendo).
Título: Re:Ajuda com PIC
Enviado por: lumens em 15 de Dezembro de 2014, 16:08
Olá Angelob
 Qual a intenção real deste dispositivo?, tem que ser 10 leds? vc poderia usar mais componentes na placa, exemplo instalar um conversor ABCD ou algumas portas AND. quanto a lógica realmente seu código ficou meio complicado usando um carri a esquerda ou a direita. ideal seria uma variável sendo incrementada ou decrementada subindo ou descendo o valor desejado. geralmente uso o MPLAB e PIC CCS. para compilação.
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 15 de Dezembro de 2014, 20:55
Minilathe.
Se puder me ajudar na parte do programa e circuito eu agradeço já tenho tudo instalado no computador, e a parte eletrônica eu refaço.

Paulo Lumens
Se puder me ajudar, sua ajuda será bem vinda
A idéia e fazer um tipo brinquedo para crianças com deficiência de uma entidade que ajudo.
A idéia inicial era usar 8 leds, mas não lembro o por que foi para 10 leds.
Se for complicado usar 10, pode ser com 8 sem problemas.
Quanto ao programa quem fez foi uma pessoa que conheci na net que se propôs a ajudar e fazer o programa e o circuito, testei ele e montei, mas nada funciona.
Pode ser modificado.
Quanto a colocar mais componentes pode sim sem problemas.

Pelo que vi e melhor começar do ZERO.
Título: Re:Ajuda com PIC
Enviado por: lumens em 16 de Dezembro de 2014, 12:25
Olá Angelob

talvez isto te ajude, dei uma modificada em um programa que eu tinha aqui.

Código: [Selecionar]
//**********************************************************************
// programa desenvolvido por Paulo Furlan p/ guia CNC 12/2014
//**********************************************************************
#include <16f628A.h>
#use delay(clock=4000000)
#fuses HS,NOWDT,PUT,NOLVP

signed long int t0_conta,leds;
char tcl;
static boolean led;
static int conta;
boolean tecla_pres;
//*****************************************************************
#int_timer0
void trata_t0 ()
{

// reinicia o timer 0 em 131 menos a contagem que já passou
set_timer0(131-get_timer0());
conta++;
// se já ocorreram 125 interrupções
if (conta == 125)
{
conta=0;
led = !led;  // inverte o led
output_bit (pin_a4,led);//RA4 LED TIMER

}

}
/*
********Entradas*******************
PIN_A0***Botão S1
PIN_A1***Botão S2
*********Saidas*******************
PIN_B0***led1
PIN_B1***led2
PIN_B2***led3
PIN_B3***led4
PIN_B4***led5
PIN_B5***led6
PIN_B6***led7
PIN_B7***led8
*/
//*********************************************************************
char varre_teclas (void)
// verifica se alguma tecla está pressionada
{
if (!input(pin_a0)) return('1'); // verifica a tecla S1 Incrementa
if (!input(pin_a1)) return('2'); // verifica a tecla S2 Decrementa
// se nenhuma tecla está pressionada, desliga o flag
// tecla_pres e retorna o valor 0
tecla_pres = 0;

return (0);
}
//******************************************************************************
char teclas (void)
// Rotina principal de verificação do teclado
// Verifica se é uma nova tecla e filtra ruídos
{
int t;
t = varre_teclas(); // verifica se há tecla
if ((t) && (!tecla_pres))
// se há tecla e o flag está apagado
{
tecla_pres = 1; // ativa o flag
if (t != tcl)
// se a tecla atual é diferente da tecla
// anterior
{
// filtra o ruido de contato
delay_ms (50); // aguarda 50ms
// lê novamente as tecla e verifica
// se a mesma tecla ainda está pressionada
// caso positivo, retorna a tecla
if (varre_teclas() == t) return (t);
}
}

return (0); // se não há tecla, retorna 0
}
//*************************************************


main()
{

SET_TRIS_A(0x03);
SET_TRIS_B(0x00);
output_B(0x00);
t0_conta = 2500;
setup_timer_0 ( RTCC_INTERNAL | RTCC_DIV_64 );
set_timer0(131); // inicia o timer 0 em 131
enable_interrupts (global | int_timer0);
tcl = 0; // limpa a tecla atual
tecla_pres = 0; // desliga o flag de tecla pressionada

while(true) // espera interrupção
{
tcl=teclas(); // verifica se há tecla pressionada
if (tecla_pres)
// caso exista tecla pressionada*********************************************************************
{
// verifica se é a tecla é maior que 0****************************************************************

switch (tcl)  // verifica a tecla
{
case '1' : if(leds<8)
{
leds=leds+1; //incrementa variavel
}
else
{
leds=leds;
}

break;

case '2' : if(leds>0)
{
leds=leds-1;//decrementa variavel
}
else
{
leds=leds;
}

break;

default  :
break;

}
}
delay_ms(10);

switch (leds)  // converte binario para seguencial na saída
{
case 0x00 :
output_b(0x00); //saída

break;

case 0x01 :
output_b(0x01); //saída 1

break;
case 0x02 :
output_b(0x03); //saída 2

break;
case 0x03 :
output_b(0x07); //saída 3

break;
case 0x04 :
output_b(0x0F); //saída 4

break;
case 0x05 :
output_b(0x1F); //saída 5

break;
case 0x06 :
output_b(0x3F); //saída 6

break;
case 0x07 :
output_b(0x7F); //saída 7

break;
case 0x08 :
output_b(0xFF); //saída 8

break;
default  :
break;

}
}
}


Estou enviando um arquivo do Proteus para simulação, o programa fou compilado no MPLAB e PIC CCS, qualquer duvida fala ai
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 16 de Dezembro de 2014, 21:32
Paulo

Obrigado pela ajuda, vou testar no Proteus e depois no MPlab.

Você tem o programa  em arquivo

Abraços

Angelo
Título: Re:Ajuda com PIC
Enviado por: minilathe em 17 de Dezembro de 2014, 00:11
Fiz uma versão um pouco mais compacta, o circuito é o proposto inicialmente, com 10 Leds e entradas em PA_0 e PA_1

Código: [Selecionar]
/*
 * File:   main.c
 * Author: Gil Pinheiro
 *
 * Created on 16 de Dezembro de 2014, 22:54
 */
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>

typedef unsigned int uint16;
typedef unsigned char uint8;

uint16 Contador=1;

#define Direita     RA0
#define Esquerda    RA1

void temporiza(void);

/*
 *
 */
int main(int argc, char** argv) {
   
    TRISB = 0x0;    // Todos os bits da porta B são saídas
    TRISA = 0x3F;   // Os bits 6 e 7 da porta A são saídas e de 0 a 5 entradas
    PORTA = 0x3F;   // Habilita resistores de pull-up nas entradas

    for(;;)         // Loop eterno
    {
        if (Direita==0)
        {
            temporiza();
            while (Direita==0);
            if (Contador > 1) Contador >>= 1;
        }

        if (Esquerda==0)
        {
            temporiza();
            while (Esquerda==0);
            if (Contador < 0x100) Contador <<= 1;
        }
        PORTB = (uint8)Contador;
        PORTA = (uint8)(Contador >> 2) || 0x03F;
    }

    return (0);
}

void temporiza(void)
{
    uint16 a,b;
    for(a=0;a<0xffff;a++)
        for(b=0;b<0xff;b++);
}
Título: Re:Ajuda com PIC
Enviado por: minilathe em 17 de Dezembro de 2014, 00:33
Segue programa no formato .hex (roda no Proteus).

Código: [Selecionar]
:02000000FA2FD5
:100F300001340034F001F101FF307106031DA22FCE
:100F4000FF30700603190800F201F301003073024C
:100F5000FF30031972020318BA2F0130F207031889
:100F6000F30A0030F30700307302FF3003197202F6
:100F7000031CAD2F0130F0070318F10A0030F10710
:100F80009C2F8316031386013F3085003F30831268
:100F9000031385000518DF2F9A2783120313051CFE
:100FA000CD2F00307A02023003197902031CDF2FA3
:100FB00001300310FA0CF90CFF3E031DD92F8518E0
:100FC000F42F9A2783120313851CE22F01307A0233
:100FD0000030031979020318F42F01300310F90DC2
:100FE000FA0DFF3E031DEE2F79088600F801F80A7E
:100FF0007808C92F9827F9009927FA008301C12F93
:00000001FF
Título: Re:Ajuda com PIC
Enviado por: minilathe em 17 de Dezembro de 2014, 08:14
Melhorei um pouco a temporização para facilitar o manuseio por crianças (temporização mais lenta para melhor interação).

Código: [Selecionar]
/*
 * File:   main.c
 * Author: Gil Pinheiro
 * IDE/Compiler: MPLAB-X / XC8 (Microchip)
 * Created on 16 de Dezembro de 2014, 22:54
 */
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>

typedef unsigned int uint16;
typedef unsigned char uint8;

uint16 Contador=1;

#define Direita     RA0
#define Esquerda    RA1

void temporiza( uint16 );

/*
 *
 */
void main( void ) {
   
    TRISB = 0x0;    // Todos os bits da porta B são saídas
    TRISA = 0x3F;   // Os bits 6 e 7 da porta A são saídas e de 0 a 5 entradas
    PORTA = 0x3F;   // Habilita resistores de pull-up nas entradas

    for(;;)         // Loop eterno
    {
        if (Direita == 0)
        {
            temporiza( 0x1 ); // Temporiza para evitar bouncing
            if(Direita == 0)
            {
                while (Direita == 0);
                if (Contador > 1) Contador >>= 1;
            }
        }

        if (Esquerda == 0)
        {
            temporiza( 0x1 ); // Temporiza para evitar bouncing
            if(Esquerda == 0)
            {
                while (Esquerda == 0);
                if (Contador < 0x100) Contador <<= 1;
            }
        }

        PORTB = (uint8)Contador;
        PORTA = (uint8)(Contador >> 2) || 0x03F;
        temporiza( 0xFF ); // Temporiza para tornar interface mais amigável
     
    }
}

void temporiza( uint16 i )
{
    uint16 a,b;
    for(a = 0; a < 0xffff; a++)
        for(b = i; b > 0; b--);
}

Formato HEX:
Código: [Selecionar]
:02000000FA2FD5
:100F0C0001340034F201F301FF307306031D902FFE
:100F1C00FF307206031908007108F501F507700817
:100F2C00F401F407750874040319A62F0130F402B8
:100F3C000030031CF503F50275087404031D9C2F87
:100F4C000130F2070318F30A0030F3078A2F8316D7
:100F5C00031386013F3085003F3083120313850055
:100F6C00831203130518D32F0130F0000030F10069
:100F7C008827831203130518D32F051CC32F0030A9
:100F8C007802023003197702031CD32F01300310AF
:100F9C00F80CF70CFF3E031DCD2F8518EE2F0130FA
:100FAC00F0000030F1008827831203138518EE2F10
:100FBC00851CDE2F013078020030031977020318EC
:100FCC00EE2F01300310F70DF80DFF3E031DE82F37
:100FDC0077088600F601F60A76088500FF30F000E7
:100FEC000030F1008827B62F8627F7008727F800F6
:040FFC008301AD2F91
:00000001FF
Título: Re:Ajuda com PIC
Enviado por: lumens em 17 de Dezembro de 2014, 10:21
Mestre é mestre, código compacto com deslocamento esq. dir. é isso ai mestre Minilathe, vou vivendo e aprendendo..
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 17 de Dezembro de 2014, 21:00

Minilathe

Obrigado pela ajuda, vou simular no proteus, uma pergunta  quanto aos fuses, pode me informar como colocar eles.

Obrigado.
Título: Re:Ajuda com PIC
Enviado por: minilathe em 17 de Dezembro de 2014, 21:09
Sua intenção é que seja um produto para comercialização?
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 17 de Dezembro de 2014, 22:28
Olá

Não tenho intenção de comercializar ou vender,  é só para as crianças com paralisia  cerebral brincar com algo diferente nada mais, já fiz outras coisas inclusive recortes de dinos na cnc que tinha feito, para montarem, (alguns ate montão e são bem inteligentes) entre outras coisa usando som e lus.
Também fiz dinos para montar, para crianças com câncer de uma entidade que ajuda a as famílias e as crianças, ai era muitos........dinos, mas e tudo valido,  recortei 100 chapas de mdf 3mm e gastei 200 fresas e 3 tupias em um pouco mais de dois anos.
Tudo em um quarto do meu apartamento que transformei em minha oficina, a patroa que ficava brava com o pó.............Mas parei concordo não da para fazer isso em um apartamento e muita sujeira. Então to fazendo coisas mais simples e com pouca sujeira.

Minha intensão e fazer 5 peças ja fiz uma parte na cnc,  tinha feito antes 5, mas usando CI  4017, mas dava muito problemas pois quando queriam voltar a cor, tinha ir ate chegar nela e alguns abandonavam e ate jogaram no chão e acabava quebrando, alem de ter uma forma um pouco pesada e meio desajeitada esta que estou fazendo e mais pratica. Ela e circular menor e feita em mdf de 3 mm, com espessura final de 30 mm e diâmetro de 200 mm com bordas lixadas e arredondadas, e mais fácil de segurar menos peso e roda, a parte eletrônica vou proteger envolvida em silicone e a parte do mdf sera pintada e protegida vai mergulhar na água, e tem que durar pelo menos de 3 a 6 meses. os outros nem chegaram durar 1 mês.... se for bem aceita e durar faço mais 5. Mas se não for aprovado, volto para a prancheta e crio outra coisa.

Conversando com alguns amigos chegamos a conclusão que se for para frente e para trás  eles gostem mais, pois de alguma forma isso prende a atenção deles, (cada um tem seu gosto para cor, uma ou mais depende da cada um), de alguma forma parece trazer certas mudanças de comportamento, uma certa alegria incomum, não sei explicar.

Eu que banco todo gasto com material fresas eletrônica etc, por isso demora um pouco a ser concretizado e prefiro assim pois faço de coração e por que eu quero, conto com a ajuda intelectual de amigos, sem nada de dinheiro só o meu, pois sei que quando entra dinheiro em algo deste tipo, só da problemas.
Se algum amigo quer ajudar financeiramente, peço que procure uma entidade e ajude diretamente, so quero ajuda intelectual.

Pelo menos  é uma ajuda e contribuição que eu posso dar a quem precisa de tão pouco,  mesmo que seja pequena já é alguma coisa.
Título: Re:Ajuda com PIC
Enviado por: andresinho em 17 de Dezembro de 2014, 23:10
parabéns pela iniciativa! pena eu não entender nada de programação, senão eu ajudaria!
Título: Re:Ajuda com PIC
Enviado por: minilathe em 17 de Dezembro de 2014, 23:33
Acho muito válido ajudar quem realmente precisa, iniciativas desse tipo tem meu apoio.

Por outro lado, não gosto de ajudar a fazer algo para proveito e lucro individual às minhas custas.
Título: Re:Ajuda com PIC
Enviado por: Jorge_BH em 18 de Dezembro de 2014, 07:59
...é só para as crianças com paralisia  cerebral brincar com algo diferente nada mais, já fiz outras coisas inclusive recortes de dinos na cnc que tinha feito, para montarem, (alguns ate montão e são bem inteligentes) entre outras coisa usando som e lus...
Parabéns, Ângelo, esse tipo de ajuda é importante para as crianças e gratificante para quem faz.
Se der, põe fotos desses brinquedos aí, pra gente ver.
Abraço.
Jorge
Título: Re:Ajuda com PIC
Enviado por: lumens em 18 de Dezembro de 2014, 11:23
Olá Angelob. eu tbm ajudo uma instituição de reabilitação mental, voltado as crianças, já doei alguns trabalhos meus para um bingo que realizam mensalmente, decidi ajudar pela iniciativa sua, porem a proposta do mestre Minilathe é melhor que a minha, mas sugiro que teste abas, e execute aquela que melhor lhe convém, quanto a confecção das plaquinha qual é o processo que vc utiliza??
ps: me passe seu email para lhe enviar todos os arquivos, que usei aqui.
Abrs.
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 18 de Dezembro de 2014, 19:46
Boa noite

Jorge _ Bh
Obrigado pelo incentivo e muito gratificante sim aprendi sob CNC e fiz a primeira em madeira conforme as fotos que postei aqui com essa intenção, mas ela já se desfez faz um tempo cheia de folgas, não aguentou o tranco, fiz outra de alumínio logo posto fotos dela aqui que já trabalhou bastante, mesmo estando incompleta.
Assim que tiver pelo menos um feito coloco as fotos sim. Abraços

andresinho obrigado.

Paulo_lumens,  passo o e-mail por mensagem privada, obrigado.

Minilathe, entendo sua posição sei que muita gente se aproveita da boa vontade dos outros, nunca se sabe quem e quem, mas mesmo assim agradeço pela ajuda que deu obrigado.

Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 18 de Dezembro de 2014, 20:39
Paulo

Eu faço a placa no proteus ou no PCB Wizard 3, Tango 2000, mas gost muito do Orcad 9.1, mas uso conforme o que vou fazer.

depois imprimo o desenho do pcb em impressora laser HP P1005 que tenho so para isso, com ela imprimo duas ou 3 vz ate ficar bem escuro.
Um dia vendo um site de radioamador fiz uma laminadora usando peças de uma impressora , e mais facil que passar a ferrro, e passo o desenho para a pcb depois que esfriou bem.

Em um reservatorio com água, tem uma bombinha de aquário que puxa a água do reservatório, no qual  tem uma  resistência e um controle de temperatura que fiz com um NTC, a água e aquecida ate uma temperatura de ate 40 graus mas mantenho com 25, que no meu caso tem tido bom resultado,
Essa água e levada pela bombinha aquecida para outro reservatório no qual esta apoiado em um sistema mecânico no qual um motor fica balançando o reservatório, este motor e controlado por um circuito no qual posso aumentar ou diminuir a velocidade, desta forma aumento ou diminuo o movimento da água aquecida dentro do reservatório, este reservatório para manter a temperatura da água coloquei isopor em volta com uma camada de fita adesiva envolvendo tudo.
Obs. o reservatório onde fica a resistência deve ser isolado para manter a temperatura usando isopor e fita adesiva larga, ou outra forma.
A água fica com temperatura boa e coloco o pcb com o papel dentro e com pouco tempo esta decolado o papel do pcb e o desenho esta intacto, caso aconteça alguma falha e só corrigir com caneta de retroprojetor. O segredo e não ter pressa mas em ate 30 minutos uma placa de tamanho A4 esta descolada do papel.

Tenho um parecido para usar com percloreto, mas a forma de levar o percloreto do reservatório de baixo para a bandeja  fiz usando o mesmo sistema das bombas peristálticas, que comprei em uma loja que realiza manutenção em equipamentos odontológicos, essas bombas são usadas em aparelhos de profi, marcas gnatus  ou usado em maquinas de recarga de cartuchos HP etc, vende com motor e compre as mangueira para ela de silicone ( neste link tem a foto http://produto.mercadolivre.com.br/MLB-587444285-bomba-peristaltica-1mlseg-12v-dc-_JM (http://produto.mercadolivre.com.br/MLB-587444285-bomba-peristaltica-1mlseg-12v-dc-_JM) ), o percloreto e corrosivo então verifique as mangueiras periodicamente e quando não for usar segue água para lavar as mangueiras, a temperatura tem  que ser ajustada e se quiser pode fazer um circuito para regular a velocidade do motor da bomba ela funciona com 24 vcc 400ma, fácil fazer um ckt.

ja fiz placas usando sistema fotográfico, mas e muito complicado e trabalhoso e para pouca coisas nem vale a pena mas para quantidade vale. depende do que quer fazer.
Tentei fazer com a CNC que fiz esta de alumínio, mas ficou horrivelllllll comprei as fresas para gravação com angulo de 30 1mm, 30, 4mm, 90 2mm, 60 3mm

mas sabe não dei sorte as trilhas eram destruídas, ai desisti, bem que gostaria de tentar novamente mas estou sem coragem.

Bem espero poder ter ajudado.

Abraços
Título: Re:Ajuda com PIC
Enviado por: andresinho em 18 de Dezembro de 2014, 21:13
Eu faço plaquinhas assim: Imprimo na impressora laser HP. (basta uma vez, qualidade normal, tonner original). papel comum. Da pra usar papel couche para ter trilhas mais bem definidas. 
Lixo a placa com lixa fina ( grão 300 ou 400). NÃO use bombril ou similar NUNCA pois fica polida e o tonner não gruda.
Uso ferro de passar, mas entre o ferro e o papel coloco duas ou tres camadas de tecido comum de algodão ( um lençol velho). Deixo uns 10 a 15 segundos pressionado.
Deixo esfriar e retiro o papel com água e sabão.  se ficar fiapos de papel, lave novamente.  Corrosão normal com percloreto um pouco aquecido.
O processo de impressão na placa e retirada do papel não leva mais de dois minutos!


Título: Re:Ajuda com PIC
Enviado por: minilathe em 19 de Dezembro de 2014, 07:16
Se quiser testar o programa que eu fiz é só marcar o arquivo .hex que enviei anteriormente, copiar e salvar o conteúdo num arquivo texto. Este arquivo deverá ser inserido no simulador Proteus (no modelo do PIC16F628A) - não são necessários outros arquivos para simular no Proteus.

Este mesmo arquivo .hex pode ser utilizado para gravar o PIC16F628A.

O arquivo com o programa fonte você também já tem, é só marcar o código que eu postei, copiar e salvar como um arquivo .c (programa fonte em linguagem C).

Alguma dúvida?
Título: Re:Ajuda com PIC
Enviado por: Jorge_BH em 19 de Dezembro de 2014, 08:10
... fiz outra de alumínio logo posto fotos dela aqui que já trabalhou bastante, mesmo estando incompleta...
Só uma pergunta; porque não usa a cnc pra fazer as plaquinhas de circuito impresso, ao invés de usar todo esse sistema trabalhoso com impressão, corrosão, etc?
Abç.
Jorge
Título: Re:Ajuda com PIC
Enviado por: lumens em 19 de Dezembro de 2014, 08:52
Também uso a impressora laser para placas com muitas trilha finas, para placas com poucas trilhas e mais grossas faço na cnc, para furação tenho usado a cnc.
Título: Re:Ajuda com PIC
Enviado por: andresinho em 19 de Dezembro de 2014, 08:58
Com um pouco de prática, garanto que em 2 minutos fica pronta usando o ferro de passar roupa.( contando o tempo de ir pegar o ferro de passar roupas :) ) Com um índice de acerto de 90%.
O único porém, é o tamanho máximo de placa que eu consigo, em torno de 10 x 15cm.  Para tamanhos maiores eu acho problemático pois fica um pouco fora de escala
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 19 de Dezembro de 2014, 20:02
Boa noite 
Minilathe vou colocar a extensão .c e .hex  e testar.

Jorge_BH

Não uso a CNC para fazer a Placa de circuito impresso depois em varias tentativas frustrantes, perder algumas placas de PCI, quebrar duas fresas, desisti. As trilhas eram destruídas durante o fresamento, e diverso erros aconteciam, tentei varias vz mas acabei desistindo. estra fresadora de alumínio era para ser usada para fazer placas de circuito e usar para fazer paineis etc em acrílico pvc, polímeros etc por isso falei que esta incompleta pois queria fazer varias coisas nela colocar encode que tava desenvolvendo, utilizando disco com códigos cheguei ate a fazer disco com três tipos de incremental, absoluto e gray, encontrei ate um programa que ajuda a crias os discos. A ideia era de fazer para usar na minha cnc em conjunto com o march3 ou adaptar para uso com outros programas, ia colocar o projeto aqui para os amigos que tem CNC montarem e usar nas suas maquinas, ia ate ficar legal poder ver num display os posicionamentos.

tava usando o PCITOGCODE e ate conversei com o autor por e-mail, desculpe me esqueci do nome dele, para sanar algumas duvidas e problemas que tava encontrando, mas o problema era o seguinte a fresa fazia uma trilha seus contornos, depois ia fazer uma outra do lado da que estava feita ai que complicava ela acabava destruindo a que tava feita, usava so para comer o cobre, usava fresa de gravação e ate v cut de 30 graus com 0,5 mm, 1mm, 2mm, entre outras, a fresa no caso era certa pois entre trilhas deixava ate 4mm de distancia então ela comia 1mm de cada trilha sobrava 2mm mas isso não acontecia.

Ai vc pensa o problema esta na fresadora, pensei isso, passei 4 meses ajustando ela antes de começar a usar.
a repetividade era de 0,01 de erro medido com micrometro digital. fiz ela desenhar numa chapa de aluminio com 4mm de espessura diversos quadrados começando de dentro sendo o primeiro com 40mm x 40mm e depois os outros obedecendo a seguinte medidas de distancias uma da outra 1mm, 1,5mm, 2mm, 3mm, 4mm, 5mm 10mm, 10mm, 5mm, 5mm depois círculos com as mesmas distancias, esse riscos com 1mm de profundidades spindler desligada só a fresa riscando o alumínio, isso para não ter a duvida sera que o motor esta com problema?
O resultado foi o esperado erro de 0,01mm em cada um, este erro para o que eu quero esta excelente não preciso de maior precisão.

Mas ate agora placa de circuito nada kkkkkkk

Mas to tomando coragem para tentar novamente, tava pensando em tratar uma placa de circuito impresso como se foce uma gravura, desbasto o que não interessa e mantenho o que interessa, mas acho que vai ser um processo muito demorado não sei ai fica mais fácil fazer com o andresinho falou.

Abraços.
Título: Re:Ajuda com PIC
Enviado por: minilathe em 20 de Dezembro de 2014, 08:10
Testei o programa no Proteus e corrigi alguns erros, segue versão testada.

Arquivo fonte:
Código: [Selecionar]
/*
 * File:   main.c
 * Author: Gil Pinheiro
 * IDE/Compiler: MPLAB-X / XC8 (Microchip)
 * Created on 16 de Dezembro de 2014, 22:54
 */
#include <xc.h>
#include <stdio.h>
#include <stdlib.h>

typedef unsigned int uint16;
typedef unsigned char uint8;

uint16 Contador=1;

#define Direita     RA1
#define Esquerda    RA0

void temporiza( uint16 );

/*
 *
 */
void main( void ) {
   
    TRISB = 0x0;    // Todos os bits da porta B são saídas
    TRISA = 0x03;  // Os bits 0 e 1 da porta A são entradas e de 2 a 7 saídas

    for(;;)         // Loop eterno
    {
        if (Direita == 0)
        {
            temporiza( 0x1 ); // Temporiza para evitar bouncing
            if(Direita == 0)
            {
                while (Direita == 0);
                if (Contador > 1) Contador >>= 1;
            }
        }

        if (Esquerda == 0)
        {
            temporiza( 0x1 ); // Temporiza para evitar bouncing
            if(Esquerda == 0)
            {
                while (Esquerda == 0);
                if (Contador < 0x0200) Contador <<= 1;
            }
        }

        PORTB = (uint8)~Contador;
        RA3 = ~(Contador>>8) & 1;
        RA4 = ~(Contador>>9) & 1;
        //temporiza( 0x0FF ); // Temporiza para tornar interface mais amigável

    }
}

void temporiza( uint16 i )
{
    uint16 a,b;
    for(a = 0; a < 0x00ff; a++)
        for(b = i; b > 0; b--);
}

Arquivo HEX:
Código: [Selecionar]
:02000000FA2FD5
:100EE20001340034F201F30100307302FF300319C0
:100EF2007202031808007108F501F5077008F40181
:100F0200F407750874040319902F0130F4020030BD
:100F1200031CF503F50275087404031D862F0130C6
:100F2200F2070318F30A0030F307752F8316031331
:100F320086010330850083128518B82F0130F00036
:100F42000030F1007327831203138518B82F851C14
:100F5200A82F00307902023003197802031CB82F3F
:100F620001300310F90CF80CFF3E031DB22F0518D7
:100F7200D32F0130F0000030F100732783120313E6
:100F82000518D32F051CC32F023079020030031934
:100F920078020318D32F01300310F80DF90DFF3E2C
:100FA200031DCD2F780986007908F7007808F6002E
:100FB2007708F600F7017618E22F831203138515DE
:100FC200E52F8312031385117908F7007808F600DC
:100FD20009300310F70CF60CFF3E031DEA2F7618BA
:100FE200F62F8312031305169C2F83120313051287
:0E0FF2009C2F7127F8007227F9008301972FBA
:00000001FF
Título: Re:Ajuda com PIC
Enviado por: minilathe em 20 de Dezembro de 2014, 11:23
Novo diagrama elétrico que utilizei no Proteus.
Título: Re:Ajuda com PIC
Enviado por: Angelo Farinhas em 21 de Dezembro de 2014, 21:01
Gil Pinheiro  obrigado, tava testando no proteus no sábado e tava dando erro, como tive que sair parei, ia ver na segunda o que tava acontecendo e postar, segunda testo com esse.
Título: Re:Ajuda com PIC
Enviado por: sandrocgrj em 01 de Maio de 2017, 01:11
Olá Gil Pinheiro .
Sei que este tópico já tem bastante tempo !
Estava fazendo uma pesquisa na internet para um circuito que, com duas teclas, selecionasse alguns relés. Já tinha pesquisado a possibilidade de usar um CI como o SN74192 , para desenvolver um circuito pra usar aqui em casa.
Achei muito interessante quando vi esse tópico, principalmente na ideia do amigo Angelob de ajudar crianças com deficiência. Não é todo dia que se encontra pessoas assim prontas para ajudar o próximo.
Esse seu último que você atualizou, montei aqui no Proteus e consegui rodar muito bem com o arquivo em hex.
Gostaria de uma ajuda. Como sou muito principiante em programação C, fiz um básico mas uso esporadicamente, então tenho bastante dúvida.
Qual compilador usou para gerar o arquivo hex ? No caso desse projeto, está usando oscilador interno do PIC ? Eu uso o PIC C Compiler da CCS.
Vi no projeto, que tem que apertar a tecla toda vez para aumentar ou diminuir de nível. Teria como fazer uma modificação para quando manter a tecla pressionada por um longo tempo, os níveis mudariam constante num intervalo de pelo menos 500ms ?
Eu ficaria muito agradecido se pudesse me ajudar. Desde já agradeço atenção.
Att, Sandro Cavalcanti
Título: Re:Ajuda com PIC
Enviado por: minilathe em 01 de Maio de 2017, 09:41
 Bom dia.

Eu usei assembler, como sempre fazia com o PIC, pois tem pouca memória e eu sempre procurei otimizar meus códigos em espaço de memória e tempo de execução. Faz tempo que não uso o PIC. Já troquei até de computador duas vezes, mas, devo ter um back-up.
Título: Re:Ajuda com PIC
Enviado por: sandrocgrj em 02 de Maio de 2017, 00:00
Obrigado pela atenção.
Ficarei no aguardo .