Ciao ragazzi,
ho costruito una scheda che tra le varie cose mi pilota un'uscita DMX.
Per la parte DMX il codice si basa sulla libreria DMXSimple.
Questo è il pezzo di sketch relativo:
IDE 1.0.6
#include <DmxSimple.h>
int pot1=analogRead(A2);
int ChDMX;
int DMXvalue;
void setup() {
DmxSimple.usePin(1);
DmxSimple.maxChannel(4);
}
void loop() {
ChDMX=1;
pot1=analogRead(A2);
DMXvalue=map(pot1,0,1023,1,256);
DmxSimple.write(ChDMX, DMXvalue);
}
con Arduino UNO tutto ok, poi per ragioni di ing/out ho dovuto montare la Mega e... tutto funziona a parte il DMX.
Ho quindi testato solo la parte di codice che ho pubblicato qui sopra e... con Arduino UNO tutto OK, ma con la MEGA il relè della scheda ricevente non si attiva e lampeggia il led rosso di errore.
Di preciso come ricevente, via cavo, sto utilizzando la scheda di futura shop cod.:8220-VM138; https://www.futurashop.it/controllo-rele-con-dmx-8220-vm138?filter_name=dmx
Perché succede questo? E' un problema di librerie? o di IDE?
ho fatto le variazioni di map ma il risultato non è cambiato, quindi, ho cancellato la libreria in questione e l'ho riscaricata al che adesso ho i seguenti errori...
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:11:20: error: wiring.h: No such file or directory
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp: In function 'void dmxBegin()':
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:57: error: 'digitalPinToPort' was not declared in this scope
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:57: error: 'portOutputRegister' was not declared in this scope
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:58: error: 'digitalPinToBitMask' was not declared in this scope
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:61: error: 'OUTPUT' was not declared in this scope
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:61: error: 'pinMode' was not declared in this scope
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp: In function 'void dmxWrite(int, uint8_t)':
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:183: error: 'max' was not declared in this scope
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp: In function 'void dmxMaxChannel(int)':
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:194: error: 'min' was not declared in this scope
/Users/ISS/Documents/Arduino/libraries/DmxSimple/DmxSimple.cpp:11:20: error: wiring.h: No such file or directory
Se ancora richiama wiring.h è una vecchia libreria fatta per wiring e non aggiornata. Prova a modificare DmxSimple.cpp e sostituisci la #include <wiring.h> con #include <Arduino.h> ... e incrocia le dita ...
Grazie Guglielmo,
Arduino.h ha funzionato e posso caricare il programma.
Rimane il fatto che il DMX con l'Arduino UNO funziona mentre non va con la MEGA...
Non riesco a capire...