Show Posts
|
|
Pages: 1 2 [3] 4
|
|
31
|
International / Software / Re: instalando arduino uno
|
on: February 05, 2011, 07:02:15 am
|
En el entorno no esta el pcb arduino uno, pero selecciono el Duemilanove. Que version de arduino debo bajar?, porque al arrancar el programa, dice que hay version mas moderna. Bueno, a ver si me desburraias un poco en estas cosas. Cuando consiga hacerlo funcionar en Linux, ya os contare los problemas que tengo con el mismo en Windows Vista, pero hagamos las cosas paso a paso. Saludos : Gaby
Primero: yo te recomendaría instalar la última versión disponible del entorno. Segundo: no te olvides del asunto de los permisos. Un usuario normal no tiene permiso para acceder directamente al puerto, así que tendrás que agregarlo al grupo correspondiente. Si usas Mandriva, te recomiendo que agregues el repositorio blogdrake. En él hay un paquete para instalar automáticamente Arduino que deja todo listo y funcionando sin que tengas que hacer nada. Estos paquetes deberían funcionar también en otras distribuciones basadas en RPM.
|
|
|
|
|
32
|
International / Software / Re: Problema con delayMicroseconds() en Arduino0022
|
on: February 04, 2011, 09:02:46 am
|
Es que el codigo que has puesto no se parece nada a LCD. No tengo idea de que se trata esa rutina, y porque necesitas "delayMicroseconds()" . Si puedes poner todo el codigo aca va a ser simple entender el contexto.
Es que yo no sabía que LiquidCrystal ahora maneja también 4 bits. Estaba usando la que indican en la pagina para este display, que es derivada de esta: http://www.arduino.cc/playground/Code/LCD4BitLibrary Si miras, verás que el autor ha agregado ahora un aviso de que no se use esta biblioteca. Es fue porque le escribí avisándole que con las versiones nuevas de Arduino no funcionaba. Yo tengo ese LCD-Keypad Shield y lo uso bastante.
Prueba si esto te funciona:
Muchas gracias. Y ya que tienes un lcd-keypad te paso por si te sirve, mi biblioteca para manejar el teclado. Tiene autorepetición de teclas y evita rebotes de contactos. Deberías ponerlo en donde tengas las bibliotecas de Arduino y el uso es así: #include <keyb.h>
void loop(){
int k=KEYB.getkey(1);
if (k==KEY_SELECT) ...
El parametro de la funcion KEYB.getkey indica si va a permitir repetición (manteniendo la tecla presionada) o no.
|
|
|
|
|
33
|
International / Software / Re: Problema con delayMicroseconds() en Arduino0022
|
on: February 02, 2011, 07:10:21 am
|
Qué dicen los desarrolladores al respecto? Supongo que estará reportado, pero no he encontrado el hilo donde se discute el asunto.
Las funciones si han cambiado. Sobre todo con respecto a interrupts, y muchas funciones referente a tiempos. Mi pregunta seria saber que es lo que quieres controlar con ese codigo. Motores? No. Como dije más arriba, tengo un display de estos: http://www.yerobot.com/arduino-lcd-shield.htmlEl display no es exactamente igual al que está soportado por la biblioteca que viene en Arduino. Este utiliza sólo 4 bits para comunicarse dejando muchas más patitas libres así que tiene una version modificada de la biblioteca que lo maneja: http://www.yerobot.com/products/manual/LCD4Bit_mod.zipSegún entiendo, es una versión modificada de este: http://www.arduino.cc/playground/Code/LCD4BitLibrary que usa otras patitas diferentes. Las he estado comparando y en lo referente al acceso al display sólo difieren en las patitas, lo cual me hace pensar que el código que hay en el playground tampoco funciona. Funciona perfectamente con 0018 pero con 0021 a veces no sale nada en la pantalla y otras veces sale algo de basura. Parecía un problema con los tiempos y aumentando muchísimo algunos tiempos se soluciona. Tal vez el problema es que ahora los programas corren mucho más rápido y necesita retardos donde antes no los había. Tengo que revisar bien el código.
|
|
|
|
|
34
|
International / Software / Re: Pantalla standard Hitachi HD44780
|
on: February 01, 2011, 03:05:54 am
|
Tienes que ser mas especifico en tu problema.
Poniendo el codigo con que tienes el problema es una manera.
Si estas seguro que todas las conecciones estan correctas, lo unico que tienes que revisar es el codigo.
Tengo varios HD44780 y ninguno funciona erratico. La unica vez que funciono mal fue porque el codigo estaba mal. Me tomo tiempo en descubrir el error, pero era parte del codigo basicamente.
Si puedes describir mas tu proyecto, o mejor... mostrar el codigo, va a ser mas facil descubrir el problema.
No se si tendrá que ver pero cuando yo pasé a Arduino0022 me dejó de funcionar la biblioteca que maneja mi display LCD. Con 0018 funciona perfecto.
|
|
|
|
|
35
|
International / Español / Re: Como separar int o long en bytes
|
on: February 01, 2011, 03:04:15 am
|
Igual es algo obvio para muchos, pero al mismo tiempo para gente como yo que ha empezado a programar hace mas bien poco no lo es tanto y cosas que pueden ser de cajón o simplemente automáticas para muchos, se convierte en toda una odisea para otros.
Os pido si puede ser, ejemplos de como desglosar, trocear o separar enteros o longs en bytes para luego por separado meterlos en un array, enviarlos por serial, meterlos en memoria o simplemente, tratar los datos por separado. Saludos
Yo lo haría más o menos así: long l; byte b[4]; .... a toma algun valor b[0]=l & 0xff; // hago and con 0xff para que quede solo el ultimo byte b[1]=(l>>  & 0xff; // roto los bits 8 veces a la derecha y de nuevo me quedo con el ultimo byte b[2]=(l>>16) & 0xff; b[3]=(l>>24) & 0xff; Si el valor de l se puede perder, se puede if haciendo >>8 sobre l varias veces en lugar de hacerlo dentro de la asignacion. También se podría copiar l a una variable auxiliar. Todo depende de si en tu programa ahorrar algunos microsegundos es importante o no.
|
|
|
|
|
36
|
International / Software / Re: Problema con delayMicroseconds() en Arduino0022
|
on: February 01, 2011, 02:55:02 am
|
Si te sirve de consuelo, yo tengo programas hechos con delay y millis que en Arduino0018 funcionan perfectamente y a partir de la 0019 ya no, tienen errores en los tiempos, directamente cuando compilo estos programas lo hago con la 0018 y fuera.
Pues más que consuelo me parece preocupante. Has rastreado qué parte del programa tiene el problema? Son los delays o es otra cosa? Yo estuve haciendo un programa sencillo para probar el delayMicroseconds y parecía funcionar. Al menos obtenía el millis() antes y después de un retardo y los números cuadraban tanto en 0018 como en 0022. Qué dicen los desarrolladores al respecto? Supongo que estará reportado, pero no he encontrado el hilo donde se discute el asunto.
|
|
|
|
|
37
|
International / Software / Re: LCD texto subrayado
|
on: January 31, 2011, 05:25:48 am
|
Hola foro.. Esto de nuevo foro esta bastante bueno, no habia tenido de echarle un vistazo, y me parecio muy buen cambio de ambiente.  Bueno, a lo nuestro... Una pregunta muy simple, alguien sabe como poner texto subrayado en un LDC de esos tipicos que se controlan con HD44780 ( es uno 20x4 con un modulo serial) . Tengo esa duda, ya que si no existe comando, la unica opcion seria creando (dibujando) el caracter con una raya abajo y alargaria mucho el codigo en arduino.. Alguna idea..? seria de buena ayuda. saludos! En controlador del LCD se puden crear unos cuantos caracteres definidos por el usuario. Si no son muchas letars subrayadas las que necesitas pudes crearlas tu mismo.
|
|
|
|
|
38
|
International / Software / Re: Problema con delayMicroseconds() en Arduino0022
|
on: January 31, 2011, 05:24:12 am
|
Aparentemente, delayMicroseconds() es util hasta delayMicroseconds(16383), si necesitas usar mas de ese parametro tienes que usar la funcion delay(millisecs).
Espero esta informacion sea util.
Es bueno saber.o pero en este caso decía delayMicroseconds(1) así que no es ese el problema. Tendré que investigar un poco más. Lo que me molesta es que algo que estaba funcinando deje de funcionar.
|
|
|
|
|
39
|
International / Hardware / Re: leer memoria usb
|
on: January 30, 2011, 07:39:38 am
|
Esta claro que no puedes usar el interface USB que tiene Arduino (lo emplea para cargar programas, etc), pero si que puedes sacar las señales del conector USB y meterlas por las entradas digitales y luego procesarlas.
Eso debería funcionar. He visto varios proyectos donde emulan dispositivos USB por software usando señales digitales del micro. En general funcinan como dispositivo y no como anfitrion pero es cosa de software cambiar ese comportamiento. Debería haber alguna biblioteca oficial para hacer eso así como hay una SoftwareSerial, que haya una SoftwareUSB. Sería muy interesante. Tal vez puedas comenzar un proyecto para hacerla.
|
|
|
|
|
40
|
International / Software / Re: Problema con delayMicroseconds() en Arduino0022
|
on: January 30, 2011, 07:35:03 am
|
mmmm por ahora lo unico que se me ocurre es que exista un problema con la libreria que maneja el LCD, creo que es antigua y no oficial, tal vez ya no es soportada... aqui esta la oficial http://arduino.cc/en/Reference/LiquidCrystalSí, es obvio que el problema es en la librería. Pero dado que antes compilaba y funcionaba bien y ahora no, con seguiridad es un cambio que han hecho y tiene olor a bug. La librería oficial no me sirve porque este hardware es un poco diferente. Pero miraré el código fuente de la librería oficial a ver si me da ideas. De todos modos insisto en que si antes funcionaba ahora debería seguir funcionando. He estado haciendo pruebas sobre delayMicroseconds y realmente no veo diferencia en su comportamiento. De hecho he mirado el código fuente y es exactamente el mismo, así que el problema deberá estar en otro lado...
|
|
|
|
|
41
|
International / Software / Re: Problema con delayMicroseconds() en Arduino0022
|
on: January 29, 2011, 01:02:31 pm
|
OK, ahora te entiendo bien.
Pero tu sketch compila bien? y luego no funciona en la placa?
Solo habia escuchado de algunos problemas de compatibilidad de codigos hechos en versiones antiguas del software arduino, a mi no me ha ocurrido.
Quizás si pones tu código te puedo ayudar en algo.
Sí, el programa compila correctamente y funciona todo. Lo que pasa es que no hace los retardos correctamente y falla la comunicación con el display serie. El programa que me da problemas es la biblioteca que maneja este display: http://www.yerobot.com/arduino-lcd-shield.html y el software se descarga de: http://www.yerobot.com/products/manual/LCD4Bit_mod.zipEn particular la parte donde falla es esta: void lcdanv::pulseEnablePin(){ digitalWrite(Enable,LOW); delayMicroseconds(1); // send a pulse to enable digitalWrite(Enable,HIGH); delayMicroseconds(1); digitalWrite(Enable,LOW); delay(1); // pause 1 ms. TODO: what delay, if any, is necessary here? } Las instrucciones DelayMicroseconds no hacen lo que deben hacer. Intenté subir el tiempo y siguen sin hacer efecto. Si las reemplazo por un delay normal funciona, pero los tiempos son altísimos y el programa se vuelve muy lento.
|
|
|
|
|
42
|
International / Software / Re: Problema con delayMicroseconds() en Arduino0022
|
on: January 29, 2011, 07:31:07 am
|
delay(1) significa una espera de un milisegundo, la instrucción delay(x) te entrega una pausa de '(x)' milisegundos. delayMicroseconds(1) significa una espera de un microsegundo, delayMicroseconds(x) te entrega una pausa de '(x)' microsegundos.
Tal vez no me expresé bien. Se lo que hace delay y delayMicroseconds. Tengo un programa que funcionaba perfectamente. Cuando lo compilé con la version 0022 dejó de funcionar. Probé volver a 0018 y funcionó bien de nuevo. Investigando descubrí que el problema estaba en los retardos. Al parecer la funcion delayMicroseconds de la 0022 no funciona. Como prueba, cambié delaymicroseconds por delay sabiendo que hace retardos muchísimo más largos pero sólo para probar que el problema era esa funcion. Por más que aumente el número de microsegundos en delayMicrosecods el programa no funciona, lo cual me hace sospechar que directamente no hace ningún retardo o algo así.
|
|
|
|
|
43
|
International / Software / Problema con delayMicroseconds() en Arduino0022
|
on: January 28, 2011, 11:56:01 am
|
|
Tengo un programa que maneja un display.. Dentro de las rutinas se utiliza delayMilliseconds. Resulta que pasé de Arduino0018 a Arduino0022 y el programa ya no funciona bien.
Descubrí que delayMilliseconds parece no funcionar. No importa el valor que ponga el programa no funciona. Si lo reemplazo por delay(1) sí funciona así que el problema evidentemente está ahí. ¿Alguna idea de lo que ha pasado? ¿Es un bug?
|
|
|
|
|
45
|
Forum 2005-2010 (read only) / Bugs & Suggestions / Re: Arduino packet for Mandriva 2010
|
on: December 09, 2009, 02:57:06 am
|
|
Using this repository, you can install Arduino IDE only by adding the packet. All issues are resolved automatically. If you experiment problems post a comment here.
I created all packets needed for running Arduino (included new versions of GCC, avr libc, and even the rxtx library that lets java to access the serial port, but fixing the /var/lock problems).
The packets where created and tested for Mandriva 2010 but could work for 2009.1... but if you will reinstall, it is better if you use the lastest version.
|
|
|
|
|