[Presentación y problema] PIN 13 (led) siempre encendido.

Buenas, a tod@s. Soy un nuevo profano aventurero de la electrónica y lamentablemente empiezo con problemas.
Que mejor lugar para aclarar mis dudas que en este foro :wink:

Os cuento:
Hace poco adquirí un Arduino UNO R3 y al conectarlo el led del PIN 13 parpadeaba, cosa que al parecer es normal ya que es como un test de que funciona correctamente.

El caso es que hasta hace poco no he tenido tiempo de usarlo (han pasado varias semanas) y ayer comencé con los primeros pasos ... o esa era mi intención.

Iba ha hacer el típico "hola mundo" de la electrónica pero como ya lo tenía "blinkeado" modifiqué el sketch para hacer un SOS con el led.

Soy consciente que el código es una aberración pero para el propósito es funcional:

int led = 13;
int pitidoCorto = 500;
int pitidoLargo = 1000;
int pausa = 2000;

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

void loop() {
  
  // letra S
  digitalWrite(led, HIGH);
  delay(pitidoCorto);
  digitalWrite(led, LOW);
  delay(pitidoCorto);
  digitalWrite(led, HIGH);
  delay(pitidoCorto);
  digitalWrite(led, LOW);
  delay(pitidoCorto);
  digitalWrite(led, HIGH);
  delay(pitidoCorto);
  digitalWrite(led, LOW);
  delay(pitidoCorto);
  
  
  // letra O
  digitalWrite(led, HIGH);
  delay(pitidoLargo);
  digitalWrite(led, LOW);
  delay(pitidoLargo);
  digitalWrite(led, HIGH);
  delay(pitidoLargo);
  digitalWrite(led, LOW);
  delay(pitidoLargo);
  digitalWrite(led, HIGH);
  delay(pitidoLargo);
  digitalWrite(led, LOW);
  delay(pitidoLargo);
  
  
  // letra S
  digitalWrite(led, HIGH);
  delay(pitidoCorto);
  digitalWrite(led, LOW);
  delay(pitidoCorto);
  digitalWrite(led, HIGH);
  delay(pitidoCorto);
  digitalWrite(led, LOW);
  delay(pitidoCorto);
  digitalWrite(led, HIGH);
  delay(pitidoCorto);
  digitalWrite(led, LOW);
  delay(pausa); // segundo añadidos para separar comienzo y fin bucle
}

El problema es que si en vez de utilizar el PIN 13 como output uso otro, por ejemplo ya sea el PIN 4, 7 u 8, al compilar cargar el código el Led del PIN 13 sigue encendido.

Es decir, cuando hago uso de un PIN que no es 13, este (el PIN 13) sigue recibiendo el estado de HIGH, y creo que eso no es muy normal puesto que no está reverenciado en el sketch.

Muchas gracias, muchos saludo y a ver si alguien puede echarme un cable.

PD: No sé bien si esto está bien publicarlo aquí o en el subforo hardware. Por favor, si el moderador lo encuentra necesario, que lo mueva.

Aunque en la segunda prueba emplees otro pin ¿Has probado a poner en el setup el pin 13 a LOW?

(ºLe.

imaginamos que has cambiado la linea que pone

int led = 13;

por

int led = 6;
por ejemplo

¿se te enciende el led que has conectado al pin6 en este caso? No te olvides de poner una resistencia de unos 330 ohms.

Antes de nada agradecer la presta respuesta.

Por partes:

nayma:
imaginamos que has cambiado la linea que pone

int led = 13;

por

int led = 6;
por ejemplo

¿se te enciende el led que has conectado al pin6 en este caso? No te olvides de poner una resistencia de unos 330 ohms.

Sí. El código que he puesto es como guarde el sketch SOS (Antes de de volver a guarda un archivo suelo dejarlo como estaba en un principio).
Una vez probado con el LED de la placa (PIN 13) lo cambié al PIN 12 y con el protoboard le añadí el correspondiente cableado y su resistencia (de 220).

Sería algo así:


(el LED lo he posicionado apuntando para abajo para que se vea mejor las conexiones)

Y al cargar el código el LED del protoboard hacía el SOS pero en la placa de Arduino, aparte del LED de POWER ON, el del PIN 13 estaba iluminado y fijo.
Después de probar con el PIN 8, 7, 4 y 2 volví a dejarlo en 13.

coleoptero:
Aunque en la segunda prueba emplees otro pin ¿Has probado a poner en el setup el pin 13 a LOW?

(ºLe.

Sí, y funciona, es decir, no se ilumina, pero no creo que sea normal tener que especificar el PIN 13 si no hago uso de el.
Además en mucho vídeos he visto al ejecutar el código el LED de Arduino permanece apagado.

De nuevo muchas gracias por contestar tan rápido.

Ahora puedes ponerle un zumbador y ya tienes el SOS completo. Consejo, al zumbador también ponle una resistencia.
Después puedes poner un pulsador y que suene y se encienda cuando quieras......

:slight_smile:

Buenas lehnax,
A mi me sucede lo mismo en las dos placas de arduino uno R3, si no le pongo valor low en el programa se mantiene encendido. Aun no he averiguado por que pasa.
Un saludo

seguro que solo hay eso conectado? sin shields ni nada? Foto del montaje.

Sergegsx, en mi caso no, tan solo conectando el usb al pc.

Wk3:
Buenas lehnax,
A mi me sucede lo mismo en las dos placas de arduino uno R3, si no le pongo valor low en el programa se mantiene encendido. Aun no he averiguado por que pasa.
Un saludo

Entonces podría deberse a un fallo en algunas placas.

¿Donde la compraste?
La mía la pillé por eBay y todos los LEDs de la placa son rojos.
Como información adicional he probado a conectarlo a un USB2 para descartar que diera algún conflicto raro por USB3 que es, el que utilizo porque lo tengo en el frontal del chasis del ordenador. Pero como era de esperar hace exactamente lo mismo.

Sergegsx:
seguro que solo hay eso conectado? sin shields ni nada? Foto del montaje.

He depurado un poco el código de antes y he hecho un vídeo donde se ve el error.

Como resultado y código:

/********************/
/*     LED SOS      */
/********************/

const int LED = 8;


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

int letra(int x, int t){
  int n;
  for (n = 0; n < x; n++){
    digitalWrite(LED, HIGH);
    delay(t);
    digitalWrite(LED, LOW);
    delay(t);
  }
}

void loop(){
  letra(3, 500);
  letra(3, 1000);
}

y el vídeo:

Sobre el segundo 50 y algo descomento la línea 10 para evitar que el LED de la placa esté en HIGH.

Wk3:
Sergegsx, en mi caso no, tan solo conectando el usb al pc.

En mi caso pasa lo miso.
Si conectará únicamente la placa por USB el LED del PIN 13 también estaría encendido. A menos que le metiera un código para apagarlo.

PD: Perdonad el tembleque de la imagen del vídeo pero entre el café y la cámara del móvil :sweat_smile:

lehnax:
Entonces podría deberse a un fallo en algunas placas.

¿Donde la compraste?

Las dos placas las compré de distribuidores oficiales de arduino, las mías no tienen todos los leds rojos.
El led 13,tx,rx son naranjas y el on verde.

Hola!

Hay algo más que podemos comprobar.
Para probar si es el micro, retíralo y alimenta la placa(con el USB por ejemplo).
(Nota: retira el micro con mucho cuidado de no doblar ningún pin, puedes insertar un destornillador plano por cada parte.)
Un saludo!

Pues acabo de fijarme en mi ARDUINO UNO y también hace lo mismo :astonished:.

En todos los scretchs que cargo se queda el led de la placa correspondiente al pin 13 encendido.

Si dentro del scretch defino el pin 13 como salida y lo pongo en estado LOW efectivamente se apaga pero sino...

Es una placa oficial y también traía pre-cargado el ejemplo Blink.

Un saludo!

PascuaL:
Hola!

Hay algo más que podemos comprobar.
Para probar si es el micro, retíralo y alimenta la placa(con el USB por ejemplo).
(Nota: retira el micro con mucho cuidado de no doblar ningún pin, puedes insertar un destornillador plano por cada parte.)
Un saludo!

Fue una de las primeras cosas que pensé en hacer, aunque luego no lo hice :sweat_smile:
Lo he probado esta mañana y el LED permanece encendido sin el microcontrolador ATmega328.

Me da que pensar en alguna polaridad invertida en algún componente de la placa que haga que el LED reciba la información opuesta, pero bueno esto no son más que cabalas ya que mis conocimientos de la electrónica son más bien pobres o lo siguiente.

Jukar:
Pues acabo de fijarme en mi ARDUINO UNO y también hace lo mismo :astonished:.

En todos los scretchs que cargo se queda el led de la placa correspondiente al pin 13 encendido.

Si dentro del scretch defino el pin 13 como salida y lo pongo en estado LOW efectivamente se apaga pero sino...

Es una placa oficial y también traía pre-cargado el ejemplo Blink.

Un saludo!

Con declararlo en el setup() basta para que no se ilumine. A menos en mi caso, que será igual que el tuyo.

No creo que haya mayores problemas a parte lo molesto (al menos para mí) que es que LED esté encendido cuando no debe.

yo lo acabo de comprobar, (tengo el arduino 2 días).
es cierto, se queda el led encendido:

  • si pongo un led en los pines 13-Gnd no se ilumina, y si lo pongo al revés se apaga el led de la placa (puesta a GND con el led auxiliar)
  • si pongo el led sobre los pines del led, también se ilumina, si lo pongo al revés no se apaga el led de la placa.
  • tampoco tengo el pin 13 en el skech, ni alto no bajo.

para mí no es muy importante que esté apagado, pero sí molesto.

Hola,

No es ningun defecto o problema, simplemente ese pin esta por default como OUTPUT y HIGH, mientras que todos los otros pines estan por default como INPUT. Si deseas que no encienda cambialo a LOW en el setup y listo, no hay que darse mala vida por eso.

Saludos.

Luis_AM3C:
... no hay que darse mala vida por eso.

:wink: +1

Que saben del error 5002 que da labview en la comunicación con arduino uno ?

porque escribes una pregunta nueva dentro de otro post? abre uno nuevo. y da mas detalles, es tu primer mensaje en el foro y te has lucido.
try again.

Luis_AM3C:
Hola,

No es ningun defecto o problema, simplemente ese pin esta por default como OUTPUT y HIGH, mientras que todos los otros pines estan por default como INPUT. Si deseas que no encienda cambialo a LOW en el setup y listo, no hay que darse mala vida por eso.

Saludos.

Y como se hace eso?? Porque si pongo como entrada lo tengo siempre en alto..

Hola, he seguido el hilo, ya que a mí también me ha pasado. He hecho lo que comentaba Luis:

void setup() {

pinMode(13, OUTPUT);
}

void loop() {

digitalWrite(13, LOW); // turn the LED off by making the voltage LOW

}

.....y se apagó el LED.

Saludos cordiales.

José ( EB3DJC )