Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Dudas Liberia y EEPROM
#21
Las librerias que te carga son todas las que vienen en el pack de malpartida, pero con la que señalas es suficiente. Estoy desde el movil, pero me parece que el lcd es como el mio. La direccion de la pantalla sera la 0x27. Pasale el scanner i2c cuando te llegue si ves que no te funciona en la 0x20 ni en la 0x27.

Sobre lo de la direccion de escritura, lo puedes hacer en la 0 siempre, si no me ekivoco.

Probaremos el sublime ese, a ver si hace honor a su nombre. Asignatura pendiente de arduino: el ide. Sin duda.
Citar
#22
Era facil al final, solo había que ponerse Lengua
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Citar
#23
Yo estoy intentando instalar el plugin, pero no me aparece la carpeta que indica @Regata para pegar la carpeta...
Alguna ayudita?
Ayudanos a crear el mapa de usuarios de Spain Labs!!!
Citar
#24
Beticocc escribió:Yo estoy intentando instalar el plugin, pero no me aparece la carpeta que indica @Regata para pegar la carpeta...
Alguna ayudita?


Eso es el nombre asignado a su pc¡¡, jejejejej, en el tuyo sera el nombre de tu pc
Citar
#25
No no, me refiero a que en mi carpeta de usuario no me aparece ni appdata, ni carpeta de Sublime ni nada, y en mis documentos tampoco. Tengo win8
Ayudanos a crear el mapa de usuarios de Spain Labs!!!
Citar
#26
A lo mejor la tienes oculta Beticocc, yo añadí a la barra de dirección lo de AppData, prueba y luego en Roaming ya me aparecia lo de Sublime Text 2

Prueba esto en windows 8:



Citar
#27
Si, era eso que estaba en oculto, ya he podido copiarla pero no me aparece al abrirlo. En preferences "Arduino" esta sombreado y no me deja clickar en el...
Nunca me habia sentido tan torpe jajaj
muchas gracias a todos
Ayudanos a crear el mapa de usuarios de Spain Labs!!!
Citar
#28
Tengo una dudilla, si asigno un pin como entrada, digital, y lo establezco en high, teniendo asi la resistencia interna activa, puedo poner un interruptor a dicha patilla, conectado a tierra, sin necesidad de resistencias externas? Y cuando se apriete el boton se leera un low?

Enviado desde mi Nexus 4 usando Tapatalk 2
Citar
#29
creo que si se puede hacer, aunque no lo suelo hacer por precaucion, ya que si te pones a probar otros sketches y no te acuerdas del detalle, puede que hagas corto al pin y te lo cargues
Citar
#30
giltesa escribió:
Triggerr escribió:Estaba hechando un ojo al tema de arduino, mirando como funciona lo de las librerias y demas, y se me planetan algunas dudas.
Lo primero, para escribir el programa vosotros usais el propio editor del arduino verdad?
Es mejor que como poco uses un editor como el Notepad++ o el Sublimetext2, luego pegas el codigo al IDE de Arduino y lo grabas.
Es bastante mas cómodo así.


Triggerr escribió:Y por ultimo, a la hora de usar la EEPROM, tenemos:

EEPROM.write(address, value)

En caso de guardar siempre una variable, address podria ser siempre 0, sobreescribiendose asi dicha variable verdad?

Seria conveniente hacer que antes de escribir realize una lectura, si la lectura es igual al nuevo dato a introducir no sobreescribir los datos para no hacer ciclos sin necesitarlo

Muchas Gracias

El problema es que los métodos read y write de EEPROM solo leen y escriben bytes. Si quieres guardar una variable de ese tamaño entonces si, es como dices, pero si quieres guardar una variable int o cualquier otra mayor de 1 byte entonces no puedes hacerlo de esa forma.

Te dejo dos ejemplos, con variables bytes y con estructuras de datos:

http://giltesa.com/2013/06/11/uso-de-la-...n-arduino/
http://giltesa.com/2013/06/27/usar-la-me...uy-comoda/


Estuve echando un ojo a tus links, y me surgio una duda pero no he tenido tiempo de plantearla hasta ahora, en el segundo caso:

Código:
struct DATOS{
   float   temperatura;
   float   humedad;
   int     luz;
   boolean usable;
};

union MEMORIA{
   DATOS dato;
   byte  b[sizeof(DATOS)];
}
miMemoria;

Creamos una estructura de datos, hasta ahi bien, luego con union, no tengo entendido muy bien que funcion realiza, pese a leer por internet y en tu blog algunas cosillas mas sobre dicha sintaxis. Te separa los datos que tengas Byte a Byte?, para poder manejarlos asi de una manera mas facil?, estoy un poco estancado aqui, para lo demas no tengo problema, pero esto se me a estancado jajajaja.
Citar
#31
Triggerr escribió:Estuve echando un ojo a tus links, y me surgio una duda pero no he tenido tiempo de plantearla hasta ahora, en el segundo caso:

Código:
struct DATOS{
   float   temperatura;
   float   humedad;
   int     luz;
   boolean usable;
};

union MEMORIA{
   DATOS dato;
   byte  b[sizeof(DATOS)];
}
miMemoria;

Creamos una estructura de datos, hasta ahi bien, luego con union, no tengo entendido muy bien que funcion realiza, pese a leer por internet y en tu blog algunas cosillas mas sobre dicha sintaxis. Te separa los datos que tengas Byte a Byte?, para poder manejarlos asi de una manera mas facil?, estoy un poco estancado aqui, para lo demas no tengo problema, pero esto se me a estancado jajajaja.

La estructura Union te permite acceder de forma transparente a un tipo de dato de dos formas distintas, o bien directamente o bien byte a byte. Podrías tener la siguiente estructura:

Código:
union ESTRUCTURA{
  int dato;
   byte  b[sizeof(int)];
}
miEstructura;

En la cual guardas una variable de tipo int llamada dato, hay que tener en cuenta que el tipo int usa 4 bytes de memoria. Entonces ahora podrías darle un valor directamente:

Código:
miEstructura.dato = 5;

Y podrías enviar esa variable entera por bluetooth, RF, o a la EEPROM de la siguiente forma:

Código:
EEPROM.write( 0 , miEstructura.b[0] ); // Primer byte de la variable int
EEPROM.write( 1 , miEstructura.b[1] ); // segundo byte
EEPROM.write( 2 , miEstructura.b[2] ); // Tercero
EEPROM.write( 3 , miEstructura.b[3] ); // Ultimo

Como ves, puedes leer cada byte de la variable int de forma independiente, no sirve para imprimirlo por pantalla porque no tendría ningún sentido y solo imprimirías basura, pero si sirve para transmitir la información trozo a trozo de un lado a otro. Ahora para recuperar la información seria:

Código:
miEstructura.b[0] = EEPROM.read(0);
miEstructura.b[1] = EEPROM.read(1);
miEstructura.b[2] = EEPROM.read(2);
miEstructura.b[3] = EEPROM.read(3);

Claro, que es mucho lió para guardar una variable y ya esta, por ello la gracia esta en la combinación de la estructura Struct con la Union, porque la Struct permite agrupar diferentes tipos de variables en un todo, así cuando leas y escribas en la EEPROM puedes estar guardando no solo un número, si no toda la configuración del Arduino de forma rápida y sencilla.

Mola
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
Citar
#32
Entiendo, claro, eso va al pelo para guardar informacion que supera los 255, es decir que desborda una asignacion de la EEPROM, sin necesidad de andar con programas para separar decenas, centenas y unidades.....etc etc
Citar


Temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Novato - Dudas proyecto First Person View para coche o Heli pedrotronic 3 664 29-10-2014, 11:28 AM
Último mensaje: pedrotronic
  Dudas Arduino walter white 20 1,491 28-02-2014, 11:17 PM
Último mensaje: walter white
  Usar la memoria EEPROM d Arduino para la config del programa giltesa 1 1,271 27-06-2013, 12:53 AM
Último mensaje: grafisoft