Arduino - pin13 es ALTO por defecto

Hice algunas pruebas con mi Arduino UNO, todo funcionó muy bien: E/S analógica, E/S digital, E/S serial. Luego noté que el LED incorporado en el pin 13 siempre está encendido.

He subido un programa vacío como void setup(){} void loop(){}y todavía estaba encendido. Cuando lo apagué manualmente por digitalWritecomando, se apagó. Entonces funciona bien.

Solo quiero saber si he roto el tablero de alguna manera o es solo alguna característica, que no entiendo.

NOTA: un compañero mio tiene la misma placa con el mismo problema. ¿Algunas ideas? ¡Muchas gracias!

No estoy seguro, pero creo que está configurado en ENTRADA con el pull-up interno activado de forma predeterminada (probablemente para reducir el ruido). ¿Se apaga el LED si configura pinMode() en SALIDA para el pin 13?
¡Sí, lo hace! Lo acabo de comprobar.
Vería la plataforma si en realidad es una plataforma Open Hardware/Firmware. Si no, ¿quién sabe?

Respuestas (3)

Echar un vistazo al esquema de Arduino Uno explica esto, si entiendo el esquema correctamente. No tengo un Arduino Uno, por lo que no puedo verificar con un multímetro, por lo que podría estar equivocado.

Según entiendo del esquema, el pin 13 del arduino, el pin SCK, está conectado a un búfer de amplificador operacional. Cuando usted (o cualquier otra persona) carga un programa que no hace nada en el pin 13, su estado predeterminado es una entrada sin pullup.

Cuando un pin digital se configura como una entrada sin una resistencia pullup, tiene una alta impedancia (alta Z) y un voltaje no especificado. Puede ser 0V, pero también podría ser algo así como 1.5V. La medida dependerá de la impedancia de tu medidor, entre otras cosas. Cargue un boceto vacío y verifique el voltaje en los pines; encontrará que son bastante aleatorios y no siempre 0V .

Ahora, un pin de entrada de alta Z con, digamos, unos pocos voltios no podrá alimentar un LED. Sin embargo, este voltaje está amortiguado por el amplificador operacional del Uno y se repite en la salida. Este amplificador operacional podrá encender un LED y, aparentemente, lo hace.

Creo que el equipo de Arduino debería agregar una resistencia desplegable de alto ohmio (por ejemplo, 50 kOhm) para que esto sea menos confuso.

He medido el voltaje entre el pin 13 y tierra y era 0 voltios...
Supongo que si su multímetro tiene una impedancia bastante baja (lo cual es malo para medir el voltaje), puede reducir el voltaje.
Se puede observar un comportamiento similar al del pin D13 con los pines D0 y D1 (desde lo más alto de mi mente). Estos pines se utilizan para comunicaciones en serie y también tienen conexiones a Vcc.
No puede medir nada a bordo en serie sin desconectar algo más. Así que creo que probablemente estás midiendo correctamente. La forma correcta de medir el pin SCK es así: primero localice el pin que desea medir. Configure el multímetro en un rango de voltaje apropiado (0-2 o 0-20). Conecte la sonda negra del multímetro a tierra (para el arduino, la forma más fácil es usar el blindaje de metal USB-B, está conectado a GND). Luego conecte la sonda roja al pin que desea medir. Y así has ​​conectado el multímetro en paralelo al pin.
Si quisieras medir algo en serie, sería la corriente. Entonces tienes que usar el puerto actual de tu medidor. De esta forma, el multímetro tiene baja impedancia y "simula" ser un trozo de cable.

"Así que funciona bien".

Aparentemente, su placa no está rota, ya que el LED se puede encender y apagar, y el Uno de su compañero muestra el mismo comportamiento. De forma predeterminada, el LED parece usarse como indicador de encendido y, para llamar su atención: "¡Oye, si necesitas un LED, no olvides que ya tienes uno en la placa!". Se llama una "característica" :-). Simplemente asígnele cualquier función que desee.

Muy raro, ya que hay otro LED llamado "POWER LED"... Pero bueno...
@Kolyunya - Por eso digo "por defecto". No es necesario para eso, por lo que puede controlarlo usted mismo para cualquier funcionalidad que necesite.
¿Tu pin13 se comporta de la misma manera (si tienes esta placa)? ¡Gracias por una respuesta!
@Kolyunya - No, no tengo uno, pero creo que la idea es llamar su atención: "Oye, si necesitas un LED, ¡no olvides que ya tienes uno en el tablero!".
Puede que me equivoque, pero los UNO más antiguos no tenían esta "característica", por lo que es fácil confundirse. Y sí, la resistencia LED+ de las versiones anteriores (y nano/micro/etc chino) funciona como pulldown sorprendentemente fuerte en algunos casos y tuve que cambiar algunos de mis proyectos, donde olvidé el efecto "pulldown" de LED en D13. Entonces, este cambio es un buen paso, pero puede confundir a las personas acostumbradas a un comportamiento más antiguo (y peor).

El arduino tiene un buen pull-up, pero también noté que el LED parpadea varias veces al cargar cosas. Y sí, sé lo que son los leds TX y RX, pero el pin 13 también funciona...