Martin RoboScan 812 DMX scanner + Arduino
Stuur met een Arduino een discolamp aan. Voor DMX adressen en functies van de Martin RoboScan 812 zie datasheet: Klik.
DMX box
Koppel met het DMX doosje een uitgang van de Arduino aan de DMX kabel. Het DMX doosje heeft 3 verbindingen met de Arduino nodig:
- 5V (Led indicator)
- Data
- GND
Het datapinnetje kan op elke digitale pin van de arduino worden verbonden. Gebruik de library DmxSimple om met de Arduino een DMX signaal uit te sturen.
Work in progress
Gemaakt door Ron.
Arduino demoprogramma
Zoek en installeer de library DmxSimple in de “Library Manager” van Arduino. (Sketch > Include library > Manage Libraries) De Arduino die aan het DMX doosje hangt is een Arduino Nano. Board: Arduino Nano, Processor: ATmega328P (Old Bootloader). Kopiëer en plak het onderstaande programma in een lege Arduino sketch.
#include <DmxSimple.h> //Laden van DMX library /* Martin RoboScan 812 datasheet: https://www.martin.com/en/products/roboscan-812 De Martin RoboScan heeft 7 kanalen in "vector mode". De verschillende standen van deze 7 kanalen kun je vinden op pagina 16. Kijk dan naar "DMX Values" (0 tot 255). Pin 3 wordt als datapin gebruikt. Deze demo bestaat uit 7 delen: 1: Initialiseren 2: Bewegen 3: Kleurenwiel. Vaste kleuren kiezen 4: Gobowiel. Vaste Gobo's kiezen 5: Kleurenwiel laten scrollen 6: Gobowiel laten scrollen 7: Willekeurige kleur- en gobocombinaties Open de seriele monitor voor actuele informatie. */ void setup() { // put your setup code here, to run once: DmxSimple.usePin(3); //Pin 3 als datapin gebruiken Serial.begin(9600); //Starten van de seriele verbinding } void loop() { // put your main code here, to run repeatedly: delay(2000); //================= 1: Initialiseren ==================// Serial.println("\n1: Initialiseren"); //DmxSimple.write(kanaal, waarde); DmxSimple.write(1, 255); //Lamp aanzetten DmxSimple.write(2, 236); //Kleur: Wit DmxSimple.write(3, 236); //Gobo: Open DmxSimple.write(4, 127); //Pan: Midden (0=Links, 255=Rechts) DmxSimple.write(5, 127); //Tilt: Midden (0=Boven, 255=Onder) DmxSimple.write(6, 0); //Bewegingssnelheid: Tracking enabled DmxSimple.write(7, 0); //Kleur/Gobosnelheid: Tracking enabled delay(2000); //================= 2: Bewegen ==================// Serial.println("\n2: Bewegen"); for(byte i=0; i<4;i++){ //4 keer herhalen DmxSimple.write(4, 0); //Pan: Links DmxSimple.write(5, 0); //Tilt: Boven delay(1000); DmxSimple.write(4, 255); //Pan: Rechts DmxSimple.write(5, 0); //Tilt: Boven delay(1000); DmxSimple.write(4, 255); //Pan: Rechts DmxSimple.write(5, 255); //Tilt: Onder delay(1000); DmxSimple.write(4, 0); //Pan: Rechts DmxSimple.write(5, 255); //Tilt: Onder delay(1000); } //Op het plafond schijnen: DmxSimple.write(4, 80); //Pan: Midden (0=Links, 255=Rechts) DmxSimple.write(5, 230); //Tilt: Midden (0=Boven, 255=Onder) delay(2000); //================= 3: Kleurenwiel. Vaste kleuren kiezen ==================// Serial.println("\n3: Kleurenwiel. Vaste kleuren kiezen"); for(byte i=0; i<=12;i++){ if(i==0){ Serial.println("\tKleur: Zwart") ;} if(i==1){ Serial.println("\tKleur: Wit") ;} if(i> 1){ Serial.println("\tKleur: Kleur "+String(i-1));} DmxSimple.write(2, 242-5*i); //Kleur: kleur i delay(1000); } DmxSimple.write(2, 236); //Kleur: Wit delay(2000); //================= 4: Gobowiel. Vaste Gobo's kiezen ==================// Serial.println("\n4: Gobowiel. Vaste Gobo's kiezen"); for(byte i=0; i<=12;i++){ if(i==0){ Serial.println("\tGobo: Dicht") ;} if(i==1){ Serial.println("\tGobo: Open") ;} if(i> 1){ Serial.println("\tGobo: Gobo "+String(i-1));} DmxSimple.write(3, 242-5*i); //Gobo: gobo i delay(1000); } DmxSimple.write(3, 236); //Gobo: Open delay(2000); //================= 5: Kleurenwiel laten scrollen ==================// Serial.println("\n5: Kleurenwiel laten scrollen"); for(byte i=0; i<=180;i++){ DmxSimple.write(2, i); if(i%5==0){Serial.println("\tKleur: "+String(i));} delay(40); } delay(1000); DmxSimple.write(2, 236); //Kleur: Wit delay(2000); //================= 6: Gobowiel laten scrollen ==================// Serial.println("\n6: Gobowiel laten scrollen"); for(byte i=0; i<=180;i++){ DmxSimple.write(3, i); if(i%5==0)Serial.println("\tGobo: "+String(i)); delay(40); } delay(1000); DmxSimple.write(3, 236); //Gobo: Open delay(2000); //================= 7: Willekeurige kleur- en gobocombinaties ==================// Serial.println("\n7: Willekeurige kleur- en gobocombinaties"); for(byte i=0; i<=10; i++){ byte kleur = random(1,12); byte gobo = random(1,12); if(kleur==1){ Serial.print("\tKleur: Wit") ;} if(kleur> 1){ Serial.print("Kleur: Kleur "+String(kleur-1));} Serial.print(" "); if(gobo==1){ Serial.println("Gobo: Open") ;} if(gobo> 1){ Serial.println("Gobo: Gobo "+String(gobo-1));} DmxSimple.write(2, 242-5*kleur); //Gobo : Gobo i DmxSimple.write(3, 242-5*gobo ); //Kleur: Kleur i delay(1500); } delay(1000); DmxSimple.write(2, 236); //Kleur: Wit DmxSimple.write(3, 236); //Gobo: Open }
Backlinks: