Skip to content

fmcopaco/simplex

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

simplex.h

Muchas veces queremos añadir algún elemento a nuestras maquetas con algún tipo de efecto o pequeña automatización y consultando con nuestros amigos como implementarlo siempre hay alguien que dice: “Eso con Arduino es más sencillo de hacer!”.

Os presento simplex.h una librería para Arduino para realizar animaciones y algo más en nuestras maquetas con comandos simples y compatibles con la programación tradicional del lenguaje Arduino.

simplex.h es una librería para Arduino que aprovechando la potencia del preprocesador del lenguaje Arduino proporciona comandos simples para automatizar nuestras maquetas y es plenamente integrable con el lenguaje Arduino.

simplex

Librería

Para usar la librería sólo hay que copiar los archivos simplex.h y simplex.cpp al directorio donde se encuentra vuestro sketch, incluir la librería y en el loop() poner RUN_SIMPLEX al inicio:

simplex

Otra opción es descargar esta librería como archivo .zip y añadirla en el Arduino IDE desde el menú Programa -> Incluir Librería -> Añadir biblioteca .ZIP ..., además también estarán disponibles los ejemplos en el menú Archivo y no necesitareis copiar los archivos simplex.h y simplex.cpp al directorio donde se encuentra vuestro sketch.

Comandos

IMPORTANTE Entre el comando y el ( no deben escribirse espacios ya que sino el prepocesador generará un error al compilar el código.

Comandos básicos

Comando Descripción
RUN_SIMPLEX Procesa las acciones de simplex.h
SET_NAME(n,p) Asigna un valor (0...255) a un nombre de constante (pin, etc.,..)
VAR_NAME(n) Define el nombre de una variable
SET_VAR(n,p) Dar un valor a una variable (entre -32768 a 32767)
PIN_OUT(p) Define un pin como salida (relé, luces,...)
PIN_COIL(p) Define un pin como salida de pulso (Bobina desvío,…)
PIN_EFFECT(p) Define un pin como efecto de luz
PIN_SERVO(p) Define un pin como servo (máx. 12: _MAX_SERVO)
PIN_INPUT(p) Define un pin como entrada
PIN_BUTTON(p) Define un pin como entrada anti rebote (Pulsador, final carrera…)
PIN_SENSOR(p) Define un pin como una entrada de sensor
PIN_STEPPER4(p) Define 4 pins consecutivos para control motor paso a paso (tipo 28BYJ-48)
PIN_STEPPER2(p) Define 2 pins consecutivos para control motor paso a paso (tipo driver A4988 y similares, p: STEP, p+1: DIR)
PIN_MODE(p,n) Establece el modo de un pin (tipo PIN_OUT/ PIN_EFFECT/PIN_STEPPER)
PIN_TIME(p,n) Establece el tiempo para un pin o la velocidad de un servo o motor paso a paso
SET(p) Activa pin de salida (tipo PIN_OUT/ PIN_EFFECT/ PIN_COIL)
RESET(p) Desactiva pin de salida (tipo PIN_OUT/ PIN_EFFECT/ PIN_COIL)
SERVO(p,n) Mover el servo a una posición (0..180)
STEPPER_SET(p,n) Establece el paso actual (posición) del motor paso a paso
STEPPER_GO(p,n) Mover el motor paso a paso a la posición absoluta
STEPPER_CW(p,n) Mover el motor paso a paso a la posición relativa (sentido horario)
STEPPER_CCW(p,n) Mover el motor paso a paso a la posición relativa (sentido antihorario)
ARRIVED(p) Comprobar si el servo llegó a la posición
PRESSED(p) Comprobar si se pulsó el botón
ACTIVE(p) Comprobar si el sensor esta activo
FREE(p) Comprobar si el sensor esta libre
FSM_NEW(n) FSM, define el nombre de una nueva FSM (Multi FSM)
FSM_USE(n) FSM, usar los estados correspondientes al FSM (Multi FSM)
FSM_NAME(n) FSM, define el nombre de un nuevo estado
FSM_STATE(n) FSM, comprobar estado actual
FSM_GO(n) FSM, transición a un nuevo estado
SET_TIMER(p,n) Arrancar un temporizador (máx. 4: _MAX_TIMERS)
TIMEOUT(p) Comprobar si el temporizador acabó (máx. 4: _MAX_TIMERS)
WAIT(n) Espera un tiempo procesando acciones simplex
WAIT_SERVO(p) Espera que un servo llegue a la posición procesando acciones simplex
WAIT_RELEASE(p) Espera a que se suelte el botón procesando acciones simplex
WAIT_STEPPER(p) Espera que un motor paso a paso llegue a la posición procesando acciones simplex
FUNCTION(n) Define una función
CALL(n) Llamar a una función
REPEAT(n) Repetir comandos (2..65535 veces, máx. 4 bucles: _MAX_REPEAT)
AND(x,y) Comprobar si ambas condiciones son verdaderas
OR(x,y) Comprobar si al menos una condición es verdadera
NOT(x) Negación lógica
EQUAL(x,y) Comprobar si dos valores son iguales

Comandos DCC

Comando Descripción
PIN_DCC() Usar pin de entrada DCC (_DCC_PIN)
DCC_ACC_RED(n) Comprobar si el número de accesorio recibido está en rojo
DCC_ACC_GREEN(n) Comprobar si el número de accesorio recibido está en verde

Comandos Xpressnet

Comando Descripción
XNET_ADDR(n) Inicializa interface Xpressnet (MAX485). Dirección válida: 1..31
XNET_RED(n) Mover el accesorio a rojo (1..1024)
XNET_GREEN(n) Mover el accesorio a verde (1..1024)
XNET_TOGGLE(n) Mover accesorio a la otra posición (1..512)
XNET_ACTIVE(n,p) Comprobar si la entrada p del módulo RS n está ocupada
XNET_FREE(n,p) Comprobar si la entrada p del módulo RS n está libre
XNET_CHANGED(n) Comprobar si hay cambios en el módulo RS n

Efectos para PIN_OUT

Efecto Descripción
NORMAL Salida normal
INVERT Salida invertida
FLASH Salida intermitente

Efectos luminosos para PIN_EFFECT

Efecto Descripción
DIMMER Encendido / apagado lento
FLASH Parpadeo con encendido / apagado lento
CANDLE Vela
FIRE Fuego
FLUORESCENT Luz fluorescente
WELDING Soldadura
PWM Intensidad 0..15 (62.5Hz)

Modos para los motores paso a paso

Efecto Tipo Motor Descripción
HALF_STEP STEPPER4 Medio paso
FULL_STEP STEPPER4 / STEPPER2 Paso completo
DRIVER STEPPER2 Controlador de motores paso a paso

Manual

El manual de la librería lo podéis ver aquí.

Ejemplos

Los ejemplos del manual los podéis ver aquí.

Hay una plantilla en blanco aquí.

Videos

simplex


Paco Cañada

https://usuaris.tinet.cat/fmco/

https://fmcopaco.github.io/

About

Arduino library for creating animations and more on our models with simple commands compatible with traditional Arduino programming language.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors