DmxSimple (SOLUCIONADO)

Buenas tardes:
Soy nuevo y novato en Arduino y estoy trabajando en un proyecto con Arduino UNO y una shield de Tinkerkit DMX
Intento encontrar alguna guia básica o ejemplos de la libreria DMXSimple.

Muchas gracias por vuestro tiempo.
Un saludo y gracias de antemano.

Davmax

Pusiste en google las palabras mágicas : Arduino Tinkerkit DMX

Aca la librería

Gracias por contestar.
Si, vi ese enlace y la página oficial, y todas las entradas de google si pones en el buscador DmxSimple....
Solo encontré varios ejemplos en una página de unoscompañeros chilenos....
Como les comenté estoy comenzando con Arduino, y necesito ejemplos para poder experimentar con ellos....
Los pocos que encontre son siempre los mismos.....
Muchas gracias otra vez.
Davmax

Bueno te metiste en un terreno complejo, de pocas personas asi que cuando no encuentres colaboración porque a veces es dificil seguirte, busca en ingles o postea en inglés. traductor o bien ayuda de alguien que sepa escribirlo. En el foro en ingles hay creo un subforo específico del tema.

mira puse DMX en search.

Opcion 1

Posible libreria DMX envia y recibe

Hola otra vez.
Al importar la libreria no me da ningun error, pero al cargar un ejemplo me aparece el siguiente error.

