Instantly share code, notes, and snippets.
Created Feb 28, 2018
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
Edited 'sACN intro.ino' for using a push button | |
It requires 'arduino_secrets.h'file with SSID and password info. | |
This sketch creates a sACN packet, then uses it to send | |
fade information to an sACN receiver. | |
This was originally tested with a DMXKing eDMX1 Pro | |
and a Coemar LEDko Revlection series spot. | |
https://dmxking.com/artnetsacn/edmx1-pro | |
http://www.coemar.com/bin/index.php?id=22&serie=2&lng=en&tipologia=1 | |
Channels used on the LEDko reflection: | |
1 - brightness | |
2 - red | |
3 - green | |
4 - blue | |
You'll also need to add a tab to your sketch called arduino_secrets.h | |
for the SSID and password of the network to which you plan to connect, | |
as follows: | |
#define SECRET_SSID "ssid" // fill in your value | |
#define SECRET_PASS "password" // fill in your value | |
created 17 Jan 2018 | |
updated 19 Feb 2018 | |
by Tom Igoe | |
*/ | |
#include <SPI.h> | |
#include <WiFi101.h> | |
//#include <ESP8266WiFi.h> // This should work with the ESP8266 as well. | |
#include <WiFiUdp.h> | |
#include <sACNSource.h> | |
#include "arduino_secrets.h" | |
WiFiUDP Udp; // instance of UDP library | |
sACNSource myController(Udp); // Your Ethernet-to-DMX device | |
char receiverAddress[] = "128.122.151.182"; // sACN receiver address | |
int myUniverse = 1; // DMX universe | |
char myDevice[] = "myDeviceName"; // sender name | |
char myUuid[] = "130edd1b-2d17-4289-97d8-2bff1f4490fb"; // sender UUID | |
int btn = 13; | |
int led = 14; | |
int buttonState = 0; // current state of the button | |
int lastButtonState = 0; | |
void setup() { | |
Serial.begin(9600); | |
// while you're not connected to a WiFi AP, | |
while ( WiFi.status() != WL_CONNECTED) { | |
Serial.print("Attempting to connect to Network named: "); | |
Serial.println(SECRET_SSID); // print the network name (SSID) | |
WiFi.begin(SECRET_SSID, SECRET_PASS); // try to connect | |
delay(2000); | |
} | |
// initialize sACN source: | |
myController.begin(myDevice, myUuid, myUniverse); | |
// When you're connected, print out the device's network status: | |
IPAddress ip = WiFi.localIP(); | |
Serial.print("IP Address: "); | |
Serial.println(ip); | |
pinMode(btn, INPUT); | |
pinMode(led, OUTPUT); | |
// set DMX channel values to 0: | |
for (int dmxChannel = 1; dmxChannel < 513; dmxChannel++) { | |
myController.setChannel(dmxChannel, 0); | |
} | |
} | |
void loop() { | |
buttonState = digitalRead(btn); | |
if (buttonState != lastButtonState) { | |
if (buttonState == HIGH) { | |
myController.setChannel(81, 20); | |
myController.setChannel(61, 20); | |
digitalWrite(led, HIGH); | |
} else { | |
myController.setChannel(81, 0); | |
myController.setChannel(61, 0); | |
digitalWrite(led, LOW); | |
} | |
myController.sendPacket(receiverAddress); | |
} | |
lastButtonState = buttonState; | |
// // fade up: | |
// for (int level = 0; level < 256; level++) { | |
// myController.setChannel(3, level); // set channel 1 (brightness) | |
// Serial.println(level); // print level | |
// myController.sendPacket(receiverAddress); // send the data | |
// delay(100); // wait .1 second | |
// } | |
// delay(1000); | |
// | |
// // fade down: | |
// for (int level = 255; level >= 0; level--) { | |
// myController.setChannel(3, level); // set channel 1 (brightness) | |
// Serial.println(level); // print level | |
// myController.sendPacket(receiverAddress); // send the data | |
// delay(100); // wait .1 second | |
// } | |
// delay(1000); | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment