Acuariofilia Madrid

Versión completa: Aula Arduino para principiantes.
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Por la fecha en que se subió y el nombre, parece que es el de Juanma.

Gracias por el vídeo Juanma.

En la nueva versión que tenéis ahora, uso dimeo exponencial que se verá más gradual, pero para una primera prueba está muy bien. -good.gif

No se ve humo saliendo de los LEDs, ni del dimmer, es buena señal Big Grin
Eso es que eres un buen maestro Antonio Smile .

Haber si para el próximo curso me apuntó Yo Big Grin .
Yo espero poder hacerme el mío también.
De momento no tenemos programador android/ios para hacer una app, no?
Despues de todo el tiempo de espera explicaciones y demas ....no esta mal para uno que no tiene ni PI de electronica y menos de arduino.....estoy contento con mi proyecto y contento de que a antonio no le ha dado un ictus conmigo .....mucha paciencia hay que tener para aguantarme....pero ole....ole..y..ole....por antonio esta hecho un crack.....te felicito Sr Castro.
Buenos dias, ayer por fin me compre un ordenador nuevo, todo el dia pasando informacion del IBM a este,antonio.....problemas con la compilacion de la nueva version del dimmer 1C...voy a trastear y te comento.

Este es el primer error.
LCD.PrintLnSerBeep("", true, true);
y despues en todos estos
void Refresh(){
DateTime now = RTC.now();
uint32_t UnTi;

UnTi=now.unixtime();
Dimmer.UpdateDimeos();
LCD.ChLineFill(0); // Borrar primera linea
LCD.SetLine(1, now.UnixTime2StrTime(UnTi));
LCD.SetLine(2, Dimmer.GetStrDimmer());
LCD.SetLine(3, Dimmer.GetStrStRegrig());
LCD.Refresh();
}
esto es todo lo que me sale en la barra inferior
Dimmer1C.ino:21:36: error: CaoDim1C_Botonera5Puls.h: No such file or directory
Dimmer1C.ino:22:27: error: CaoDim1C_Buzz.h: No such file or directory
Dimmer1C.ino:23:30: error: CaoDim1C_Dimer1C.h: No such file or directory
Dimmer1C.ino:24:33: error: CaoDim1C_FotoPeriod.h: No such file or directory
Dimmer1C.ino:25:30: error: CaoDim1C_Lcd20x4.h: No such file or directory
Dimmer1C.ino:26:31: error: CaoDim1C_MathMisc.h: No such file or directory
Dimmer1C.ino:27:27: error: CaoDim1C_Parm.h: No such file or directory
Dimmer1C.ino:28:27: error: CaoDim1C_Turn.h: No such file or directory
Dimmer1C.ino:29:26: error: CaoDim1C_RTC.h: No such file or directory
Dimmer1C.ino:30:27: error: CaoDim1C_Menu.h: No such file or directory
Dimmer1C.ino:31:35: error: CaoDim1C_Menu_Princip.h: No such file or directory
Dimmer1C.ino:32:40: error: CaoDim1C_Menu_PuestaEnHora.h: No such file or directory
Dimmer1C.ino:33:32: error: CaoDim1C_Menu_Parm.h: No such file or directory
In file included from Dimmer1C.ino:18:
C:\Users\juanma1970\Desktop\Nueva carpeta\arduino-1.0.5-r2\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:81: error: conflicting return type specified for 'virtual void LiquidCrystal_I2C::write(uint8_t)'
C:\Users\juanma1970\Desktop\Nueva carpeta\arduino-1.0.5-r2\hardware\arduino\cores\arduino/Print.h:48: error: overriding 'virtual size_t Print::write(uint8_t)'
Dimmer1C.ino: In function 'void CR()':
Dimmer1C:101: error: 'LCD' was not declared in this scope
Dimmer1C.ino: In function 'void Refresh()':
Dimmer1C:107: error: 'DateTime' was not declared in this scope
Dimmer1C:107: error: expected `;' before 'now'
Dimmer1C:110: error: 'now' was not declared in this scope
Dimmer1C:111: error: 'Dimmer' was not declared in this scope
Dimmer1C:112: error: 'LCD' was not declared in this scope
Dimmer1C.ino: In function 'void LeerBotonera()':
Dimmer1C:126: error: 'Pulsad' was not declared in this scope
Dimmer1C:127: error: 'MenuPrincipal' was not declared in this scope
Dimmer1C.ino: In function 'void ResetConf()':
Dimmer1C:138: error: 'Aviso' was not declared in this scope
Dimmer1C:139: error: 'Dimmer' was not declared in this scope
Dimmer1C:139: error: 'Parm' was not declared in this scope
Dimmer1C:139: error: 'EP_MAXDIM' was not declared in this scope
Dimmer1C:139: error: 'EP_DIMREFRIG' was not declared in this scope
Dimmer1C.ino: In function 'void setup()':
Dimmer1C:152: error: 'Buzz' was not declared in this scope
Dimmer1C:153: error: 'LCD' was not declared in this scope
Dimmer1C:155: error: 'Pulsad' was not declared in this scope
Dimmer1C:157: error: 'Parm' was not declared in this scope
Dimmer1C:165: error: 'Dimmer' was not declared in this scope
Dimmer1C:165: error: 'EP_MAXDIM' was not declared in this scope
Dimmer1C:165: error: 'EP_DIMREFRIG' was not declared in this scope
Dimmer1C:167: error: 'RTC' was not declared in this scope
Dimmer1C:169: error: 'TurnDisplay' was not declared in this scope
Dimmer1C.ino: In function 'void loop()':
Dimmer1C:182: error: 'TurnDisplay' was not declared in this scope
Juanna, a mi me compila perfectamente, con Arduino 1.05 (igual me equivoco en la versión, la última estable...).

Has copiado toda la carpeta de Antonio en la carpeta de skechts del Arduino?

Saludos
Si, de primeras parece que no encuentra los ficheros *.h y por eso no compila. Comprueba las rutas a ver si son correctas.
Creo que es por que he cogido los archivos del antiguo pc que es de 32 bits y este es de 64.....lo borrare todo y empezare de cero....
Lo de los 32 o 64 bits no parece que tenga nada que ver.

Si copias toda la carpeta de la aplicación en la carpeta de skechts del Arduino no debería dar esos errores. Me temo que algo has hecho diferente.
Hola Antonio,

Necesito una pequeña ayuda, ya que después de investigar por internet e intentar aplicar posibles soluciones, sigo en las mismas...

Ya tengo todo montado, programando los menús,horarios, etc. Sin embargo estoy viendo que los sensores de temperatura a veces me dan lecturas erróneas. Unas veces de forma puntual y otras veces de forma constante. En principio tenía los 3 sensores siguiendo este esquema:
[Imagen: F79RUWEGTUY9ZXQ.MEDIUM.jpg]

Y después de ver los fallos, vi otro esquema en el que se conectaba el pin 3 también a GND, pero sigue dando fallos aleatorios.

Como te decía, en algunos casos los 3 sensores me devuelven la temperatura, en otros casos solo 2 sensores dan temperatura, y así hasta el peor de los casos donde todos los sensores dan valores de error. El error que marcan los sensores de forma indistinta es 85 grados en algunos momentos y -127 grados en otros momentos.

He leído que estos sensores necesitan unos 750 ms entre lecturas, pero después de poner esos delays en distintos sitios del proyecto y seguir fallando, ya no sé que hacer.

¿Me sabrías dar alguna indicación?
Gracias!
Dani.
(17-08-2014, 11:15 PM)daninonino escribió: [ -> ]Hola Antonio,

Necesito una pequeña ayuda, ya que después de investigar por internet e intentar aplicar posibles soluciones, sigo en las mismas...

Ya tengo todo montado, programando los menús,horarios, etc. Sin embargo estoy viendo que los sensores de temperatura a veces me dan lecturas erróneas. Unas veces de forma puntual y otras veces de forma constante. En principio tenía los 3 sensores siguiendo este esquema:
[Imagen: F79RUWEGTUY9ZXQ.MEDIUM.jpg]

Y después de ver los fallos, vi otro esquema en el que se conectaba el pin 3 también a GND, pero sigue dando fallos aleatorios.

Como te decía, en algunos casos los 3 sensores me devuelven la temperatura, en otros casos solo 2 sensores dan temperatura, y así hasta el peor de los casos donde todos los sensores dan valores de error. El error que marcan los sensores de forma indistinta es 85 grados en algunos momentos y -127 grados en otros momentos.

He leído que estos sensores necesitan unos 750 ms entre lecturas, pero después de poner esos delays en distintos sitios del proyecto y seguir fallando, ya no sé que hacer.

¿Me sabrías dar alguna indicación?
Gracias!
Dani.

Olvídate Antonio,
He visto que en mi programa no se estaban detectando las direcciones. He probado a detectar los sensores en una carga aparte y todo funcionaba perfectamente. No sé exactamente porqué, pero lo he solucionado poniendo el escaneo de sensores lo primero de todo (antes de los relés, pantallas, etc) y ha funcionado...

Saludos,
Dani
Hay varios sensores de temperatura, deduzco que estas usando el DS18B20 de Dalas.

[Imagen: IERSV1H.jpg]

1) Estás usando los sensores conectados en modo alimentación parásita, pero ¿No debería ir unida la patilla 1 y la 3 en ese modo? Yo nunca los he usado así. Para distancias largas es mejor el modo normal que es el que yo uso.

2) Lo mejor es usar cable blindado con la malla a masa. Por dentro del blindaje dos o un cable dependiendo del modo de conexión

3) Si tienes un solo sensor puedes leer el sensor que el sistema situe en la primera posición. Si hay más de un sensor no sabrás en que posiciones ha dejado situados los sensores, lo que debes hacer es leer por dirección. Es una dirección única muy larga que viene grabada en la memoria de cada sensor a modo de firma y que hay que detectar por posición y registrar en el programa para diferenciar cada sensor.

4) La codificacion que he visto para este sensor ofrece sistemas de lectura que tardan unos 750 ms. Lo cierto es que primero ha de enviarse un comando al sensor y pasado unos 750ms ya está disponible el dato que se obtiene con otro comando. He recodificado estos procedimientos para que se obtenga el dato y se deje preparado el sensor para la siguiente lectura. Al inicializar el senso lo dejo preparado. Yo las lecturas las hago como muy rápido una vez por segundo coincidiendo con el refresco de la información en pantalla. Con este sistema logro que la lectura de temperatura sea instantánea, aunque eso sí, la lectura que muestra es la que corresponde al refresco anterior, lo cual es perfectamente aceptable. Si necesitas mi módulo para eso te lo paso, pero está pensado para intearactuar con otros modulos y tendrías que modificarlo. Podría pasartelo modificado sin esas dependencias. Puede que te interese hacer las lecturas rápidas como las hago yo.

5) Los problemas derivados de un orden diferente en la inicialización del hardware suelen tener que ver con dependencias de unos módulos con otros. Esos sensores necesitan tyner instanciado el objeto OnWire sobre el pin de entrada salida digital que se usará para el sensor.

Por ejemplo:

#define Pin_DS18x20 8 // Definir pin para el bus OnWire con sensores DS18x20
OneWire ds(Pin_DS18x20); // Instanciamos objeto OnWire con el Pin DS18x20_Pin
Luego el modulo de DS18B20 usaría ese objeto ds de tipo OneWire.

6) La impermeabilización de este sensor no es un asunto trivial. Venden sondas sumergibles que terminan fallando al cabo de unas semanas.

7) El control de temperatura, ya sea del acuario o de los LEDs es un tema crítico donde los fallos tienen consecuencias. Yo uso la sonda para medir la temperatura del acuario pero no voy a controlar la temperatura del mismo nada más que para refrigerar. La temperatura de los LEDs la controlo también con este tipo de sensor.

Me va muy bien. Es una maravilla.
No hay manera de que me compile el codigo dimmer 1c , a ver si no me acuerdo como meter la carpeta en el sketch, podriais darme los pasos para meter la carpeta dentro por favor?
Es que ya estoy mas liado que la picha un novio.
Busca en preferencias la ruta de la carpeta
(18-08-2014, 12:24 PM)juanma1970 escribió: [ -> ]No hay manera de que me compile el codigo dimmer 1c , a ver si no me acuerdo como meter la carpeta en el sketch, podriais darme los pasos para meter la carpeta dentro por favor?
Es que ya estoy mas liado que la picha un novio.

1) Entra en el IDE. En la opción de menú (File --> Preferences ) verás la localización del llamado Sketchbook directory. Es la carpeta donde tienes que meter tu carpeta con toda la aplicación.

2) No toques la configuración de las rutas, porque esas indican donde están las librerías.

3) Luego bastará buscarlo 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 y compilará sin necesidad de nada más.