Bom dia Garagistas...

 

Estou nesse projeto faz uns 2 anos, parei, voltei, parei e voltei agora pra finalizar.

Por não entender como funciona a comunicação I2c e querer fazer um negócio próprio e simples, parti para o desenvolvimento do meu código.

A minha ideia é a seguinte:

Com um pino (TX) do MC master (no caso o master é um arduino) vc controla quantos pics quiser ligando um por um em cascata, cada pic eu controlo as oito portas A e um LCD.

Criei uma lista de código fixos que ao enviar carácter por carácter o pic identifica e faz o que está gravado no seu código.

Por exemplo:

 

Para enviar uma mensagem para o primeiro pic digito o seguinte código no arduino no link abaixo:

 

https://pastebin.com/Cf2yE4FY

 

E assim por diante.

 

Posso controlar cada porta A dando um output_toggle, output_low ou output_high com um código diferente de apenas três caracteres.

Posso vincular essas mesmas portas no timer0 ou timer1 cada uma independente programando cada uma com o seu tempo.

A porta A7 vem com um contador para ligar o Led do LCD se receber qualquer comando pela serial podendo alterar seu tempo.

 

Esse é apenas uma visão por cima do que ele pode fazer.

 

Vou disponibilizar todo os códigos que fiz.

 

Ainda estou trabalhando na parte do arduino para fazer um menu inicial que vc configura do seu jeito e o mesmo grava essa configuração em um cartão SD (se alguém quiser ajudar eu agradeço, estou longe dessa parte).

 

Vou disponibilizar um esquema no protheus um código do arduino para teste e o código do PIC.

 

Agradeço desde já e toda ajuda é bem-vinda.

Exibições: 633

Anexos

Responder esta

Respostas a este tópico

Bom, depende de como você vai usar se for ( o escravo recebe dados apenas, nenhuma problema) você vai ter que criar um protocolo de comunicação com endereçamentos e tudo mais, repare que quando você envia um comando do Arduino, todos os pic's vão receber o comando.  Agora se for, os escravos também mandam dados ao mestre ai complica. O RS232, é somente ponto a ponto. Te recomendo usar o protocolo RS - 485; que funciona muito melhor para comunicação com múltiplos escravos, se quiser te mando um projeto que fiz na faculdade, onde controlo um PIC16f877A pelo serial do PC; 

Arduino só envia e pic só recebe.

Quando o arduino manda pro primeiro só o primeiro recebe, se for pra mandar pro 3 ai vai por cascata.

Para burlar o quesito protocolo, enviei a quantidade total de caracteres, pois não faço ideia de como fazer um protocolo.

Vou analisar seu projeto.

Voce envia um sequencia de bytes, digamos 5 bytes, byte[0] = inicio de mensagem, byte[1] = endereço, byte[2] = dado[0], byte[3] = dado[1], byte[4] = fim de mensagem; isso no Arduino, não sei como funciona porque não sei usar Arduino.

Mas tem que ser um byte apenas, ou seja, um valor de 0 - 255; de cada vez. Essa sequencia de bytes que te falo, é esse um protocolo bem simples;

Ai voce pode usar todos conectar todos pinos RX dos PIC no TX do Arduino;

o problema é q a leitura é feita por caracteres. eu faço um laço para ele ler esse carácter, se eu conseguisse ler mais de um de uma vez só seria bom. tem alguma ideia?

Boa tarde SBM,

Se  for só pra economizar port do arduino, recomendo usar o LCD com PCF8574.

Voce só usa dois ports e pode ligar até oito displays.

RV

Mas o LCD quem controla é o PIC e não o Arduino;

Todos os softwares foram escritos em C e o compilador usado para o PIC é o MikroC;

Anexos

Pessoal, fiz umas alterações no código, deixei mais automatizado:

criei umas funções no arduino que conta os caracteres e envia para o pic antes das msgs.

https://pastebin.com/BiFc5M7d

o pic recebe e faz loops para completar as variáveis e trabalhar com elas

https://pastebin.com/HTtYHWTf

segue um exemplo com a palavra ok na segunda linha na 10 coluna.

para enviar para o segundo pic:

código 30a

tamanho do tamanho da escrita 2

tamanho da escrita 12

codigo para escrever no LCD 41a

tamanho de x 2

x 10

tamanho de y 1

y 2

tamanho do tamanho da msg 1

tamanho da msg 2

msg ok

estou tendo problema para enviar para o terceiro pic

------------------------------------------

para enviar para o terceiro pic

código 30a

tamanho do tamanho da escrita 2

tamanho da escrita 18

código 30a

tamanho do tamanho da escrita 2

tamanho da escrita 12

codigo para escrever no LCD 41a

taanho de x 2

x 10

tamanho de y 1

y 2

tamanho do tamanho da msg 1

tamanho da msg 2

msg ok

total: 12

o meu problema é como diminuir essas duas partes:

tamanho do tamanho da escrita 2

tamanho da escrita 18

para vários pics....

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço