Bienvenido, Invitado |
Tienes que registrarte para poder participar en nuestro foro.
|
Estadísticas del foro |
» Miembros: 17,119
» Último miembro: Rho aias
» Temas del foro: 12,123
» Mensajes del foro: 117,267
Estadísticas totales
|
|
|
Qué motor es este? |
Enviado por: Lord Bergidum - 27-06-2013, 10:09 PM - Foro: Electrónica
- Respuestas (15)
|
|
He desmontado un portátil muy viejo que tenía y he aprovechado los ventiladores. El problema es que no tengo ni idea de que tipo de motor llevan. De continua no parecen ya que llevan 3 cables, ¿Son universales?
|
|
|
Usar la memoria EEPROM d Arduino para la config del programa |
Enviado por: giltesa - 26-06-2013, 11:32 PM - Foro: Arduino
- Respuestas (1)
|
|
Usar la memoria EEPROM de Arduino para guardar la configuración del programa de forma muy cómoda :zpalomitas:
Código: /*
Author: Alberto Gil Tesa
WebSite: http://giltesa.com
License: CC BY-NC-SA 3.0
Date: 26/06/2013
Description:
Ejemplo de uso de una estructura STRUCT y UNION combinadas
para almacenar varios datos de forma comoda en la memoria
EEPROM del Arduino.
Cada vez que se reinicia el Arduino con el boton de RESET,
o se conecte a la corriente, aumentaran los datos y se
imprimiran los nuevos.
Solo es un ejemplo, lo ideal seria guardar la configuracion
de nuestro programa al encender el Arduino, y modificarla
desde un menu con un LCD y unos botones, etc.
Recomiendo leer las entradas:
Estructuras UNION: http://giltesa.com/?p=13666
Uso de las estructuras: http://giltesa.com/?p=13693
*/
struct DATOS{
float temperatura;
float humedad;
int luz;
boolean usable;
};
union MEMORIA{
DATOS dato;
byte b[sizeof(DATOS)];
}
miMemoria;
#include <EEPROM.h>
#define address 0
void setup()
{
// Se recuperan los datos de la memoria EEPROM:
for( int i=0 ; i<sizeof(DATOS) ; i++ )
miMemoria.b[i] = EEPROM.read( address+i );
// Se comprueba que se hayan podido leer los datos (que no se haya leido basura)
// No es la forma mas elegante de hacerlo pero funciona:
if( miMemoria.dato.usable == true )
{
miMemoria.dato.temperatura += 0.5;
miMemoria.dato.humedad += 0.1;
miMemoria.dato.luz += 1;
}
// Si nunca se habian usado se inicializan todos los datos:
else
{
miMemoria.dato.temperatura = 0.0;
miMemoria.dato.humedad = 0.0;
miMemoria.dato.luz = 0;
miMemoria.dato.usable = true;
}
// Se guardan los datos en la memoria EEPROM:
for( int i=0 ; i<sizeof(DATOS) ; i++ )
EEPROM.write( address+i , miMemoria.b[i] );
// Se imprime por pantalla los datos:
delay(1000);
Serial.begin(9600);
Serial.print("Temperatura = "); Serial.println(miMemoria.dato.temperatura);
Serial.print("Humedad = "); Serial.println(miMemoria.dato.humedad);
Serial.print("Luz = "); Serial.println(miMemoria.dato.luz);
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
}
void loop()
{
// Una vez cargamos los datos en el SETUP ya podemos hacer uso de ellos desde nuestro programa.
// ...
}
|
|
|
|