Visualino
Creador del programa Victor R. Ruiz.
Curiosa aplicación para hacer programas de arduino en forma gráfica.
Ir a la página web: www.visualino.net
Bajar la versión de la distribución que tengáis, en mi caso ubuntu.
http://www.visualino.net/downloads/ubuntu/
La versión mas nueva es 0.7 , fecha 2016.
Instalar el programa, yo lo suelo hacer con gdeb.
Existe un tutorial en la página web que explica los pasos.
http://www.visualino.net/docs/ubuntu.es.html
Debemos de tener instalada la versión 1.6 de arduino , con la 1.8 no funciona bien.
La instalación de arduino debera ser similar a:
/home/Nombre de usuario/bin/arduino-1.6/
Dentro de ese directorio, deberá seleccionar el fichero ejecutable arduino.
Abrimos una consola y tecleamos visualino.
Si todo fue bien arrancará el programa.
En el menú archivo->preferencias
Cambiar el idioma.
Cambiar IDE- /home/usuario/bin/arduino-1.6.2/arduino
En la ventana principal seleccionar el tipo de placa (nano, uno,...) y la conexión (ttyUSB0 ,ttyUSB1)
Ya está todo para programarlo visualmente.
Saludos.
Juan Galaz
jueves, 14 de septiembre de 2017
Reproducir MP3 con arduino y DFPLayer Mini
Página principal
Siguiendo con la serie de montajes con el TM1638, ahora realizamos un reproductor de MP3.
Después de la serie de montajes con el TM1638 he de reconocer que hace muy fácil cualquier tipo de montaje, tiene de todo, leds, displays, y botones, recomiendo encarecidamente su uso.
Para el montaje utilizamos el módulo llamado DFPLayer Mini, cuesta menos de 3€.
Para ver mas detalles recomiendo mi montaje MP3 - DFPLayer Mini - Arduino.
Los botones se utilizan:
S1 y S2 seleccionan el directorio.
S3 y S4 seleccionan el archivo mp3.
S5 - para PLAY y PAUSA
S6 - STOP
S7 - Bajar volumen.
S8 - Subir volumen.

Esquema de conexión.

Montaje del circuito
PROGRAMA
VIDEO
Saludos.
JUAN GALAZ
Bibliografía:
armpg.html
remson.html
https://github.com/DFRobot/DFRobotDFPlayerMini .
https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299
https://www.luisllamas.es/arduino-mp3-dfplayer-mini/
http://stonez56.blogspot.com.es/2015/03/arduino-dfplayer-mini-mp3-module.html
Arduino
TM1638
MP3
DFPLayer Mini
xsetaseta@gmail.com
TM1638
MP3
DFPLayer Mini
xsetaseta@gmail.com
Siguiendo con la serie de montajes con el TM1638, ahora realizamos un reproductor de MP3.
Después de la serie de montajes con el TM1638 he de reconocer que hace muy fácil cualquier tipo de montaje, tiene de todo, leds, displays, y botones, recomiendo encarecidamente su uso.
Para el montaje utilizamos el módulo llamado DFPLayer Mini, cuesta menos de 3€.
Para ver mas detalles recomiendo mi montaje MP3 - DFPLayer Mini - Arduino.
Los botones se utilizan:
S1 y S2 seleccionan el directorio.
S3 y S4 seleccionan el archivo mp3.
S5 - para PLAY y PAUSA
S6 - STOP
S7 - Bajar volumen.
S8 - Subir volumen.

Esquema de conexión.

Montaje del circuito
PROGRAMA
VIDEO
Saludos.
JUAN GALAZ
Bibliografía:
armpg.html
remson.html
https://github.com/DFRobot/DFRobotDFPlayerMini .
https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299
https://www.luisllamas.es/arduino-mp3-dfplayer-mini/
http://stonez56.blogspot.com.es/2015/03/arduino-dfplayer-mini-mp3-module.html
martes, 12 de septiembre de 2017
Voltímetro y Amperímetro - Arduino - TM1638
Página principal
Arduino
TM1638
En este artículo realizo un voltímetro y un medidor de intensidad.
Para medir la intensidad del circuito se inserta una resistencia de pequeño valor en serie con el circuito a medir.
Para no interferir en la tensión del circuito a medir, se debería utilizar una resistencia de valor mas bajo posible.
Como la caída de tensión en la resistencia es demasiado baja con una resistencia de por ejemplo 3 ohmios para poder ser medida por el arduino sin emplear otro componente adicional, empleamos una de 18 ohmios.
Con una resistencia de 18 ohmios y con una intensidad de 30 mA, producimos una caída de tensión de 0.5V en la tensión que ofrecemos al circuito a medir.
Por ejemplo : si tenemos de alimentación de 5V con un consumo de 30mA, entregaríamos solo 4.5V.
Como vemos debemos sopesar la resistencia a colocar en serie con circuito a mediar, y ajustarla a que la caída de tensión no sea grande.
Si quisiéramos medir en una escala de hasta 5mA ,deberíamos utilizar una resistencia de 100 ohmios para que la caída de tensión fuera como máximo de 0.5V .
Las 3 resistencias de 1K son a modo de protección del arduino, por si metemos un arduino mal programado.
Los 3 condensadores se utilizan para filtrar la alimentación, con unos 100uF 5V servirían.

Esquema teórico.

Esquema eléctrico.
Esquema de conexión.
Montaje del circuito y con una carga de 1K.
Nota: Debemos tener encuenta que no es un circuito muy preciso, que depende de muchos factores, no hay que hacerse muchas ilusiones al respecto.
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
Arduino
TM1638
Voltímetro y Amperímetro
xsetaseta@gmail.com
xsetaseta@gmail.com
En este artículo realizo un voltímetro y un medidor de intensidad.
Para medir la intensidad del circuito se inserta una resistencia de pequeño valor en serie con el circuito a medir.
Para no interferir en la tensión del circuito a medir, se debería utilizar una resistencia de valor mas bajo posible.
Como la caída de tensión en la resistencia es demasiado baja con una resistencia de por ejemplo 3 ohmios para poder ser medida por el arduino sin emplear otro componente adicional, empleamos una de 18 ohmios.
Con una resistencia de 18 ohmios y con una intensidad de 30 mA, producimos una caída de tensión de 0.5V en la tensión que ofrecemos al circuito a medir.
Por ejemplo : si tenemos de alimentación de 5V con un consumo de 30mA, entregaríamos solo 4.5V.
Como vemos debemos sopesar la resistencia a colocar en serie con circuito a mediar, y ajustarla a que la caída de tensión no sea grande.
Si quisiéramos medir en una escala de hasta 5mA ,deberíamos utilizar una resistencia de 100 ohmios para que la caída de tensión fuera como máximo de 0.5V .
Las 3 resistencias de 1K son a modo de protección del arduino, por si metemos un arduino mal programado.
Los 3 condensadores se utilizan para filtrar la alimentación, con unos 100uF 5V servirían.

Esquema teórico.

Esquema eléctrico.

Esquema de conexión.

Montaje del circuito y con una carga de 1K.
/* xsetaseta@gmail.com Juan Galaz 8/SEP/2017 */ #include <TM1638.h> //data(I/O) pin 8, clock(CLK) pin 9 , strobe(STB) pin 7 TM1638 module(8, 9, 7); #define ENTRADA1 A0 #define ENTRADA2 A1 char cadena[50]; unsigned int vv1,vv2,test3v3; #define RESISTENCIA 18 void setup() { //Serial.begin(9600); pinMode(ENTRADA1, INPUT); pinMode(ENTRADA2, INPUT); pinMode(A7, INPUT); //intensidad al minimo module.setupDisplay(1,0); module.setDisplayToString("vol ",0,0); delay(500); //toma la referencia de 3.3V test3v3=analogRead10(A7); } void loop() { byte keys; long voltios1,voltios2; unsigned int z1,z2; vv1=analogRead10(ENTRADA1); delay(150); vv2=analogRead10(ENTRADA2); delay(150); voltios1=vv1*33; voltios1*=10; voltios1/=test3v3; voltios2=vv2*33; voltios2*=1000; voltios2/=test3v3; z1=voltios1; //Voltios z2=voltios2/RESISTENCIA; //intensidad sprintf(cadena,"%03du%03di",z1,z2); module.setDisplayToString(cadena,0,0); module.setDisplayDigit(cadena[0]-48,0,1); module.setDisplayDigit(cadena[5]-48,5,1); /* Serial.println(cadena); sprintf(cadena,"vv1=%05d vv2=%05d test=%05d mA*10=%d ",vv1,vv2,test3v3,voltios2/RESISTENCIA); Serial.println(cadena); */ } //lectura de 10 medidas y hace la media int analogRead10(int entrada) { int z,v; for(z=0,v=0;z<10;z++)v+=analogRead(entrada); v/=10; return(v); } |
Nota: Debemos tener encuenta que no es un circuito muy preciso, que depende de muchos factores, no hay que hacerse muchas ilusiones al respecto.
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
jueves, 7 de septiembre de 2017
Probador nivel de batería con arduino y TM1638
Página principal
Arduino
TM1638
En mi anterior artículo había realizado un voltímetro con el CHIP TM1638.
Aprovechando el medidor de tensión realizo un comprobador de baterías.
En este montaje mido el voltaje de la batería a comprobar, con una resistencia de carga 470 ohmios.
Los 8 LEDS del módulo son utilizados como señalador de nivel de batería.
Para cambiar de escala se utilizan los botones S1 al S4.
Las escalas son:
S1 - escala 1.2V - Niveles 1.20V a 1.00V
S2 - escala 1.5V - Niveles 1.50V a 1.10V
S3 - escala 3.0V - Niveles 3.00V a 2.40V
S4 - escala 3.7V - Niveles 3.70V a 3.00V

Esquema de conexión.

Montaje del circuito.
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
tm16vol.html
Arduino
TM1638
Probador nivel de batería
xsetaseta@gmail.com
xsetaseta@gmail.com
En mi anterior artículo había realizado un voltímetro con el CHIP TM1638.
Aprovechando el medidor de tensión realizo un comprobador de baterías.
En este montaje mido el voltaje de la batería a comprobar, con una resistencia de carga 470 ohmios.
Los 8 LEDS del módulo son utilizados como señalador de nivel de batería.
Para cambiar de escala se utilizan los botones S1 al S4.
Las escalas son:
S1 - escala 1.2V - Niveles 1.20V a 1.00V
S2 - escala 1.5V - Niveles 1.50V a 1.10V
S3 - escala 3.0V - Niveles 3.00V a 2.40V
S4 - escala 3.7V - Niveles 3.70V a 3.00V

Esquema de conexión.

Montaje del circuito.
/* xsetaseta@gmail.com Juan Galaz 7/SEP/2017 Nivel de carga de bateria */ #include <TM1638.h> //data(I/O) pin 8, clock(CLK) pin 9 , strobe(STB) pin 7 TM1638 module(8, 9, 7); #define ENTRADA1 A0 char cadena[50]; unsigned int vv1,test3v3; // modo=12 1.2V // modo=15 1.5V // modo=30 3.0V // modo=37 3.7V char modo=12; void setup() { //Serial.begin(9600); pinMode(ENTRADA1, INPUT); pinMode(A7, INPUT); //intensidad al minimo module.setupDisplay(1,0); module.setDisplayToString("test bat",0,0); delay(500); //toma la referencia de 3.3V test3v3=analogRead10(A7); modo=15; } void loop() { byte keys; long voltios1; int z1; vv1=analogRead10(ENTRADA1); voltios1=vv1*33; voltios1*=10; voltios1/=test3v3; z1=voltios1; switch(modo) { case 12: sprintf(cadena,"12u %03du",z1); module.setLEDs(vumeter(z1,120,100)); break; case 15: sprintf(cadena,"15u %03du",z1); module.setLEDs(vumeter(z1,150,110)); break; case 30: sprintf(cadena,"30u %03du",z1); module.setLEDs(vumeter(z1,300,240)); break; case 37: sprintf(cadena,"37u %03du",z1); module.setLEDs(vumeter(z1,370,300)); break; } module.setDisplayToString(cadena,0,0); module.setDisplayDigit(cadena[0]-48,0,1); module.setDisplayDigit(cadena[4]-48,4,1); // Serial.println(cadena); // sprintf(cadena,"vv1=%05d test=%05d ",vv1,test3v3); // Serial.println(cadena); keys = module.getButtons(); switch(keys) { case 1: modo=12; break; case 2: modo=15; break; case 4: modo=30; break; case 8: modo=37; break; } // while( 0 != module.getButtons()); delay(300); } // vumeter unsigned char vumeter(int vol,int ini, int fin) { unsigned int z,z1,z2,led,vu; z=ini-fin; z/=8; z1=1; z2=0; vu=0; for(led=0;led<8;led++) { if(vol>fin) vu=vu+z1; fin+=z; z1+=z1; } return(vu); } //lectura de 10 medidas y hace la media int analogRead10(int entrada) { int z,v; for(z=0,v=0;z<10;z++)v+=analogRead(entrada); v/=10; return(v); } |
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
tm16vol.html
miércoles, 6 de septiembre de 2017
Doble voltímetro 0-15V con Arduino y TM1638
Página principal
Arduino
TM1638
Siguiendo con esta serie de artículos que emplean el TM1638, en este haremos un doble voltímetro.
Hay que mencionar que el voltaje del USB debería ser siempre de 5V, pero en la práctica se encuentra entre 4.5V y 5V . Como el conversor A/D toma la referencia sobre la tensión del USB , la medida real puede variar. Para solucionar este problema se hace una medida de referencia sobre los 3.3V del pin del arduino. Con la referencia tomada, se hace un cálculo con la medida tomada de la entrada de A0 y A1 y la referencia, corrigiéndose el valor.
En todas las medidas de voltaje, se hace una media de 10 medidas consecutivas, de esta forma se hace mas exacto la medida.
Como el arduino solo puede medir hasta 5V, para medir hasta 15V colocamos un divisor por 3 mediante 3 resistencias de 10K.
He utilizado el botón S1 para cambiar entre 1 y 2 decimales, algunas veces se necesitan 2 decimales.
En las pruebas prácticas se ha comprobado que las medidas son bastante exactas.

Esquema de conexión.

Montaje del circuito.

Visión con 2 decimales.
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
Arduino
TM1638
Doble voltímetro 0-15V
xsetaseta@gmail.com
xsetaseta@gmail.com
Siguiendo con esta serie de artículos que emplean el TM1638, en este haremos un doble voltímetro.
Hay que mencionar que el voltaje del USB debería ser siempre de 5V, pero en la práctica se encuentra entre 4.5V y 5V . Como el conversor A/D toma la referencia sobre la tensión del USB , la medida real puede variar. Para solucionar este problema se hace una medida de referencia sobre los 3.3V del pin del arduino. Con la referencia tomada, se hace un cálculo con la medida tomada de la entrada de A0 y A1 y la referencia, corrigiéndose el valor.
En todas las medidas de voltaje, se hace una media de 10 medidas consecutivas, de esta forma se hace mas exacto la medida.
Como el arduino solo puede medir hasta 5V, para medir hasta 15V colocamos un divisor por 3 mediante 3 resistencias de 10K.
He utilizado el botón S1 para cambiar entre 1 y 2 decimales, algunas veces se necesitan 2 decimales.
En las pruebas prácticas se ha comprobado que las medidas son bastante exactas.

Esquema de conexión.

Montaje del circuito.

Visión con 2 decimales.
/* xsetaseta@gmail.com Juan Galaz 6/SEP/2017 */ #include <TM1638.h> //data(I/O) pin 8, clock(CLK) pin 9 , strobe(STB) pin 7 TM1638 module(8, 9, 7); #define MULTIPLO 3 #define ENTRADA1 A0 #define ENTRADA2 A1 char cadena[50]; unsigned int vv1,vv2,test3v3; char modo=1; void setup() { //Serial.begin(9600); pinMode(ENTRADA1, INPUT); pinMode(ENTRADA1, INPUT); pinMode(A7, INPUT); //intensidad al minimo module.setupDisplay(1,0); module.setDisplayToString("VOL ",0,0); delay(500); //toma la referencia de 3.3V test3v3=analogRead10(A7); } void loop() { byte keys; long voltios1,voltios2; int z1,z2; vv1=analogRead10(ENTRADA1); delay(150); vv2=analogRead10(ENTRADA2); delay(150); voltios1=vv1*33; voltios1*=MULTIPLO; voltios1*=modo; voltios1/=test3v3; voltios2=vv2*33; voltios2*=MULTIPLO; voltios2*=modo; voltios2/=test3v3; z1=voltios1; z2=voltios2; if(modo==1) { sprintf(cadena,"%03du%03du",z1,z2); } else { sprintf(cadena,"%04d%04d",z1,z2); } module.setDisplayToString(cadena,0,0); module.setDisplayDigit(cadena[1]-48,1,1); module.setDisplayDigit(cadena[5]-48,5,1); // Serial.println(cadena); // sprintf(cadena,"vv1=%05d vv2=%05d test=%05d ",vv1,vv2,test3v3); // Serial.println(cadena); keys = module.getButtons(); if(keys==1) { if(modo==10) { modo=1; module.setLEDs(0); } else { modo=10; module.setLEDs(1); } while( 0 != module.getButtons()); } } //lectura de 10 medidas y hace la media int analogRead10(int entrada) { int z,v; for(z=0,v=0;z<10;z++)v+=analogRead(entrada); v/=10; return(v); } |
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
martes, 5 de septiembre de 2017
Temporizador 1 a 9999 segundos con Arduino y TM1638
Página principal
Arduino
TM1638
Siguiendo con el módulo que empleaba el CHIP TM1638, ahora hago un temporizador de 1 a 9999 segundos.
Es un contador que va desde el numero de segundos prefijado en los cuatro primeros displays hasta cero.
El numero de segundos es fijado con los 4 primeros pulsadores.
Cuando queramos que se inicie la cuenta atrás pulsaremos el botón S8.
Si queremos detener la cuenta atrás deberemos pulsar el botón S5.
Cuando el contador llegue a cero, parpadeará el display y se activará el pin D13 del arduino.
También he colocado un altavoz piezoeléctrico en el pin D12 del arduino a modo de aviso, esto es accesorio. Si queremos colocar otro tipo de altavoz deberéis colocar una resistencia en serie.

Esquema de conexión.

Montaje del circuito.
VIDEO DE FUNCIONAMIENTO
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
Arduino
TM1638
Temporizador 1 a 9999 segundos
xsetaseta@gmail.com
xsetaseta@gmail.com
Siguiendo con el módulo que empleaba el CHIP TM1638, ahora hago un temporizador de 1 a 9999 segundos.
Es un contador que va desde el numero de segundos prefijado en los cuatro primeros displays hasta cero.
El numero de segundos es fijado con los 4 primeros pulsadores.
Cuando queramos que se inicie la cuenta atrás pulsaremos el botón S8.
Si queremos detener la cuenta atrás deberemos pulsar el botón S5.
Cuando el contador llegue a cero, parpadeará el display y se activará el pin D13 del arduino.
También he colocado un altavoz piezoeléctrico en el pin D12 del arduino a modo de aviso, esto es accesorio. Si queremos colocar otro tipo de altavoz deberéis colocar una resistencia en serie.

Esquema de conexión.

