Ir ao conteúdo
  • Cadastre-se

Cristian Biasuz Lemos

Membro Júnior
  • Posts

    4
  • Cadastrado em

  • Última visita

Reputação

0
  1. Delpitec, obrigado pela ajuda, você teria algum exemplo deste ditpo de comunicação? estou usando o compilador CCS.
  2. Olá pessoal, Estou com uma certa dificuldade para realizar uma "configuração" que nunca fiz, preciso da ajuda de você. Estou criando um sistema de monitoramento para um elevador de carga, este sistema de monitoração vai monitorar cada porta deste elevador, sendo que vão ser cerca de 27 portas, estas portas tem uma chave fim de curso que me da uma sinal quando aberta ou fechada. Pra mim fica difícil ter que puxar um cabo para cada porta para monitorar até porque o clp que estou usando é limitado, então pensei em usar um sistema de que consiste no seguinte: Em cada porta vou colocar uma placa (PCI) com um microcontrolador pic16f688, este pic entre outras funções vai monitorar se a porta esta aberta ou fechada, por exemplo: ...... if(input_pinA0){ output_high(pin_C0); } output_low(pin_C0); Ou seja quando o sensor que estará ligado ao pino A0 for acionado identificando a abertura da porta, o pino C0 vai se tornar "alto" para acionar um led que indica que a porta esta aberta, porém alem disso preciso que seja enviada um bit ou byte via RS485 para o clp, o qual só possui comunicação RS485, informando que a porta X esta aberta. sei como fazer toda a programação, mas não sei como fazer esta rede RS485 entre pics, estou com 2 clp e uma ihm em rede e preciso usar os pics para fazer o monitoramento.
  3. @venturafvj Opa beleza obrigado pela dica adicionado 1 minuto depois Opa amigo beleza.... Cara obriga fiz da forma que me explicou e deu certinho, segue como fiz: #include <contador.h> #include <flex_204A.c> int16 X; void main() { lcd_init(); delay_ms(50); output_high(pin_e2); lcd_gotoxy(5, 1); printf(lcd_putc,"QUANTIDADE:"); while(TRUE) { if( input(pin_d0)==1) {delay_ms(50); if (input(pin_d0) ==1) X++; lcd_gotoxy(7, 2); printf(lcd_putc," "); lcd_gotoxy(7, 2); printf(lcd_putc,"%lu",X); } if( input(pin_d1)==1) {delay_ms(50); if (input(pin_d1) ==1) lcd_gotoxy(7, 2); printf(lcd_putc," "); lcd_gotoxy(7, 2); printf(lcd_putc,"%lu",X); } } } Obrigado!
  4. Fala galera! Estou com uma dificuldade, estou montando uma automação para uma maquina que que fabrica uma determinada peça, esta peça depois de pronta cai em uma esteira de transporte nesta esteira instalei um sensor infra-vermelho que cada vez que passa uma peça por ele aciona um relê e manda um pulso, até aí tudo certo, minha duvida vem agora, estou montando um controlador que dentre outras funções terá a seguinte: cada vez que receber este pulso (pino D0) vai incrementar 1 na variável X e imprimir o resultado no display de LCD e se uma peça estiver com defeito que for descartada ela passa por um segundo sensor ( pino D1) que vai decrementar 1 na variável e imprimir o resultado no display... Segue abaixo como estou fazendo ( só lembrando estou programando no PIC CCS ) #include <contador.h> #include <flex_204A.c> int X; void main() { lcd_init(); delay_ms(50); output_high(pin_e2); lcd_gotoxy(5, 1); printf(lcd_putc,"QUANTIDADE:"); while(TRUE) { if( input(pin_d0)==1) {delay_ms(200); if (input(pin_d0) ==1) X = X+1; lcd_gotoxy(7, 2); printf(lcd_putc," "); lcd_gotoxy(7, 2); printf(lcd_putc,"%d",X); } if( input(pin_d1)==1) {delay_ms(200); if (input(pin_d1) ==1) X = X-1; lcd_gotoxy(7, 2); printf(lcd_putc," "); lcd_gotoxy(7, 2); printf(lcd_putc,"%d",X); } } } O LCD funciona perfeito, a incrementação e decrementação esta funcionando também o meu problema é que começa a contar 1,2,3,4....127 até o 127 conta normal quando soma mais uma peça ele passa para -128 e aí por diante,-127,-126,-125... até 0. Como esta maquina faz em torno de 1.000 peças por ciclo, não tenho como trabalhar assim. Provavelmente seja alguma coisa que estou fazendo errado, penso até que seja na declaração da variável, mas já tentei de tudo e nada deu certo... PS: quando mudei a variável para float X e a impressão no display para %f deu certo, soma certo porém aparece 1.00,2.00,3.00...1000.00, como as peças são números inteiros, não quero ter que usar números reais. Se alguém puder revisar e me ajudar agradeço.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...