Olá LG.
tenho um arduino uno com ethernet shield e estou recebendo pacotes do protocolo artnet. Resumindo são 512 valores (canis) entre 0 e 255. preciso mandar todos os 512 valores para outro arduino via SPI ou outro tipo de comunicação.
no arduino mestre eu testei enviar um valor (canal 1) e funciona bem.
digitalWrite(ssPin, LOW);
for (int i = 0; i < 512; i++)
{
SPI.transfer(data[0]);
}
digitalWrite(ssPin, HIGH);
como podem ver ele roda 512 vezes mas eu só mandei o canal 1 (data[0])
no arduino slave eu fiz assim:
volatile boolean received_flag; // flag de recebimento de dado
received_flag = false;
int received_data;
void loop () {
if (received_flag){
analogWrite(6,received_data);
received_flag = false;
}
}
ISR (SPI_STC_vect) {
received_data = SPDR;
received_flag = true;
}
isto funciona bem mas agora quero mandar os 512 canais e no slave eu receber estes 512 canais. Não preciso guardar ele pois vou usar em uma saida. Exemplo:
for (int i=0;i<512;i++){
DMXsaida (i,dado recebido do SPI i);
}
cada dmxsaida deve ser igual ao que eu mandei no master.
alguma ideia e como mandar e receber 512 valores int em um arduino uno via SPI ou outra comunicação.
Tags:
Esta um pouco confuso de entender, mas acho que você esta querendo enviar um array de dados, é isso ?
Você pode enviar todos os Bytes recebidos do protocolo Artnet para um array de 512 bytes (buffer)
Depois descarrega o Buffer no Arduino Slave.
https://www.arduino.cc/en/Tutorial/SPIEEPROM
https://www.arduino.cc/en/Reference/Array
Boa noite N.
Porque você não utiliza o RS485 entre o "Master" e o slave?
No protocolo DMX512, é "padrão" o uso do interface RS485.
RV
Estou tentando entender.
eu coloquei isto no Master.
char canais [512];
digitalWrite (sspin,LOW);
for (int i=0;i<512;i++){canais [i] = data[i] } //data[i] são os canais do artnet
digitalWrite (sspin,HIGH);
Esta certo este codigo no master?
se estiver eu não sei receber lá no Slave. dei uma olhada mas to meio perdido.
Boa noite N.
Anexa um arquivo com seu sketch, clicando em "Deseja carregar arquivos? "
Ai fica mais f'ácil de entender a dificuldade.
RV
Bom. acho que esta tudo errado que eu fiz mas vamos lá. kk
Artnet para SPI: https://pastebin.com/VQ0CUtqW
SPI par DMX: https://pastebin.com/e9bHYR7D
Olhei alguns tutoriais mas me perdi.
Bom dia N.
Fiz avanços no Arduino DUE.
Queira avaliar com vc.
RV
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por