Hej gerd.
Jeg er ved at lave en DMX styring af en "billig" lys kanon jeg har købt i Kina land.
Den virker sådan set fin nok.
Men det går galt fra (code 128) Der er det bare det samme tegn den viser.
Jeg finder musikken til vores Festival her i Stevning på Als, og har tænkt mig at bruge den til f.eks at skrive bandes navn, som spiller.
Skal nok lægge en video op, når den spiller som jeg ønsker det.
Min næste opgave er så at få "teksten" til ligesom at scrolle, som i en lysavis.
Men C er IKKE mit modermål, så der er en masse at lære.
Men ind til nu ser det OK ud, med untagelse af de Danske tegn, for fra code 128 er de alle ens, ved PT ikke lige hvad der sker.
// - - - - -
// DmxSerial - A hardware supported interface to DMX.
// DMXSerial works in the background and constantly sends the actual values over the DMX interface.
// The actual values are also available on the built in PWM ports:
//
// Copyright (c) 2011-2015 by Matthias Hertel, http://www.mathertel.de
// This work is licensed under a BSD style license. See http://www.mathertel.de/License.aspx
//
// Documentation and samples are available at http://www.mathertel.de/Arduino
// The repository is on github : https://github.com/mathertel/DMXSerial
// The repository on github is made available in the Arduino Library Manager.
//
// 25.07.2011 creation of the DmxSerial library.
// 10.09.2011 fully control the serial hardware register
// without using the Arduino Serial (HardwareSerial) class to avoid ISR implementation conflicts.
// 01.12.2011 include file and extension changed to work with the Arduino 1.0 environment
// - - - - -
#include <DMXSerial.h>
/*
Fra DMX Blå ledning til PIN 19
Fra DMX Grå ledning til PIN 13
Fra DMX Grøn ledning til PIN 18
*/
const byte f8x8[160][8] = {
{B11111111, B11111111, B11111111, B11111111, B11111111, B11111111, B11111111, B11111111} , // ' '
{B11111111, B11111111, B11111001, B10100000, B11111001, B11111111, B11111111, B11111111} , // '!'
{B11111111, B11111111, B11111000, B11111111, B11111111, B11111000, B11111111, B11111111} , // '"'
{B11111111, B11101011, B10000000, B11101011, B11101011, B10000000, B11101011, B11111111} , // '#'
{B11111111, B11011011, B11010101, B10010100, B10010100, B11010101, B11101101, B11111111} , // '$'
{B11111111, B10111001, B11011001, B11101111, B11110111, B10011011, B10011101, B11111111} , // '%'
{B11001111, B10110101, B10111010, B10110010, B11001101, B10110111, B10110111, B11111111} , // '&'
{B11111111, B11111111, B11111011, B11111100, B11111111, B11111111, B11111111, B11111111} , // '''
{B11111111, B11100011, B11011101, B10111110, B11111111, B11111111, B11111111, B11111111} , // '('
{B11111111, B11111111, B10111110, B11011101, B11100011, B11111111, B11111111, B11111111} , // ')'
{B11110111, B11010101, B11100011, B11100011, B11100011, B11010101, B11110111, B11111111} , // '*'
{B11111111, B11110111, B11110111, B11000001, B11110111, B11110111, B11111111, B11111111} , // '+'
{B11111111, B11111111, B10111111, B11001111, B11111111, B11111111, B11111111, B11111111} , // ','
{B11111111, B11110111, B11110111, B11110111, B11110111, B11110111, B11110111, B11111111} , // '-'
{B11111111, B11111111, B11111111, B10011111, B11111111, B11111111, B11111111, B11111111} , // '.'
{B11111111, B10111111, B11011111, B11101111, B11110111, B11111011, B11111101, B11111111} , // '/'
{B11111111, B11000001, B10011110, B10101110, B10110110, B10111010, B11000001, B11111111} , // '0'
{B11111111, B10111011, B10111101, B10000000, B10111111, B10111111, B11111111, B11111111} , // '1'
{B11111111, B10011101, B10101110, B10101110, B10110110, B10110110, B10011001, B11111111} , // '2'
{B11111111, B11011101, B10111110, B10110110, B10110110, B10110110, B11001001, B11111111} , // '3'
{B11101111, B11100111, B11101011, B10101101, B10000000, B10101111, B11101111, B11111111} , // '4'
{B11111111, B11011000, B10111010, B10111010, B10111010, B10111010, B11000110, B11111111} , // '5'
{B11111111, B11000011, B10110101, B10110110, B10110110, B10110110, B11001111, B11111111} , // '6'
{B11111111, B11111100, B11111110, B10001110, B11110110, B11111010, B11111100, B11111111} , // '7'
{B11111111, B11001001, B10110110, B10110110, B10110110, B10110110, B11001001, B11111111} , // '8'
{B11111111, B11111001, B10110110, B10110110, B10110110, B11010110, B11100001, B11111111} , // '9'
{B11111111, B11111111, B11111111, B10011001, B11111111, B11111111, B11111111, B11111111} , // ':'
{B11111111, B11111111, B10111111, B11001001, B11111111, B11111111, B11111111, B11111111} , // ';'
{B11111111, B11110111, B11101011, B11011101, B10111110, B11111111, B11111111, B11111111} , // '<'
{B11111111, B11011011, B11011011, B11011011, B11011011, B11011011, B11011011, B11111111} , // '='
{B11111111, B11111111, B11111111, B10111110, B11011101, B11101011, B11110111, B11111111} , // '>'
{B11111111, B11111101, B11111110, B11111110, B10101110, B11110110, B11111001, B11111111} , // '?'
{B11000001, B10111110, B10100010, B10101010, B10101010, B11100001, B11111111, B11111111} , // '@'
{B10000011, B11101101, B11101110, B11101110, B11101101, B10000011, B11111111, B11111111} , // 'A'
{B10111110, B10000000, B10110110, B10110110, B10110110, B11001001, B11111111, B11111111} , // 'B'
{B11100011, B11011101, B10111110, B10111110, B10111110, B11011101, B11111111, B11111111} , // 'C'
{B10111110, B10000000, B10111110, B10111110, B11011101, B11100011, B11111111, B11111111} , // 'D'
{B10111110, B10000000, B10110110, B10100010, B10111110, B10011100, B11111111, B11111111} , // 'E'
{B10111110, B10000000, B10110110, B11100010, B11111110, B11111100, B11111111, B11111111} , // 'F'
{B11100011, B11011101, B10111110, B10101110, B10101110, B10001101, B11111111, B11111111} , // 'G'
{B10000000, B11110111, B11110111, B11110111, B11110111, B10000000, B11111111, B11111111} , // 'H'
{B11111111, B10111110, B10000000, B10111110, B11111111, B11111111, B11111111, B11111111} , // 'I'
{B11001111, B10111111, B10111111, B10111110, B11000000, B11111110, B11111111, B11111111} , // 'J'
{B10111110, B10000000, B11110111, B11101011, B11011101, B10111110, B10111111, B11111111} , // 'K'
{B10111110, B10000000, B10111110, B10111111, B10111111, B10011111, B11111111, B11111111} , // 'L'
{B10000000, B11111110, B11111101, B11111011, B11111101, B11111110, B10000000, B11111111} , // 'M'
{B10000000, B11111110, B11111101, B11111011, B11110111, B10000000, B11111111, B11111111} , // 'N'
{B11100011, B11011101, B10111110, B10111110, B11011101, B11100011, B11111111, B11111111} , // 'O'
{B10111110, B10000000, B10110110, B11110110, B11110110, B11111001, B11111111, B11111111} , // 'P'
{B11100001, B11011110, B11011110, B11001110, B11011110, B10100001, B10111111, B11111111} , // 'Q'
{B10111110, B10000000, B10110110, B11100110, B11010110, B10111001, B11111111, B11111111} , // 'R'
{B11011001, B10110110, B10110110, B10110110, B10110110, B11001101, B11111111, B11111111} , // 'S'
{B11111100, B11111110, B10111110, B10000000, B10111110, B11111110, B11111100, B11111111} , // 'T'
{B11000000, B10111111, B10111111, B10111111, B10111111, B11000000, B11111111, B11111111} , // 'U'
{B11110000, B11101111, B11011111, B10111111, B11011111, B11101111, B11110000, B11111111} , // 'V'
{B11000000, B10111111, B10111111, B11000111, B10111111, B10111111, B11000000, B11111111} , // 'W'
{B10111110, B11011101, B11101011, B11110111, B11101011, B11011101, B10111110, B11111111} , // 'X'
{B11111110, B11111101, B10111011, B10000111, B10111011, B11111101, B11111110, B11111111} , // 'Y'
{B10111100, B10011110, B10101110, B10110110, B10111010, B10111100, B10011110, B11111111} , // 'Z'
{B10000000, B10111110, B10111110, B10111110, B11111111, B11111111, B11111111, B11111111} , // '['
{B11111110, B11111101, B11111011, B11110111, B11101111, B11011111, B10111111, B11111111} , // '\'
{B10111110, B10111110, B10111110, B10000000, B11111111, B11111111, B11111111, B11111111} , // ']'
{B11110111, B11111011, B11111101, B11111110, B11111101, B11111011, B11110111, B11111111} , // '^'
{B10111111, B10111111, B10111111, B10111111, B10111111, B10111111, B10111111, B11111111} , // '_'
{B11111111, B11111111, B11111100, B11111011, B11111111, B11111111, B11111111, B11111111} , // '`'
{B11011111, B10101011, B10101011, B10101011, B10101011, B10000111, B10111111, B11111111} , // 'a'
{B11111110, B10000000, B11001111, B10110111, B10110111, B10110111, B11001111, B11111111} , // 'b'
{B11000111, B10111011, B10111011, B10111011, B10111011, B11010111, B11111111, B11111111} , // 'c'
{B11001111, B10110111, B10110111, B10110111, B11001110, B10000000, B10111111, B11111111} , // 'd'
{B11000111, B10101011, B10101011, B10101011, B10101011, B11100111, B11111111, B11111111} , // 'e'
{B11111111, B10110111, B10000001, B10110110, B11111110, B11111101, B11111111, B11111111} , // 'f'
{B10110011, B10101101, B10101101, B10101101, B10101101, B11000011, B11111101, B11111111} , // 'g'
{B10111110, B10000000, B11110111, B11111011, B11111011, B10000111, B11111111, B11111111} , // 'h'
{B11111111, B10111011, B10000010, B10111111, B11111111, B11111111, B11111111, B11111111} , // 'i'
{B11001111, B10111111, B10111111, B10111111, B10111011, B11000010, B11111111, B11111111} , // 'j'
{B11111110, B10000000, B11101111, B11010111, B10111011, B10111111, B11111111, B11111111} , // 'k'
{B11111111, B10111110, B10000000, B10111111, B11111111, B11111111, B11111111, B11111111} , // 'l'
{B10000011, B11111011, B11111011, B10000111, B11111011, B11111011, B10000111, B11111111} , // 'm'
{B10000011, B11110111, B11111011, B11111011, B11111011, B10000111, B11111111, B11111111} , // 'n'
{B11000111, B10111011, B10111011, B10111011, B10111011, B11000111, B11111111, B11111111} , // 'o'
{B10111101, B10000001, B10110011, B11101101, B11101101, B11110011, B11111111, B11111111} , // 'p'
{B11110011, B11101101, B11101101, B10110011, B10000001, B10111101, B11111111, B11111111} , // 'q'
{B10111011, B10000011, B10110111, B11111011, B11111011, B11100111, B11111111, B11111111} , // 'r'
{B10110111, B10101011, B10101011, B10101011, B10101011, B11011011, B11111111, B11111111} , // 's'
{B11111011, B11111011, B11000000, B10111011, B10111011, B11011111, B11111111, B11111111} , // 't'
{B11000011, B10111111, B10111111, B10111111, B11011111, B10000011, B11111111, B11111111} , // 'u'
{B11110011, B11101111, B11011111, B10111111, B11011111, B11101111, B11110011, B11111111} , // 'v'
{B11000011, B10111111, B10111111, B11000111, B10111111, B10111111, B11000011, B11111111} , // 'w'
{B10111011, B11010111, B11101111, B11010111, B10111011, B11111111, B11111111, B11111111} , // 'x'
{B10110011, B10101111, B10101111, B10101111, B10101111, B11000011, B11111111, B11111111} , // 'y'
{B10111011, B10011011, B10101011, B10110011, B10111011, B11111111, B11111111, B11111111} , // 'z'
{B11110111, B11110111, B11001001, B10111110, B10111110, B11111111, B11111111, B11111111} , // '{'
{B11111111, B11111111, B10001000, B11111111, B11111111, B11111111, B11111111, B11111111} , // '|'
{B11111111, B10111110, B10111110, B11001001, B11110111, B11110111, B11111111, B11111111} , // '}'
{B11111101, B11111110, B11111110, B11111101, B11111101, B11111110, B11111111, B11111111} , // '~'
{B10001111, B10110111, B10111011, B10111101, B10111011, B10110111, B10001111, B11111111} , // ''
{B11110001, B10101110, B10101110, B10101110, B10101110, B11010101, B11111111, B11111111} , // Code 128
{B11000101, B10111111, B10111111, B10111111, B10000101, B10111111, B11111111, B11111111} , // Code 129
{B11000111, B10101011, B10101011, B10101010, B10101010, B11100111, B11111111, B11111111} , // Code 130
{B11011101, B10101010, B10101010, B10101010, B10000110, B10111101, B11111111, B11111111} , // Code 131
{B11011110, B10101011, B10101011, B10101011, B10000111, B10111110, B11111111, B11111111} , // Code 132
{B11011111, B10101010, B10101010, B10101011, B10000111, B10111111, B11111111, B11111111} , // Code 133
{B11011111, B10101011, B10101010, B10101011, B10000111, B10111111, B11111111, B11111111} , // Code 134
{B11111111, B11111111, B11111111, B11111111, B11111111, B11111111, B11111111, B11111111} , // Code 135
{B11000101, B10101010, B10101010, B10101010, B10101010, B11100101, B11111111, B11111111} , // Code 136
{B11000110, B10101011, B10101011, B10101011, B10101011, B11100110, B11111111, B11111111} , // Code 137
{B11000111, B10101010, B10101010, B10101011, B10101011, B11100111, B11111111, B11111111} , // Code 138
{B11111111, B11111110, B10111011, B10000011, B10111110, B11111111, B11111111, B11111111} , // Code 139
{B11111101, B11111110, B10111010, B10000010, B10111110, B11111110, B11111101, B11111111} , // Code 140
{B11111111, B11111110, B10111010, B10000011, B10111111, B11111111, B11111111, B11111111} , // Code 141
{B10000110, B11101011, B11101101, B11101101, B11101011, B10000110, B11111111, B11111111} , // Code 142
{B10001111, B11010111, B11010100, B11010100, B11010111, B10001111, B11111111, B11111111} , // Code 143
{B10111011, B10000011, B10101011, B10101010, B10111010, B11111111, B11111111, B11111111} , // Code 144
{B11011111, B10101011, B10101011, B10100111, B11000111, B10101011, B10101011, B11111111} , // Code 145
{B10000011, B11110101, B11110110, B11110110, B10000000, B10110110, B10110110, B11111111} , // Code 146
{B11001111, B10110101, B10110110, B10110110, B10110101, B11001111, B11111111, B11111111} , // Code 147
{B11001101, B10110111, B10110111, B10110111, B10110111, B11001101, B11111111, B11111111} , // Code 148
{B11001111, B10110110, B10110101, B10110111, B10110111, B11001111, B11111111, B11111111} , // Code 149
{B11000111, B10111101, B10111110, B10111110, B10111101, B11000111, B11111111, B11111111} , // Code 150
{B11000111, B10111110, B10111101, B10111111, B10111111, B11000111, B11111111, B11111111} , // Code 151
{B11110101, B10101111, B10101111, B10101111, B10101111, B11000101, B11111111, B11111111} , // Code 152
{B11100110, B11011011, B10111101, B10111101, B11011011, B11100110, B11111111, B11111111} , // Code 153
{B11000010, B10111111, B10111111, B10111111, B10111111, B11000010, B11111111, B11111111} , // Code 154
{B11100111, B11011011, B11011011, B10011000, B11011011, B11011011, B11111111, B11111111} , // Code 155
{B10010111, B10100001, B10110110, B10111110, B10111101, B11011111, B11111111, B11111111} , // Code 156
{B11101010, B11101001, B10000011, B11101001, B11101010, B11111111, B11111111, B11111111} , // Code 157
{B10000000, B10111010, B01111010, B11101000, B10000101, B10101111, B11001111, B11011111} , // Code 158
{B01110111, B01110111, B10000000, B11110110, B11110110, B11111101, B11111111, B11111111} , // Code 159
{B11011111, B10101011, B10101011, B10101010, B10000110, B10111111, B11111111, B11111111} , // Code 160
{B11111111, B11111111, B10111011, B10000010, B10111110, B11111111, B11111111, B11111111} , // Code 161
{B11001111, B10110111, B10110111, B10110101, B10110110, B11001111, B11111111, B11111111} , // Code 162
{B11000111, B10111111, B10111111, B10111011, B10111101, B11000111, B11111111, B11111111} , // Code 163
{B10000101, B11110110, B11110110, B11110101, B11110101, B10001110, B11111111, B11111111} , // Code 164
{B10000101, B11110110, B11101110, B11011101, B10111100, B10000111, B11111111, B11111111} , // Code 165
{B11011001, B11010110, B11010110, B11010110, B11010000, B11010111, B11111111, B11111111} , // Code 166
{B11011001, B11010110, B11010110, B11010110, B11011001, B11111111, B11111111, B11111111} , // Code 167
{B11001111, B10110111, B10111010, B10111111, B10111111, B11011111, B11111111, B11111111} , // Code 168
{B11000111, B11110111, B11110111, B11110111, B11110111, B11110111, B11111111, B11111111} , // Code 169
{B11110111, B11110111, B11110111, B11110111, B11110111, B11000111, B11111111, B11111111} , // Code 170
{B10110101, B11010000, B11100111, B01110111, B00101011, B00110101, B01010110, B01001111} , // Code 171
{B10110101, B11010000, B11100111, B11010111, B11001011, B11010101, B00000010, B11011111} , // Code 172
{B11111111, B11111111, B11111111, B10000101, B11111111, B11111111, B11111111, B11111111} , // Code 173
{B11111111, B11110111, B11101011, B11011101, B11110111, B11101011, B11011101, B11111111} , // Code 174
{B11111111, B11011101, B11101011, B11110111, B11011101, B11101011, B11110111, B11111111} , // Code 175
{B01010101, B11111111, B10101010, B11111111, B01010101, B11111111, B10101010, B11111111} , // Code 176
{B01010101, B10101010, B01010101, B10101010, B01010101, B10101010, B01010101, B10101010} , // Code 177
{B00100010, B00000000, B01010101, B10001000, B00100010, B01010101, B00000000, B10001000} , // Code 178
{B11111111, B11111111, B11111111, B00000000, B11111111, B11111111, B11111111, B11111111} , // Code 179
{B11101111, B11101111, B11101111, B00000000, B11111111, B11111111, B11111111, B11111111} , // Code 180
{B11101011, B11101011, B11101011, B00000000, B11111111, B11111111, B11111111, B11111111} , // Code 181
{B11101111, B11101111, B11101111, B00000000, B11111111, B00000000, B11111111, B11111111} , // Code 182
{B11101111, B11101111, B11101111, B00001111, B11101111, B00001111, B11111111, B11111111} , // Code 183
{B11101011, B11101011, B11101011, B00000011, B11111111, B11111111, B11111111, B11111111} , // Code 184
{B11101011, B11101011, B11101011, B00001000, B11111111, B00000000, B11111111, B11111111} , // Code 185
{B11111111, B11111111, B11111111, B00000000, B11111111, B00000000, B11111111, B11111111} , // Code 186
{B11101011, B11101011, B11101011, B00001011, B11111011, B00000011, B11111111, B11111111} , // Code 187
{B11101011, B11101011, B11101011, B11101000, B11101111, B11100000, B11111111, B11111111} , // Code 188
{B11101111, B11101111, B11101111, B11100000, B11101111, B11100000, B11111111, B11111111} , // Code 189
{B11101011, B11101011, B11101011, B11100001, B11111111, B11111111, B11111111, B11111111} , // Code 190
{B01010101, B00000000, B10101010, B11111111, B11111111, B11111111, B01111101, B00000000} // Code 191
};
int state = 0;
void setup() {
DMXSerial.init(DMXController,13);
DMXSerial.maxChannel(10);
} // setup
void DMXWrite(char ch){
DMXSerial.write(1, f8x8[ch-32][0]); // 1
DMXSerial.write(2, f8x8[ch-32][1]); // 2
DMXSerial.write(8, f8x8[ch-32][2]); // 3
DMXSerial.write(3, f8x8[ch-32][3]); // 4
DMXSerial.write(7, f8x8[ch-32][4]); // 5
DMXSerial.write(4, f8x8[ch-32][5]); // 6
DMXSerial.write(6, f8x8[ch-32][6]); // 7
DMXSerial.write(5, f8x8[ch-32][7]); // 8
}
void CHdelay(int tid){
delay(tid);
DMXSerial.write(1, B11111111); // 1
DMXSerial.write(2, B11111111); // 2
DMXSerial.write(8, B11111111); // 3
DMXSerial.write(3, B11111111); // 4
DMXSerial.write(7, B11111111); // 5
DMXSerial.write(4, B11111111); // 6
DMXSerial.write(6, B11111111); // 7
DMXSerial.write(5, B11111111); // 8
delay(400);
}
// loop through the rainbow colors
void loop() {
for (int A=32; A <= sizeof(f8x8)+32;A++){
DMXWrite(A);
// CHdelay(1000); // wait a little bit
delay(1000);
}
/* DMXWrite('A');
CHdelay(2000); // wait a little bit
DMXWrite('B');
CHdelay(2000); // wait a little bit
DMXWrite('C');
CHdelay(2000); // wait a little bit
DMXWrite('Æ');
CHdelay(2000); // wait a little bit
DMXWrite('Ø');
CHdelay(2000); // wait a little bit
DMXWrite('Å');
CHdelay(2000); // wait a little bit
*/
} // loop