Página principal
Arduino
Gambas
Control entradas salidas
Hace unos 5 años había realizado una
serie de montajes donde controlaba una placa de arduino mediante un
programa ejecutado en un PC o RaspberryPi.
Lo había realizado en C y con la librería SDL, funcionaba tanto en
Linux como en Windows.
25/06/2012 - ARDUINO -
Control de 12 salidas y 6 entradas analógicas mediante
rs232-Librería SDL. aseriea
19/06/2012 - ARDUINO
- Control de entradas mediante rs232
- Librería SDL. aseriee
10/06/2012 - ARDUINO - Control de salidas
mediante rs232 -Librería SDL. aserie
El otro día probando el nuevo Debian 10, se me ocurrió instalar
gambas y probar un programa que se encontraba en la granja de
programas.
Era Arduino_Uno 1.0.1 programado por
Rolfdahl-skogstade,
además de controlar el arduino a través del PC, tenía la posibilidad
de ver el estado de las entradas o salidas en un navegador web.
Nunca se me ocurrió el hacer un servidor web con Gambas.
También se posibilitaba el poder cambiar las salidas a través de un
navegador, desde el PC o teléfono.
En este montaje realizo algo parecido, pero en 3 montajes
diferentes.
-17 salidas.
-17 entradas.
-12 salidas y 5 entradas analógicas.
También se puede visualizar en un navegador el estado de los pins
del arduino, o los valores de la señales analógicas.
Para otro proyecto se podrá cambiar el estado de los pins a
través del navegador.
En el programa realizado en gambas, he utilizado partes de código
realizado por Rolfdahl-skogstade
, sobre todo en la parte del servidor web, he interface
gráfico. En cuanto al resto del código se ha rehecho totalmente,
los cambios en la comunicación con el arduino son completamente
nuevos, basados en mis viejos montajes.
En cuanto al programa realizado para el arduino, los códigos se
basan en anteriores montajes míos, son del tipo: petición de dato
a través del interface serie, y respuesta por parte del arduino a
través del mismo interface serie.
Por ejemplo:
SET 8,0
Apagar pin 8
SET 8,1
Encender pin 8
ANA 0
Se solicita el valor de
pin ANALOG 0
El arduino devolverá el valor de
ANAGOL-A0: VAL 0,350
Desde cualquier terminal serie, cutecom, o del propio terminal de
arduino se pueden ejecutar las ordenes.
Podemos entender que el programa en gambas hace el control mucho
mas fácil, a través de su interface gráfica.
Además busca automáticamente el puerto donde está conectado el
arduino.
Circuito montado. Modelo 17 salidas.
Para no tener que colocar una resistencia para cada LED,
simplifico el montaje colocando una resistencia común a GND para
todos los LEDS. Esto implica que dependiendo de los LEDS que estén
encendidos, lucirán mas o menos.
Programa gambas. 17 salidas.
Programa gambas. 17
entradas.
Programa gambas. 5 entradas
analógicas, 12 salidas digitales.
Visualización
en navegador. 5 entradas analógicas, 12 salidas digitales.
Como podéis observar en el montaje he utilizado un arduino nano,
y para la representación el arduino uno.
Las pruebas las he realizado en las dos placa de arduino,
funcionando perfectamente en ambas.
Aunque el arduino nano tiene A6 y A7 no las he empleado por
compatibilidad con el arduino uno
La actualización de los datos desde que se cambia un valor hasta que
se ve reflejado es de 1 segundo.
Se puede mejorar aumentando la velocidad en Baudios y el tiempo de
retardo, para este montaje no hace falta mucha velocidad, por lo que
lo he dejado así.
En el navegador web si queremos ver los datos actualizados, debemos
actualizar la página web, aunque se actualiza automáticamente cada
120 segundos.
PROGRAMA
Saludos.
Juan Galaz
Bibliografía:
Arduino_Uno 1.0.1 programado por
Rolfdahl-skogstade