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:
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.
Tags:
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;
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.
o pic recebe e faz loops para completar as variáveis e trabalhar com elas
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....
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por