Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== Martin RoboScan 812 DMX scanner + Arduino ====== {{:martin-roboscan-812.png?200 |}} Stuur met een Arduino een discolamp aan. Voor DMX adressen en functies van de Martin RoboScan 812 zie datasheet: [[https://tdvenlo.nl/wiki/lib/exe/fetch.php?media=um_roboscan812_en_c_original.pdf|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. {{:dmx_box.jpeg?200|}} {{:dmx_cable.jpeg?200|}} 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. <code c++> #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 } </code> projects/dmx_roboscan.txt Last modified: 2020/08/19 20:16by ron