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