This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
Dudas Liberia y EEPROM
#1
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?

Segundo, cuando meto la libreria del LCD por I2C, se me aplican una serie de librerias, que normalmente no he visto en codigos por la web, una cosa asi:

Código:
#include <FastIO.h>
#include <I2CIO.h>
#include <LCD.h>
#include <LiquidCrystal.h>
#include <LiquidCrystal_I2C.h>
#include <LiquidCrystal_SR.h>
#include <LiquidCrystal_SR2W.h>
#include <LiquidCrystal_SR3W.h>

Cuando realmente la unica necesaria seria:

#include
no?

El LCD es este:

http://www.ebay.es/itm/310565065847?ssPa...1497.l2649

Luego en la web de ebay del chino, la siguiente linea de codigo que hay que poner en el programa:

LiquidCrystal_I2C lcd(0x20, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE); // Addr, En, Rw, Rs, d4, d5, d6, d7, backlighpin, polarity

Porque le indicamos el patillaje de comunicacion si funciona por I2C?


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
  Responder
#2
Yo para usar los backpack I2C de las pantallas LCD uso estas librerías y me funcionan muy bien, solo se añade la línea:

#include <LiquidCrystal_I2C.h>

y para definir la dirección de la pantalla uso esta:

LiquidCrystal_I2C lcd(0x20,16,2); //Indico la dirección del dispositivo y el tamaño del lcd 16 caracteres 2 filas

Para mí el módulo que más he probado y mejor resultado me ha dado es este que además es muy barato:

http://www.ebay.es/itm/IIC-I2C-TWI-SP-I-...c20&_uhb=1

Además puedes seleccionar la dirección del dispositivo por si vas a usar algún otro dispositivo que emplee la dirección 0x20 en tus proyectos.

El enlace a las librerías es este, prueba a ver si te funcionan correctamente, a mí no me han dado ningún fallo:

http://www.mediafire.com/?28j1cj67jrku6yi

En el caso de la EEPROM puedes hacer exactamente lo que dices, yo grabaría un dato por primera vez y que vaya a ser el que uses en principio y luego con el código que vas a usar hacer la comprobación, si el dato que lees es distinto que el que quieres escribir entonces usar el EEPROM.write y sino pues no sobreescribirlo.
  Responder
#3
Si, tu metodo de definir el lcd es lo que he solido ver por ahi, luego lo inicializas con lcd.begin(16,2)

Para escribir en el lcd usais el comando write o print? He leido que segun que version de IDE vale uno u otro

Enviado desde mi Nexus 4 usando Tapatalk 2
  Responder
#4
yo uso la versión 1.0.5 del IDE de Arduino, y para escribir en ella uso el comando print, para inicializarla es como dices tu. Eso lo puedes ver en la propia librería cual usar. Creo que por debajo de la versión 1 del ide se usa write y a partir de esta print. Debido a los cambios que se han hecho de la libreria WProgram.h a Arduino.h
  Responder
#5
Regata escribió:yo uso la versión 1.0.5 del IDE de Arduino, y para escribir en ella uso el comando print, para inicializarla es como dices tu. Eso lo puedes ver en la propia librería cual usar. Creo que por debajo de la versión 1 del ide se usa write y a partir de esta print. Debido a los cambios que se han hecho de la libreria WProgram.h a Arduino.h

Perfecto, tengo la 1.0.5, tengo que ver como abrir las librerias y demas, aver si me llega ya el arduino y demas y me pongo, porque asi sin tenerlo delante se hace mas complejo al no poder probar nada

Enviado desde mi Nexus 4 usando Tapatalk 2
  Responder
#6
Para abrir las librerías y que se vean bien ordenadas como el código de arduino, tengo el programa Notepad++, y funciona perfectamente. Lo único que tienes que hacer es ir a la carpeta donde tengas las librerías (yo las tengo guardadas en el dropbox) y abrir los archivos con extensión ".CPP" y "C source file" y ahí te viene como funciona la librería y los comando a usar y como están programados.

El Notepad++ lo puedes obtener desde aquí, es totalmente gratuito: http://notepad-plus-plus.org/download/v6.4.5.html

También comentarte que en realidad uso una variante del IDE de Arduino realizada por un compañero del foro de arduino, y que es muy cómoda para tratar con el tema de las librerías de arduino, ya que mete unas flechas que permiten desplazarte comodamente por ellas (si tienes muchas como yo):

[Imagen: jb49ib.png]

El enlace para descargar esta versión del IDE de Arduino es este: http://arduino-erw.googlecode.com/files/...130524.zip
  Responder
#7
yo como entorno de programacion uso uno llamado SUBLIME TEXT 2, que esta muy de moda entre los programadores,
ya que es compatible con muchisimos lenguajes. Si no tiene el lenguaje que necesitas, se le puede añadir con plugins, ya que es extremadamente personalizable y adaptable.
hay un programador que ha hecho un plugin para sublime para darle compatibilidad con arduino y va genial, tiene todas las funcionalidades del IDE de arduino, compilar, cargar, consola serie, etc. el plugin se llama STINO

algunas funciones son comodisimas, como poder cambiar el nombre de una variable en todo el programa a la vez, hacer macros para escribir partes de codigo repetitivo, sugerirte los comandos o variables en cuanto pones las primeras letras, lo que te ahorra muchísimo tiempo.
  Responder
#8
buscaros una libreria llamada EEPROMex.h , esta muy bien ya que ademas de tener el comando update, el cual es igual a write pero no escribe nada si coincide lo que tenia ya grabado con lo que pretendes grabar, permite grabar mas de 8bit, con lo que no tienes que romperte la cabeza en partir el dato en trozos de 8 bit, la libreria lo hace por ti, lo unico que tienes que tener en cuenta es cuantos byte ocupa el dato para no sobreescribirlo con otro dato.
  Responder
#9
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/
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
  Responder
#10
Cita:yo como entorno de programacion uso uno llamado SUBLIME TEXT 2, que esta muy de moda entre los programadores,
ya que es compatible con muchisimos lenguajes. Si no tiene el lenguaje que necesitas, se le puede añadir con plugins, ya que es extremadamente personalizable y adaptable.
hay un programador que ha hecho un plugin para sublime para darle compatibilidad con arduino y va genial, tiene todas las funcionalidades del IDE de arduino, compilar, cargar, consola serie, etc. el plugin se llama STINO

algunas funciones son comodisimas, como poder cambiar el nombre de una variable en todo el programa a la vez, hacer macros para escribir partes de codigo repetitivo, sugerirte los comandos o variables en cuanto pones las primeras letras, lo que te ahorra muchísimo tiempo.

Tiene buena pinta, lo voy a probar, me puedes decir como le meto el plugin para arduino? y sabes si se puede poner el programa en español? No me importa que esté en inglés pero bueno mucho mejor en español.
  Responder
#11
giltesa, con sublime no es necesario usar el IDE de arduino, compilas y cargas directamente, de hecho yo he llegado al extremo de la comodidad programandome shortcuts de teclado, F5 compila, F6 carga al arduino y F7 muestra la consola serie. Mas rapido que eso no hay nada.
  Responder
#12
juanjodcv escribió:giltesa, con sublime no es necesario usar el IDE de arduino, compilas y cargas directamente, de hecho yo he llegado al extremo de la comodidad programandome shortcuts de teclado, F5 compila, F6 carga al arduino y F7 muestra la consola serie. Mas rapido que eso no hay nada.

Tienes info de como configurarlo todo? Interesa mucho :zpalomitas:
giltesa.com Mi blog personal sobre informática, electrónica, Arduino, bricolaje, etc.
  Responder
#13
regata, es muy facil, solo hay que copiar el directorio que te bajas en el directorio de plugin del sublime y reiniciarlo.
al arrancarlo te sale un menu llamado "show arduino menu" que al darle te muestra el menu arduino que tiene los menus del IDE de arduino dentro. este menu si se puede traducir, el sublime puede que tambien, pero ni lo he mirado.
  Responder
#14
se pone asi:
preferencias, key binding user, pega esto, guarda y reinicia:
[
{ "keys": ["f5"], "command": "compile_sketch" },
{ "keys": ["f6"], "command": "upload_binary" },
{ "keys": ["f7"], "command": "start_serial_monitor" }
]

puedes cambiar la tecla por la que te de la gana, yo uso mac, probablemente en windows va igual
  Responder
#15
juanjodcv no soy capaz de hacerlo andar, he copiado el directorio STINO en la carpeta C:\Users\Regata\AppData\Roaming\Sublime Text 2\Packages\Stino que es donde aparecen las carpetas de los demás plugins de Sublime Text 2. Arranco el Sublime Text 2 y no aparece ningún menú. Hay que darle a algo más?

P.D: Nada ahora si que me ha aparecido el menú de Arduino. A veces esto va como el culo jjajaaja
  Responder
#16
show arduino esta en preferences
  Responder
#17
La version de prueba del Sublime es ilimitada??
Que me parece que este sera mi programa definitivo para programar en arduino
Ayudanos a crear el mapa de usuarios de Spain Labs!!!
  Responder
#18
el menu arduino desaparece si clicas en una pestaña que contiene algo que no sea un sketch de arduino, como por ejemplo la consola serie, clicando de nuevo vuelve a salir. eso despista al principio.
  Responder
#19
es ilimitada, te muestra un cartelito de vez en cuando para que la compres pero no te limita nada
  Responder
#20
en youtube hay un cerro de tutoriales muy buenos, la verdad es que engancha, es buenisimo, esta toda la comunidad de programadores de todos los lenguajes flipando con el
  Responder


Posibles temas similares…
Tema Autor Respuestas Vistas Último mensaje
  EEPROM Arduino RocaDiesel 0 195 06-04-2022, 07:46 AM
Último mensaje: RocaDiesel
  ¿Como diferenciar chip nano y borrar su eeprom? Forsito 5 1,495 14-03-2019, 06:45 AM
Último mensaje: Nullz
  DUDA Borrar eeprom Vicente48 9 3,909 11-01-2019, 08:24 AM
Último mensaje: Vicente48
  Presentación de proyecto y dudas (RADIOCONTROL) DavidGom1 1 1,180 31-12-2018, 08:26 PM
Último mensaje: Surbyte
  Novato - Dudas proyecto First Person View para coche o Heli pedrotronic 3 1,840 29-10-2014, 11:28 AM
Último mensaje: pedrotronic