QUEDADA AM - MAYO

Charla impartida por el SBC: «INICIACIÓN AL BETTA».
DOMINGO, 11 DE MAYO. ¡APÚNTATE YA!

Más info
image01

¿Aún no conoces AMA?

Hazte socio de Acuariofilia Madrid Asociación.
CERRADO EL PLAZO DE INSCRIPCIÓN

Más info
image01

Atlas de peces de AM

¡Hemos alcanzado las 800 fichas! Visita nuestro atlas de peces actualizado.

Más info
image01

Cardúmenes y sociabilidad

Nueva actualización de la tabla con una extensa relación de peces, donde podrás conocer qué entorno necesita cada especie, su sociabilidad y si convive o no en cardumen. ¡Pasa a descubrirla!

Mas info
image01
Aula Arduino para principiantes.
Respuestas: 1783    Visitas: 434898
#1,231
As acertado en todo, el regulador de tensión de la derecha es para transformar la tensión de la fuente 24V a 12V para los ventiladores, tiene un potenciometro para ajustar la tensión de salida, intensidad máxima de 5A, pvp 2,65 €.
La plaquita con el display es otro regulador, este es para alimentar al Arduino, aguanta 2A, el display es para ver la tensión de entrada y de salida, es ajustable como el anterior, pvp 3,50 €.
Los tres transistores grandes son TIP 141 para los leds, tengo que poner otro en otra placa porque no me cogía en esta, como no tenia mas de estos he puesto un mosfet IRFZ44N, que dicen que van muy bien (no lo he probado).
Los transistores mas pequeños son TIP 120 para los ventiladores, el radiador diferente lo hice casero pues no tenia mas. Por ultimo la plaquita pequeña efectivamente es el RTC DS3231, pvp 1,72 €, de momento va perfecto, y al lado de este el Arduino Mega.

La masa (-, GND) de toda le electrónica la tengo comun.
#1,232
Supongo que entonces usarás 24v para dimeo de LEDs y 12 voltios para los ventiladores.

Que sepas que puedes poner dos ventiladores pequeños de 12v en serie y alimentarlos con 24v.

La tensión de alimentación recomendada para Arduino va de 7 a 12V y a mí no me gusta alimentar con 12V los Arduinos aunque en teoría se pueda porque el voltaje excedente aumenta el calor allí donde se produce la caída de tensión. Mejor usar un regulador externo a la placa de Arduino para aliviarle ese trabajo. Todos en plena canícula dejamos los equipos funcionando y nos vamos de vacaciones a un lugar más fresquito. Si mientras tanto vas a dejar a tu Arduino alimentado con 12V, piénsatelo.
#1,233
Tienes razon, yo alimento al Arduino con 8,5V, en cuanto a los ventiladores, tenia pensado poner 3, ya que la pantalla es muyyyy larga, 1,5 m.-blink.gif
#1,234
No, me refería al regulador de tensión, pero no se, puedo alimentarlo con un transformadores independiente solo para el arduino tipo cargador de movil[Imagen: ee3873ecbbcd816b1c1b2d7faee8c9b9.jpg]

Ahora tengo otra pregunta, me he descargado el manual y en el indicas como ha de instalarse el software y compilación pero la verdad es que no se como hacerlo, también quería preguntar si es necesario resetear el arduino o algo así ya que antes había intentado grabar otro proyecto y siendo así como tendría que hacerlo
#1,235
Ese adaptador te ira bien para alimentar al Arduino.
No tienes que resetear nada, compilas CAO y lo cargas. Antonio te lo explicara mejor que yo.
#1,236
(24-05-2015, 04:54 PM)beleitor escribió: Tienes razon, yo alimento al Arduino con 8,5V, en cuanto a los ventiladores, tenia pensado poner 3, ya que la pantalla es muyyyy larga, 1,5 m.-blink.gif

Puedes entonces poner cuatro ventiladores y así irán más despacio, harán menos ruido y puedes usarlos a 24v usando un montaje serie paralelo 2 a 2.
#1,237
(24-05-2015, 05:07 PM)Gomeron escribió: No, me refería al regulador de tensión, pero no se, puedo alimentarlo con un transformadores independiente solo para el arduino tipo cargador de movil
[...]
Ahora tengo otra pregunta, me he descargado el manual y en el indicas como ha de instalarse el software y compilación pero la verdad es que no se como hacerlo, también quería preguntar si es necesario resetear el arduino o algo así ya que antes había intentado grabar otro proyecto y siendo así como tendría que hacerlo
En efecto es fuente de alimentación te sirve perfectamente. Creo que internamente el consumo no puede superar 1/2 amperio.

En cuanto a las instrucciones. Si antes que nada puedes instalar el último IDE 1.6.4 mejor. Tendrás que descargar el fichero comprimido y situarlo dentro de la carpeta sketchbook, allí lo descomprimes y ya solo te faltará instala un par de librerías (OnWire y LiquidCrystal). Al abrir este busca en skeetchook y allí lo encontrarás. seleccionas la tarjeta Arduino Mega en el IDE, enchufas por USB el Arduino, das a compilar y cargar y suponiendo que todo marche bien pierdes el programa preexistente, se carga con el nuevo y empieza a funcionar con la alimentación USB, puedes abrir la ventana del Terminal Serial en el IDE para ve que va haciendo. Todo esto de forma mas detallada se explica en los ficheros leeame. Te pongo uno de ellos.

Guía de instalación de CAO1

Le recordamos que existe una página principal de CAO que le será de mucha ayuda.

http://www.ciberdroide.com/cao

En esta página podrá encontrar la dirección para descargar la última versión disponible para CAO.

Requerimientos del sistema

La aplicación ha sido desarrollada para Arduino Mega 2560 R3. Algunos elementos hardware son opcionales, pero otros tienen muchas dependencias con una gran cantidad de módulos de software. Tal es el caso de los módulos que nos ofrecen una interfaz de uso del sistema.

Por ello, el display LCD de 20x4, el zumbador piezoeléctrico (Buzzer) y la botonera de 5 pulsadores, se consideran elementos clave mucho más difíciles de sustituir que otros. Son muchos los módulos que los usan.

Tanto el LCD, el zumbador o la botonera actúan como si fueran una capa de software por debajo del nivel de otros módulos de la aplicación y cualquier módulo que se añada, seguramente quedará a un nivel superior y puede necesitar usarlos. Son tres módulos que actúan de interfaz entre el sistema y los humanos que han de manejarlo.

Instalación del software y compilación

Descomprima el fichero zip y leea este fichero Leame.txt, para ello:

1) Primero deberá descargar el fichero comprimido. Descomprima y deje la carpeta CAO1_1 con todo su contenido dentro de su carpeta Sketchbook. (OJO: No traslade los módulos a su carpeta de librería de Arduino ya que son parte de la aplicación.

2) Si no sabes donde se encuentra tu carpeta Sketchbook, entra en el IDE de Arduino. En la opción de menú (File --> Preferences ) verás la localización del llamado Sketchbook directory. Es la carpeta donde tienes que meter la tuya (CAO1_1) con toda la aplicación.

3) Luego bastará buscarla aplicación desde el IDE (File --> Sketchbook ).

4) Al abrirlo de esa forma ya te tiene que aparecer el fichero principal y las pestañas de los demás ficheros, incluidos los headers.

5) Antes de compilar, si es la primera vez que lo haces, repasa la configuración de tu IDE y asegúrate de que has configurado la tarjeta Arduino que vas a usar, y luego podrás compilar sin necesidad de nada más.

6) Existen un par de librerías externas que deben ser instaladas.

Es importante que se familiarice con la instalación de librerías externas. Estas, pese a ser de propósito general, no vienen incluidas en el software de librerías estándar que acompañan al IDE de Arduino.

Las librerías externas con mucha frecuencia sirven para habilitar el uso de un determinado hardware. Dicho hardware suele recomendar un tipo de librería concreto y un ejemplo para probar ambas cosas, la librería y su hardware en su Arduino. Mientras no realice esta comprobación de rutina, le recomendamos que no continúe con el proceso de instalación. Debe usted asegurarse que dispone del software que necesita su hardware. (Será lo equivalente a un driver para su hardware).

La instalación de librerías externas es un tipo de operación muy habitual en sistemas basados en Arduino. Consiste en en descargar un fichero comprimido y extraer su contenido en el directorio reservado a las librerías de Arduino. El propio IDE puede facilitar esta operación. (Sketch > Import Library > Add Library) Solicitará la ruta al fichero comprimido de la librería que hemos descargado y se encargará de instalarla en el directorio correcto.

Las librería externas que vamos a necesitar son dos:

LiquidCrystal: (Véase la nota al final).
OnWire: Se trata de la librería de bajo nivel que nos permitirá comunicar con los sensores de temperatura DS18B20. Puedes cargar esa librería desde:

http://www.pjrc.com/teensy/arduino_libra...neWire.zip

Postinstalación:

Debe configurar sus sensores. En especial deberá editar las direcciones de tus sensores de temperatura DS18B20. Puede que todo esté bien, pero por precaución revisa la consistencia de todo el fichero CAO1_1.h con tu hardware. En particular los pines que va a usar para cada cosa.

El código fuente está ampliamente comentado.

En este fichero se han reservado pines para usos futuros tales como:

.

#define Pin_ReleCalefAcua Pin_Rele_220V_INI // Pin del relé Calefaccion del acuario

#define Pin_Filtro (Pin_Rele_220V_INI+1) // Pin del relé del filtro

#define Pin_ReleCO2 (Pin_Rele_220V_INI+2) // Pin del relé de CO2

Para cualquier duda acuda a la página princial de CAO donde podrá encontrar formas de contacto con el autor, algún foro de soporte técnico, etc.

Recomendaciones de seguridad

Recuerda que ni este texto, ni el sistema CAO1 se hacen responsables de accidentes, ni se ofrece ningún tipo de garantías sobre el funcionamiento de lo que decidas llevar a cabo. Dicho esto, hago una serie de advertencias para tu consideración.

Todos los elementos eléctricos de un acuario deben llevar su toma de tierra. Hay algo que no se suele hacer, pero el propio agua del acuario debería tener una derivación a tierra para que esa derivación accidental no pueda ocurrir a través de un cuerpo humano cuando este meta las manos en un acuario.

Lo que es incluso más importante que poner el agua conectada a la toma de tierra es que toda la instalación eléctrica del acuario esté protegida por un diferencial que salte al detectar cualquier derivación que pueda producirse. Esto podría llegar a ocurrir por múltiples causas. Por ejemplo: por la entrada accidental de agua en un termocalentador partido o defectuoso, o por una fuga de agua en el interior de la bomba del filtro, etc.

Aparte de estos problemas de seguridad que afectan a cualquier instalación de aparatos eléctricos para los acuarios, deberá en este caso prevenir desastres por mal funcionamiento de los sensores.

Debe de usar sensores de plena confianza instalados con la máxima garantía de funcionamiento. Debería documentarse y tener claro lo que podría pasar si por ejemplo un determinado sensor falla en su ausencia.

Preste especial atención a cualquier sensor o cualquier elemento que deba instalarse sumergido en el agua del acuario. En el caso de un sensor de temperatura conectado a un bus oneWire (tal y como sucede en nuestros sensores DS18B20), un fallo de hermeticidad puede afectar al resto de los sensores conectados a es bus. En mi caso tras dos semanas de funcionamiento correcto, ambos sensores de temperatura empezaron a entregar lecturas de cero grados. Afortunadamente sonó la alarma estando yo presente y lo solucioné desactivando el sensor de temperatura del acuario y el sensor de temperatura de los LEDs, el sistema en lo relativo a los sensores desactivados adoptó un modo de funcionamiento llamado seguro diseñado precisamente para este tipo de situaciones. Si esto hubiera ocurrido en mi ausencia, los LEDs habrían continuado calentándose hasta fundirse porque el sistema consideraba cero grados en ambos sensores de temperatura. Si además de ello hubiera conectado un termocalentador únicamente controlado por la sonda de temperatura del acuario, me habría encontrado 150 litros de sopa de pescado con verduras calentita y todo al volver a casa.

Debe ser muy consciente de que CAO1 es un proyecto experimental, donde la fiabilidad del mismo dependerá íntegramente de sus habilidades y de su prudencia. No pruebe su sistema CAO1 directamente en un acuario con peces. Debe de hacer pruebas por un tiempo. Por propia experiencia, recomiendo no confiarse ya que los problemas derivados de falta hermeticidad en algún elemento pueden aparecer tras meses de funcionamento correcto y eso me pasó a mí hace algún tiempo con una sonda de temperatura comercial. Es decir, con un producto supuestamente garantizado.

En CAO1 los sensores que actúan sobre alguna salida digital tendrán asociados un modo de funcionamiento que hemos denominado seguro, y que consistirá en dejar las salidas en el estado menos perjudicial para un equipo en el cual dicho sensor no funcione. El modo seguro está pensado únicamente para minimizar las consecuencias de un fallo del sistema.

Este modo seguro solo se activará cuando:

1) El sensor no puede ser inicializado.

2) Cuando el sensor sea desactivado.

3) También temporalmente cuando entramos en el modo de menú de mantenimiento.

NOTA: Aclaración sobre la librería LiquidCrystal

La librería que yo uso es esta:

http://www.dfrobot.com/wiki/index.php/I2...U:DFR0154) pero no se precipite. Puede que no sea esta la que usted necesita.

Hay varias implementaciones disponibles para esta “librería” 'LiquidCrystal Library'. Concretamente existe una denominada 'LCD Library' que deriva de la 'LiquidCrystal' Dice que es 5 veces más rápida y que conserva compatibilidad con la anterior.

https://bitbucket.org/fmalpartida/new-li.../wiki/Home

En realidad la denominación de 'LiquidCrystal Library' no corresponde una librería propiamente dicha y esto puede causar confusión. Más bien se refiere a un estándar para librerías LCD basadas en el chipsets Hitachi HD44780 o compatibles. Podemos apreciar esto en la página siguiente:

http://arduino.cc/en/pmwiki.php?n=Refere...uidCrystal

Solo se describe el api (lo cual interesa conocer), pero no se menciona lugar de descarga de la librería porque existen varias librerías con distintas implementaciones que implementan idéntica funcionalidad. Si cada uno instala la librería recomendada en el lugar donde adquiríó su LCD, le funcionará perfectamente. Asegúrese que instala el software adecuado para su LCD haciendo funcionar el ejemplo. Si en el lugar don va a adquirir su LCD no viene la librería que debe usar ni un ejemplo para probarla, puede tener usted serios problemas para hacerla funcionar.
#1,238
Es una buena opcion, de momento lo dejare con tres puesto que ya lo tengo medio montado y tengo tres ventiladores, si veo que le falta refregeracion cambiare el montaje a 24V. poniendo 4 ventiladores.-good.gif
#1,239
No se pero algo hago mal, he seguido las instrucciones y soy incapaz de hacerlo bien, me da errores
#1,240
Puede ser que te falte alguna librería.
Coméntale a Antonio que errores te da.
#1,241
[Imagen: c3c26a42efbe0ab20d77ae9442b676d7.jpg][Imagen: b981378379e7b6f770e6d33430bd478d.jpg]

Otra cosa, si tengo ocupados algunos sitios y necesito pinchar el reloj en uno de esos sitios, como hago?
#1,242
Se queja de que la variable p no está declarada aunque eso no es cierto.

const prog_char *p= (const prog_char *)fmt;

Este no es el verdadero error. Creo que primero falla la declaración y luego cuando se intenta usar la variable da un segundo error.

Siempre hay que fijarse en el primer error que aparece porque el resto puede ser consecuencia del primero. Yo suelo dar más lineas a la ventana que muestra los errores de compilación.

Seguramente te está diciendo que no reconoce el tipo prog_char

Ya no me acordaba que los nuevos IDEs por la razón que sea no incluyen este tipo.





Código:
// ****************************************************************
char *Cao1_Lcd20x4::Fmt(const __FlashStringHelper *fmt, ...){
    int n = 0;
    int i;
    va_list ap;
    char Cad[MAX_BUFF_MESG];
    const prog_char *p= (const prog_char *)fmt;

    // Copiar en una cadena
    while (i<=MAX_BUFF_MESG) {
        unsigned char c = pgm_read_byte(p++);
        Cad[i]=c;
        if (c == 0) break;
        i++;
    }

Yo lo que hice fue crear un fichero un ficherito 'ProgChar.h' y en los módulos que usan
prog_char para que no den error pongo un

#include "ProgChar.h"

El contenido de este fichero, que tienes que crear y copiar en el mismo directorio que el resto de la aplicación, solo tiene la declaración del tipo 'ProgChar.h'.

Puedes crear el fichero tú mismo e incluir en él lo siguiente.

Código:
// ProgChar.h
// Definicion de prog_char para caracteres almacenados en la flash ROM (progmem)
/************************************************************************************
typedef char PROGMEM prog_char
This typedef is now deprecated because the usage of the __progmem__ attribute on a
type is not supported in GCC. However, the use of the __progmem__ attribute on a
variable declaration is supported, and this is now the recommended usage.
The typedef is only visible if the macro __PROG_TYPES_COMPAT__ has been defined before
including <avr/pgmspace.h> (either by a define directive, or by a -D compiler option.)
**************************************************************************************/

#ifndef ProgChar_h
#define ProgChar_h
#include <Arduino.h>
#include <avr/pgmspace.h>

typedef char PROGMEM prog_char; // En caso de problemas siga las recomendaciones siguientes.
#endif

NOTA:
La mayor parte de este fichero es un comentario en inglés que explica el motivo de por qué dan ahora estos errores en todos los nuevos IDEs. Imagino que no soy el único afectado. Todos los programas que usaran el tipo prog_char habrán sufrido este problema desde que salio el IDE 1.6.1.

Después de esto, todo me ha vuelto a funcionar. Ya se me había olvidado este pequeño detalle, pero mejor que lo descubráis ahora, porque veo a mucha gente despistada con esto.

El arreglo ha sido muy tonto. Yo busqué como estaba definido el tipo anteriormente en las librerías de Arduino y una vez localizado, simplemente le he puesto el parche volviendo a definirlo. Sorpresa, todo funciona sin problemas.
#1,243
El reloj RTC y la pantalla LCD I2C van conectados a los mismos pines, tendrás que ingeniártelas para empalmar los 2 cables al mismo pin.-fisch.gif
#1,244
Perdona Antonio, pero no entiendo nada de lo que me estas indicando, donde puedo buscar ese fichero, donde lo tengo que poner?
#1,245
(25-05-2015, 03:24 PM)Gomeron escribió: Perdona Antonio, pero no entiendo nada de lo que me estas indicando, donde puedo buscar ese fichero, donde lo tengo que poner?

Creas un fichero llamado ProgChar.h Lo editas cortando y pegando en él el código que acabo de ponerte en el mensaje anterior.

En cada uno de fuentes que dé ese problema, lo editas y añades una linea con los otros includes poniendo el include de este fichero.

#include "ProgChar.h"

Respecto a donde ponerlo, me surge una duda. Tú donde has colocado los fuentes de los programas que has compilado.

Usuarios navegando en este tema: 2 invitado(s)


Salto de foro: