Pages: [1]   Go Down
Author Topic: Ayuda con Arduino uno y delay  (Read 1117 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hola a todos, tengo un pequeño problema con el Arduino Uno que no me había pasado nunca con las demás placas de arduino.

El problema es que para poder usar la sentencia delay(); tengo que añadir en la función void setup() la instrucción serial.begin(); si no pongo esta instrucción no me funciona los delay(). ¿A alguien más le pasa esto? ¿Sabe alguien a que es debido este fallo?

Otra duda que tengo es si los pines 0 y 1 se pueden usar cuando se utiliza serial.begin(); he buscado información pero no encuentro nada que me resuelva esta duda.

Para dar algo más de información programo la placa de arduino con la última versión del IDE para arduino que hay en la página oficial bajo el SO linux (Distribución Fedora 14, Kernel 2.6.35.13-91.fc14.x86_64).

Espero que me puedan ayudar, Gracias.
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

si usas serial para comunicar con el pc por puerto de serie entonces los pines 0 y 1 no los puedes usar para nada mas.

respecto al delay ni idea.
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

OK, gracias.

Seguiré investigando lo del delay y si no consigo solucionarlo tendré que buscar una manera de ahorrar pines smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 44
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

lo primero es que podrias poner el codigo del programa para que alguien pueda encontrar tu error

y lo de los pines 0 y 1 es lo que te ha comentado Sergegsx
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 117
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
los pines 0 y 1 es lo que te ha comentado Sergegsx
corrección  los pines 0 y 1 si los puedes usar pero no en simultáneo. puedes elegir uno de los dos

Arduino: Manual de Programación
25 Nota: Cuando se utiliza la comunicación serie los pins digital 0 (RX) y 1 (TX) no puede
utilizarse al mismo tiempo.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 117
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
El problema es que para poder usar la sentencia delay(); tengo que añadir en la función void setup() la instrucción serial.begin(); si no pongo esta instrucción no me funciona los delay(). ¿A alguien más le pasa esto? ¿Sabe alguien a que es debido este fallo?
Es muy probable que el problema no este en tu placa sino en el código, Si quieres comprobar eso,  desmonta el circuito y tirale un código de la librería  en el que puedas provar el delay() como p. e.   servo>Sweep 
Logged

Offline Offline
Edison Member
*
Karma: 23
Posts: 1375
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

corrección  los pines 0 y 1 si los puedes usar pero no en simultáneo. puedes elegir uno de los dos

Arduino: Manual de Programación
25 Nota: Cuando se utiliza la comunicación serie los pins digital 0 (RX) y 1 (TX) no puede
utilizarse al mismo tiempo.
Si estás usando la comunicación serie no puedes usar ni el pin 1 ni el 0
Logged

Mercadillo electrónico. Kit iniciación a Arduino, shield LCD a color y más cosas!

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

creo que si se puede pero no al mismo tiempo, el registro de configuracion del puerto serie no tiene por que configurarse solo en el setup, al igual que los demas pines, en el programa se puede poner un pin como entrada en el setup y luego más tarde cambiar la configuracion de esa patilla a nuestro antojo para que sea entrada o salida, pero claro está ... no se puede tener 2 funciones al mismo tiempo.

Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
los pines 0 y 1 es lo que te ha comentado Sergegsx
corrección  los pines 0 y 1 si los puedes usar pero no en simultáneo. puedes elegir uno de los dos

Arduino: Manual de Programación
25 Nota: Cuando se utiliza la comunicación serie los pins digital 0 (RX) y 1 (TX) no puede
utilizarse al mismo tiempo.

corrección, DuffuD plantea usar el puerto de serie para comunicación en su programa por lo que según tengo entendido no puede usarse los pines 0 y 1 para nada mas.
ademas, en la nota que tu has puesto dice exactamente eso, (no pude utilizarse al mismo tiempo) por lo que si quieres usar la comunicación por serie como es el caso, no puedes usarlos para nada mas.
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Offline Offline
Full Member
***
Karma: 0
Posts: 117
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Code:
por lo que según tengo entendido
pues entonces creo que debes hacer una reclamación  aquí arduino.cc  para que cambien sus manuales de programación

Y creo que también tengo que tirar a la basura mi placa  por que a mi si me funciona el pin 0   con el serial.



pido una disculpa a Sergegsx parece que tomo muy personal el comentario

« Last Edit: May 30, 2011, 07:57:16 am by cuchara » Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 117
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo que puede que pase con los pines es que se deba a alguna función especifica eso puede ser la causa del gran debate
 por que creo que ya nos desviamos mucho en este punto

Físicamente hablando mi arduino si me permite usar uno de los dos. No necesito leerlo en ningún lado para poderme dar cuenta que si funciona.  pero si a otras personas no les funciona tal bes se trata de otro uso que se les da   

sea lo que se  ya no juego jajaja  saludos a todos  es pero no toquemos el tema  en otro post jajajajja
Logged

0
Offline Offline
Edison Member
*
Karma: 17
Posts: 1407
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

pido una disculpa a Sergegsx parece que tomo muy personal el comentario

para nada. smiley-wink
Logged

* Si preguntas, pon el código de tu programa, hace mucho mas fácil ayudarte. Y me ahorro un mensaje pidiendo que lo hagas.
* Si consigues solucionar tu problema, dedica unos minutos a explicar en tu post como lo conseguiste para beneficio de todos.
* Cambia el 'Subject' de tu hilo y añade 'SOLUCIONADO' cuando hayas llegado a una solución al problema que planteaste.
* Utiliza un 'Subject' para tu hilo que explique de que va el hilo.
Si estas empezando:
* Comienza a usar Arduino
* Guías de iniciación a Arduino
* Ejemplos
* Referencia del Lenguaje
* Conceptos básicos
Guia de usuario de arduino
Tutoriales en Ingles
Si necesitas que alguien te escriba el código: http://www.freelancer.com/  o esta  http://www.guru.com/

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

El problema creo va a estar en la placa porque una de las pruebas que hice es hacer parpadear el LED SMD del pin 13. Pongo el código para que se vea más claro (y descartar que sea el código). A la placa no hay nada conectado.

void setup(){
   pinMode(13,OUTPUT);
}

void loop(){
   digitalWrite(13,HIGH);
   delay(500);
   digitalWrite(13,LOW);
   delay(500);
}


Con ese codigo deberia parpadear el LED medio segundo encendido y medio segundo apagado, sin embargo para que esto funcione en mi arduino UNO debo escribir el código así:

void setup(){
   Serial.begin(9600);
   pinMode(13,OUTPUT);
}

void loop(){
   digitalWrite(13,HIGH);
   delay(500);
   digitalWrite(13,LOW);
   delay(500);
}


Por último diré que no voy a usar el puerto serie para nada y que la única razón por la que pongo el Serial.begin es para que funcione los delay, sino no me funcionan, el LED queda encendido.
Logged

Ciudad Real
Offline Offline
God Member
*****
Karma: 1
Posts: 747
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

el ejemplo que pones es igual que el blink que viene de ejemplo, a mi me funciona perfctamente tanto duemilanove, mega y mini pro.

mira a ver si tienes bien configurado el ide, si lo cargas a la placa adecuada.

incluso reinstala el ide, quizas tengas alguna libreria corrupta o que se yo ... te deberia funcionar.

un saludo

Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Lo cierto es que todo eso ya lo probé. Comprobé que el puerto fuera el correcto, que la placa esta bien seleccionada en el menu tools>Board, instalé el propio paquete que trae los repositorios de fedora para arduino, probé a reinstlar la IDE y probé también con las dos versiones del IDE para linux de 64bits que encontré. Incluso lo intenté en otro ordenador de 32bits y con windows por si fuera ese el problema pero nada, el problema persiste.

El caso es que cuando he trabajado con otras placas (placas nano, duemilanove y  arduclema) nunca tuve este problema ni nada que se le parezca y como el arduino UNO es la versión más reciente y cambiaron el chip del serial pensé que quizás ahora si era necesario poner el Serial.begin para trabajar con los delay. Sin embargo ya veo que no, que el problema esta en mi placa o en el ATMEGA328.

Finalmente creo que probaré a actualizar el firmware del ATMEGA 8U2 y si sigue igual probaré con otro ATMEGA328 (creo que es lo que me queda por probar, el firmware y el cambiar el microcontrolador). Si no se da solucionado tendré que apañarme con 12 pines digitales cuando use los delay o el puerto serial, que remedio...

Si alguien tiene alguna idea más que comente a ver si se soluciona.

Gracias a todos por la ayuda.


Logged

Pages: [1]   Go Up
Jump to: