martes, 23 de septiembre de 2014

Arduino AD9850 DDS - Versión 2

Arduino
AD9850
DDS(Direct Digital Synthesizer)
Generador señal desde 1Hz a 40MHz
xsetaseta@gmail.com

Versión 2.  23/09/2014
Después de 1 año del montaje me mandaron algunos correos de que no les funcionaba el circuito.
Les pregunte que placa de arduino utilizaban, y me dijeron que era la placa leonardo, algunos me mandaron imagenes de sus montajes.
Después de comprar la placa y montar el circuito, efectivamente no funcionaba.
Buscando el motivo por el cual funcionaba perfectamente en Arduino_Diecimila y no funcionaba en Arduino_Leonardo encontré el motivo.
Para utilizar los pin A0 y A1 como entradas digitales se hacía referencia a los pin 14 y 15, pero ahora con las nuevas versiones del compilador se deben utilizar A0 y A1.
Por lo que he cambiado lo siguiente:

//Arduino_Diecimila
//#define e1Pin 14
//#define e2Pin 15

por

//Arduino_Leonardo
#define e1Pin A0
#define e2Pin A1

 y ya funciona perfectamente.

Programa Arduino modificado.



lunes, 7 de julio de 2014

Reloj con wxwidgets.

Reloj con wxwidgets.
Un simple reloj.


Programas ejecutables y fuentes.


Un saludo.
Juan Galaz

Calculadora con wxwidgets.

Calculadora con wxwidgets.
El título lo dice todo, no hay mas que decir. Es simple y sencilla, nada del otro mundo, para hacer practicas con la librería wxwidgets.
Existen 3 modelos , con
Code::Blocks para windows y linux, y uno hecho mediante makefile para ambas plataformas.



Programas ejecutables y fuentes.
DLL necesarias para Windows.


Un saludo.
Juan Galaz

lunes, 23 de junio de 2014

Interface con librería wxWidgets para monitor temperatura/humedad

En mi anterior circuito

http://seta43.blogspot.com.es/2014/06/arduino-emisor-temperaturahumedad.html

había realizado el programa de  monitorización en lenguaje Basic mediante el entorno de programación Gambas. Pero claro no todo el mundo tiene Linux para instalar gambas, la vida real es así. Buscando una librería que fuese multiplataforma, elegí la librería wxWidgets. Está bastante bien documentada, en ingles claro, y funciona bastante bien.

En mi primera incursión en la librería wxWidgets , he realizado el monitor para el circuito.
Ha sido duro la programación, pero mereció la pena.
Al ser multiplataforma se recompila todo en Linux o Windows sin retocar ni una sola línea de código, salvo modificar el archivo define.h  y  poner:

    #define YesWindows 0
o
    #define YesWindows 1

Programa Linux-Windows - Librería wxWidgets 

 Linux


 Windows



Un saludo.
Juan Galaz

miércoles, 18 de junio de 2014

Máquina tragaperras en SDLBASIC

Página principal


Máquina tragaperras
SDLBASIC


Hace muchos años, era la época del ordenador Amiga, había programado una máquina tragaperras  en Basic, había utilizado el programa Amos.
El programa Amos era un entorno de desarrollo para juegos que se programaba en Basic, era muy bueno y fácil de programar.
El tiempo ha pasado y he rehecho el programa de tragaperras y lo he programado en SDLBASIC.
El SDLBASIC es un entorno para programar en Basic  y que está en la mayoría de las distribuciones Linux y Windows,  por lo que da mucho juego.
Los programas hechos en Linux funcionan perfectamente en Windows sin ningún retoque en el código.
La pena del SDLBASIC es que está abandonado, aunque existe bastante documentación.
El otro día lo recopile desde el código fuente, por lo que el que quiera puede seguir con su desarrollo.

El programa de tragaperras está diseñado para que no existan ganancias, incluso se puede ver las estadísticas de la caja pulsando la tecla p.
Se encuentra hecho en baja resolución 320x200, un día de estos lo hago en una resolución mayor para que sea mas vistoso.



Programa SDLBASIC



Larga vida al Basic



Un saludo.
SETA43

domingo, 1 de junio de 2014

Arduino Emisor temperatura/humedad , receptor en PC, gráfica con gambas.

Página principal


Arduino
Emisor temperatura y humedad externa.
Receptor en PC con gráfica
433MHz - mx-05V

433MHz - mx-fs-03v
xsetaseta@gmail.com

En este montaje he realizado un emisor de temperatura y humedad. Se transmiten los datos y se recibe en un receptor colocado en el puerto usb de un ordenador.
En el ordenador se visualizan los datos de temperatura y humedad a través de un programa que monitoriza los datos y los representa en una gráfica.
Para emisor o transmisor he creado una placa de circuito impreso que se puede utilizar para los dos cometidos, cambiando el programa del Atmega328.
Para emisor se utiliza los conectores de AM2302 y el transmisor FS-03V, y se alimenta a través de 3 pilas de 1.5V. Los datos se transmiten cada 1.3 segundos o cada 67 segundos, dependiendo si existe o no existe el puente S1 pin (1- 4). El otro puente lo he dejado sin servicio, pero está pensado para identificar el canal.
En el lado del receptor se utilizan los conectores del MX-JS-05V, y está alimentado a través del conversor serie a usb que se conecta al ordenador.
El formato de transmisión es el siguiente:
H2440 T-680 222 91
Donde la humedad sería 24.40%, la temperatura -6.80ºC, el canal en este caso 222, y un numero secuencial del 0 al 99.
No existe comprobación del canal, por lo que algunas veces se puede mezclar con señales de otros emisores, es muy fácil hacerlo, pero se lo dejo a otros hacerlo.
Se pueden utilizar tanto ATMEGA8-ATMEGA88-ATMEGA328, da igual, el que sea mas económico, el código no supera los 8k. En mi caso he utilizado en el receptor un ATMEGA8, y en el emisor un ATMEGA328, son los que tenía a mano.



Esquema del circuito.


PCB


Montaje del receptor.



Montaje del emisor.

Programa del emisor y receptor.



Gráfica realizada con programa de basic Gambas 3.1.1
El emisor está dentro del congelador y el receptor pinchado en un puerto del ordenador a 10m de distancia.


Programa en gambas

Como yo utilizo mayormente linux, he programado el programa de monitorización de temperatura en basic de Gambas 3.1.1  .
Es bastante fácil realizar el programa en Visual Basic o cualquier otro basic.
Recordar que debéis tener permisos para usar los puertos serie, se hace añadiendo el usuario al grupo  dialout .
Si solo queréis ver si funciona, abrir el monitor de serie  del arduino.


Hasta pronto.
JUAN GALAZ

Bibliografía:
 http://playground.arduino.cc/Main/DS1302
 http://playground.arduino.cc/Code/PCD8544
 http://www.microsyl.com/index.php/2010/03/24/nokia-lcd-library/
http://forum.hobbycomponents.com/viewtopic.php?f=39&t=1324
http://seta43.duckdns.org/ardurab.html
http://playground.arduino.cc/Main/DHTLib
http://www.pjrc.com/teensy/td_libs_VirtualWire.html