[C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:11:20: error: wiring.h: No such file or directory
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp: In function 'void dmxBegin()':
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:57: error: 'digitalPinToPort' was not declared in this scope
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:57: error: 'portOutputRegister' was not declared in this scope
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:58: error: 'digitalPinToBitMask' was not declared in this scope
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:61: error: 'OUTPUT' was not declared in this scope
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:61: error: 'pinMode' was not declared in this scope
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp: In function 'void dmxWrite(int, uint8_t)':
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:183: error: 'max' was not declared in this scope
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp: In function 'void dmxMaxChannel(int)':
C:\Documents and Settings\Administrador\Mis documentos\Arduino\libraries\DmxSimple\DmxSimple.cpp:194: error: 'min' was not declared in this scope

Como lo soluciono?
Mil gracias

Donde ubicaste la librería. esta mal ubicada o lo hiciste con el IDE abierto y luego volviste a compilar.

La libreria va en el directorio libraries del IDE
Si tenes win7 o mejor 64bits será c:\Archivos de programa (x86)\Arduino\Libraries
o en 32 bits c:\Archivos de programa\Arduino\Libraries

Muchas gracias Surbyte!

Ya funciona correctamente....

Ahora estoy rompiendome la cabeza con el Sketch.

tengo problemas para combinar tiempos de fundido en varios canales a la vez, ya que no se programar y el tema de las llaves}{ no lo tengo muy claro.

Escribiré aqui mis dudas en cuanto sepa exactamente cual es el problema.

Mil gracias por tu tiempo.
Un saludo

ve expresando las dudas.. a ver si podemos guiarte.
es complejo lo que esas haciendo sin conocimientos de programación.
Pero no te compliques.

El ABC de la programacion no es atacar todo de golpe sino en un papel y con un lapiz separar tu problema en minitareas. Resolviendo las minitareas resuelves la tarea que buscas. y asi con todo.
Resuelve pequeñas cosas y luego integra.
resuelve e integra.
suma de tareas = Producto Final ===>> Objetivo terminado.

Hola Surbyte:

tras varios meses rompiendome la cabeza con temas de hardware, empecé a romperme la cabeza con el software…

Disculpa mi ignorancia, quería preguntar como puedo ejecutar dos bucles a la vez.
me explico.

Quiero encender una bombilla (canal 10 ) por dmx de 0 a 100% de brillo ( de 0 a 255) en 10 segundos

for(int i=0;i<=255;i++)
{DmxSimple.write(10,i);
delay(30);}

si luego la quiero apagar de 100% a 0 haria esto

for(int i=255;i>=0;i–)
{DmxSimple.write(10,i);
delay(30);}

ok…

pero si a la vez quiero que otra bombilla haga lo contrario… que mientras una enciende y apaga, la otra apague y encienda…¿como puedo programar dos bucles a la vez??

A mi se me ocurre, meter las dos luces dentro del mismo for. Algo así:

  for (int i = 0; i <= 255; i++)
  { DmxSimple.write(10, i);
    int a = map (i, 0, 255, 255, 0);
    DmxSimple.write (11, a);
    delay(30);
  }
  for (int i = 255; i >= 0; i--)
  { DmxSimple.write(10, i);
    int a = map (i, 255, 0, 0, 255);
    DmxSimple.write (11, a);
    delay(30);
  }

Gracias!!!.. funciona perfectamente....
Gracias!!!!

¿¿¿Podrias mandarme algun enlace o texto donde pueda leer y aprender a usar esta orden???

Gracias por responder!!!

Si que funciona, pero no comprendo lo que estoy haciendo....

Que parte no entiendes? Supongo que lo que no entiendes es el map, ya que el for lo has hecho tú solo.

El map es una función en la que cambias un rango por otro. En este caso, mantengo el rango pero lo invierto. Más información sobre el uso del map aquí:

Si, disculpa, era la función MAP la que no entendía....
Puedo usar varios MAP a la vez en el mismo FOR?

Me explico:

mientras el canal 10 varia de 0 a 255, entiendo que con la orden MAP le estoy ordenando al canal 11 que varie en funcion del 10.... (perfecto... me encantó esto de la orden map)

¿puedo añadir otros map, para pedir que varie el canal 12 de 128 a 140 mientras cambia el 10??

Perdon por mi falta de rigor en las expresiones.... espero que se entienda lo que quiero hacer...

mientras vario las 2 luces (10 y 11 ), otra luz (canal 12 ) cambia de intensidad en el mismo tiempo.....

Muchas gracias por tu tiempo carmeloco

Hice varias pruebas y es perfecta la funcion map para el tema que persigo.
Gracias Carmeloco!
Seguiré practicando.
un saludo

Sí, puedes asignar otro map a otra variable.
Ejemplo:

  for (int i = 0; i <= 255; i++)
  { DmxSimple.write(10, i);
    int a = map (i, 0, 255, 255, 0);
    DmxSimple.write (11, a);
    int b = map (i, 0, 255, 128, 140);
    DmxSimple.write (12, b);
    delay(30);
  }
  for (int i = 255; i >= 0; i--)
  { DmxSimple.write(10, i);
    int a = map (i, 255, 0, 0, 255);
    DmxSimple.write (11, a);
    int b = map (i, 0, 255, 140, 128);
    DmxSimple.write (12, b);
    delay(30);
  }

Hola otra vez…
Yo y mis problemas… intenté instalar la libreria DMX en otro portatil, y tras mucas vueltas e intentos, al cargar un ejemplo o skech, me da el siguiente error:

C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:11:20: fatal error: wiring.h: No such file or directory
#include “wiring.h”
^
compilation terminated.
Error de compilación

Muchas gracias por vuestro tiempo…
Un saludo

tras desinstalar el programa e intentar importar nuevamente varias veces ahora me sale este error.
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:11:20: error: wiring.h: No such file or directory
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp: In function 'void dmxBegin()':
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:57: error: 'digitalPinToPort' was not declared in this scope
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:57: error: 'portOutputRegister' was not declared in this scope
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:58: error: 'digitalPinToBitMask' was not declared in this scope
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:61: error: 'OUTPUT' was not declared in this scope
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:61: error: 'pinMode' was not declared in this scope
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp: In function 'void dmxWrite(int, uint8_t)':
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:183: error: 'max' was not declared in this scope
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp: In function 'void dmxMaxChannel(int)':
C:\Users\DAVID\Documents\Arduino\libraries\DmxSimple\DmxSimple.cpp:194: error: 'min' was not declared in this scope

Pon las librerías en la ruta C:\Users\DAVID\Documents\Arduino\libraries\

Así, cuando re-instales el ide, no perderás las librerías.

Muchas gracias a todos.
Solucionado!!!!!!
Seguiré trasteando.

Intento poner en el titulo del post SOLUCIONADO.... pero no se como hacerlo. En las normas no explica como hacerlo. ¿ me podrían indicar como hacerlo.? Gracias mil.