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