DMX com Arduino – Controle PARLED, LUZ e outros dispositivos DMX – Simule uma controladora DMX-512

Neste vídeo vamos criar um projeto que irá enviar sinais DMX e assim controlar PARLED, maquina de fumaça e dispositivos que usam o padrão DMX. Poderemos ligar e desligar dispositivos e também controlar a intensidade da luz!

Esse projeto será base para o próximo vídeo, onde iremos receber sinais DMX, tanto deste projeto quando direto de mesas controladoras de LUZ, como a famosa DMX-512

Apresentação: Júlio Vansan Gonçalves

Principais Materiais:

  • Arduino
  • Módulo RS485
  • Potenciômetro
  • Botões
/*
  DMX Fade

  This sketch fades the value of DMX channel 1 between 0 and 255 in steps to create a fade effect.
  All other slots are set to a value of 0.

  Circuit:
   - DMX light
   - MKR board
   - MKR 485 shield
     - ISO GND connected to DMX light GND (pin 1)
     - Y connected to DMX light Data + (pin 2)
     - Z connected to DMX light Data - (pin 3)
     - Jumper positions
       - Z \/\/ Y set to ON

  created 5 July 2018
  by Sandeep Mistry
*/

#include <ArduinoRS485.h> // the ArduinoDMX library depends on ArduinoRS485
#include <ArduinoDMX.h>

const int universeSize = 192;

int brightness = 0;
int fadeAmount = 5;

unsigned long previousMillis = 0;
const long interval = 300;

void setup() {
  Serial.begin(9600);
  while (!Serial);

  // initialize the DMX library with the universe size
  if (!DMX.begin(universeSize)) {
    Serial.println("Failed to initialize DMX!");
    while (1); // wait for ever
  }
}

void loop() {
  // set the value of channel 1
  DMX.beginTransmission();
  DMX.write(177, brightness);
  DMX.write(178, brightness);
  DMX.write(180, brightness);
  DMX.endTransmission();
  
  unsigned long currentMillis = millis();
  
  if (currentMillis - previousMillis >= interval) {
      previousMillis = currentMillis;

    // change the brightness for the next round
    brightness += fadeAmount;

  // reverse fade direction when on edge of range
  if (brightness <= 0 || brightness >= 255) {
    fadeAmount = -fadeAmount;
  }
  }
  // delay for dimming effect
  delay(30);
}

/*
  DMX Fade

  This sketch fades the value of DMX channel 1 between 0 and 255 in steps to create a fade effect.
  All other slots are set to a value of 0.

  Circuit:
   - DMX light
   - MKR board
   - MKR 485 shield
     - ISO GND connected to DMX light GND (pin 1)
     - Y connected to DMX light Data + (pin 2)
     - Z connected to DMX light Data - (pin 3)
     - Jumper positions
       - Z \/\/ Y set to ON

  created 5 July 2018
  by Sandeep Mistry
*/

#include <ArduinoRS485.h> // the ArduinoDMX library depends on ArduinoRS485
#include <ArduinoDMX.h>

const int universeSize = 192; //maximo de canais
const int pot=A0;
int brilho_1 = 0;
int brilho_2 = 0;
int brilho_3 = 0;
int brilho_4 = 0;
int brilho_5 = 0;

int canal_1=177;
int canal_2=canal_1+1;
int canal_3=canal_1+2;
int canal_4=canal_1+3;
int canal_5=canal_1+4;

const int bt2=5;
const int bt3=6;
const int bt4=7;
const int bt5=8;

int valorBt2=0;
int valorBt3=0;
int valorBt4=0;
int valorBt5=0;
int anteriorBt2 = 0;
int anteriorBt3 = 0;
int anteriorBt4 = 0;
int anteriorBt5 = 0;
int estado_2 = LOW;
int estado_3 = LOW;
int estado_4 = LOW;
int estado_5 = LOW;

void setup() {
  Serial.begin(9600);
  while (!Serial);

  // initialize the DMX library with the universe size
  if (!DMX.begin(universeSize)) {
    Serial.println("Failed to initialize DMX!");
    while (1); // wait for ever
  }
  pinMode(bt2,INPUT_PULLUP);
  pinMode(bt3,INPUT_PULLUP);
  pinMode(bt4,INPUT_PULLUP);
  pinMode(bt5,INPUT_PULLUP);
}

void loop() {
  int valorPot=analogRead(pot);
  brilho_1=map(valorPot,0,1023,0,255);
  valorBt2 = digitalRead(bt2);
  valorBt3 = digitalRead(bt3);
  valorBt4 = digitalRead(bt4);
  valorBt5 = digitalRead(bt5);

  if (valorBt2 == LOW && anteriorBt2 == HIGH) {
    estado_2 = !estado_2;
    if(estado_2){
      brilho_2=255;
    }else{
      brilho_2=0;
    }
  }
  anteriorBt2=valorBt2;
  if (valorBt3 == LOW && anteriorBt3 == HIGH) {
    estado_3 = !estado_3;
    if(estado_3){
      brilho_3=255;
    }else{
      brilho_3=0;
    }
  }
  anteriorBt3=valorBt3;
  if (valorBt4 == LOW && anteriorBt4 == HIGH) {
    estado_4 = !estado_4;
    if(estado_4){
      brilho_4=255;
    }else{
      brilho_4=0;
    }
  }
  anteriorBt4=valorBt4;
  if (valorBt5 == LOW && anteriorBt5 == HIGH) {
    estado_5 = !estado_5;
    if(estado_5){
      brilho_5=255;
    }else{
      brilho_5=0;
    }
  }
  anteriorBt5=valorBt5;
   
  

  
  // Manda Valores DMX
  DMX.beginTransmission();
  DMX.write(canal_1, brilho_1);
  DMX.write(canal_2, brilho_2);
  DMX.write(canal_3, brilho_3);
  DMX.write(canal_4, brilho_4);
  DMX.write(canal_5, brilho_5);
  DMX.endTransmission();

  // delay for dimming effect
  delay(30);
}

Link para outros projetos:
https://projetobacana.com.br

#Arduino #DMX #DMX512 #PARLED #iluminação #maker #automação #microcontrolador #DIY #façavocemesmo #tcc #sugestãoTCC #Projeto

Curta, compartilhe e inscreva-se para ficar atualizado com os nossos conteúdos!
Para saber mais sobre o Canal Projeto Bacana:
E-mail: contato@projetobacana.com.br
Site: https://www.projetobacana.com.br/
Facebook: https://www.facebook.com/projetobacana.com.br
Instagram: https://www.instagram.com/vansanjulio
Youtube: https://www.youtube.com/ProjetoBacana