Montaje del circuito.
/* |
VIDEO DE FUNCIONAMIENTO
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
lunes, 4 de septiembre de 2017
Arduino - TM1638 -Visor de temperatura y humedad
Página principal
Arduino
TM1638
Hace tiempo compré un módulo que empleaba el CHIP TM1638 , y no lo había utilizado hasta ahora. Estoy preparando una serie de montajes que utilizarán el mencionado módulo, y el primero en realizar es un visualizador de temperatura y humedad.
El módulo llevaba 8 led , 8 display, y 8 botones.
Este módulo se controla a través de 3 líneas; strobe(STB) , clock(CLK), data(I/O).
Aparte de las líneas de control necesita los cables de alimentación +5V y GND.
Hay que tener en cuenta que con lo máxima luminosidad puede llegar a consumir 150 mA . Se puede regular el consumo mediante el comando oportuno al TM1638.
El montaje es muy sencillo, se puede realizar en menos de 30 minutos.
Para el sensor de temperatura y humedad emplearemos el AM2302, que se comunica con el arduino mediante 1 sola línea.
Para la comunicación entre el arduino y el AM2302 se emplea la librería Wire . Se une el pin de datos del AM2302 con el pin del arduino D3 . También debemos colocar una resistencia de 10k entre el pin de datos del AM2302 y la alimentación.
Para controlar el TM1638 empleamos la librería https://github.com/rjbatista/tm1638-library
La comunicación entre el CHIP TM1638 y el arduino se hace mediante la siguiente conexión:
STB-> D7
CLK-> D8
DIO-> D9

Esquema de conexión.

Montaje del circuito.

Medida después de meter el circuito al congelador.
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
https://blog.3d-logic.com/2015/01/10/using-a-tm1638-based-board-with-arduino/
http://www.reuk.co.uk/wordpress/using-the-buttons-on-a-tm1638-module-with-arduino/
http://tronixstuff.com/2012/03/11/arduino-and-tm1638-led-display-modules/
http://www.reuk.co.uk/wordpress/arduino-code-for-displaying-numbers-on-tm1638-module-display/
Arduino
TM1638
Modulo LED&KEY
Temperatura y humedad
xsetaseta@gmail.com
Temperatura y humedad
xsetaseta@gmail.com
Hace tiempo compré un módulo que empleaba el CHIP TM1638 , y no lo había utilizado hasta ahora. Estoy preparando una serie de montajes que utilizarán el mencionado módulo, y el primero en realizar es un visualizador de temperatura y humedad.
El módulo llevaba 8 led , 8 display, y 8 botones.
Este módulo se controla a través de 3 líneas; strobe(STB) , clock(CLK), data(I/O).
Aparte de las líneas de control necesita los cables de alimentación +5V y GND.
Hay que tener en cuenta que con lo máxima luminosidad puede llegar a consumir 150 mA . Se puede regular el consumo mediante el comando oportuno al TM1638.
El montaje es muy sencillo, se puede realizar en menos de 30 minutos.
Para el sensor de temperatura y humedad emplearemos el AM2302, que se comunica con el arduino mediante 1 sola línea.
Para la comunicación entre el arduino y el AM2302 se emplea la librería Wire . Se une el pin de datos del AM2302 con el pin del arduino D3 . También debemos colocar una resistencia de 10k entre el pin de datos del AM2302 y la alimentación.
Para controlar el TM1638 empleamos la librería https://github.com/rjbatista/tm1638-library
La comunicación entre el CHIP TM1638 y el arduino se hace mediante la siguiente conexión:
STB-> D7
CLK-> D8
DIO-> D9

Esquema de conexión.

Montaje del circuito.

Medida después de meter el circuito al congelador.
/* |
Hasta pronto.
JUAN GALAZ
Bibliografía:
https://github.com/rjbatista/tm1638-library
https://blog.3d-logic.com/2015/01/10/using-a-tm1638-based-board-with-arduino/
http://www.reuk.co.uk/wordpress/using-the-buttons-on-a-tm1638-module-with-arduino/
http://tronixstuff.com/2012/03/11/arduino-and-tm1638-led-display-modules/
http://www.reuk.co.uk/wordpress/arduino-code-for-displaying-numbers-on-tm1638-module-display/
Suscribirse a:
Entradas (Atom)