¿Cómo llevar un pin de entrada digital a un estado alto?

3

Esto suena realmente muy fácil, pero me da miedo intentarlo porque no quiero freír mi microcontrolador.

Usaré un Arduino para un ejemplo, pero debería ser el mismo para todos los microcontroladores.

De todos modos, supongamos que tiene un interruptor y que desea cuando presiona el interruptor para llevar un pin digital a alto (1) y cuando no se presiona, a bajo (0). ¿Esto requeriría resistencias? ¿O simplemente conectaría un cable de 3.3 V al pin de entrada?

O para simplificar aún más lo que estoy preguntando. Si, por alguna razón, quisiera que un determinado pin de entrada digital siempre fuera alto, ¿simplemente conectaría un cable de 3.3v en el pin digital? ¿O necesitarías una resistencia en algún lugar allí?

    
pregunta Earlz

3 respuestas

3

Para responder a tu pregunta sobre si puedes conectar la alimentación directamente al pin sin resistencia y tenerla siempre alta ... sí, eso funciona.

Cuando tiene el microcontrolador configurado en el modo de entrada, puede tratar el pin como si hubiera una resistencia muy grande en el interior. Entonces, usando la ley de ohmios, V / R = I con V = 3.3 y R = muy grande, digamos que 10megohm le da una corriente de 0.33 micro amperios. Las entradas están diseñadas para actuar como una impedancia tan alta para que tenga un efecto muy pequeño en cualquier cosa externa.

    
respondido por el Kellenjb
2

Necesitas usar un pullup para Vdd o un menú desplegable para GND. Si no lo hace, cuando presione su interruptor, reducirá efectivamente Vdd a GND.

EDITAR: debería haber hecho un dibujo, pero en lugar de eso, he encontrado un sitio con una explicación .

    
respondido por el Dave
2

El pin de un microcontrolador cuando se encuentra en el modo de entrada digital suele ser de cientos de kilo-ohmios o incluso de algunos megaohms. Son esencialmente entradas de alta impedancia op-amp (CMOS hoy en día).

El problema cuando se configura un pin para la salida es que los controladores de salida a menudo tienen una resistencia bastante baja: decenas de ohmios o menos. Pueden quemarse si están en corto a VCC o GND, según el estado. Parece que está más preocupado por esta situación, con una interfaz de botón / interruptor.

La forma estándar de hacer un cambio para una entrada digital es colocar el interruptor en el lado bajo con una resistencia de alto valor externamente. Así:

simular este circuito : esquema creado usando CircuitLab

El resistor R1 ayuda de dos maneras: si el microcontrolador accidentalmente convierte su pin en un modo de "salida" y se activa en BAJO, este resistor garantiza que no haya un cortocircuito a TIERRA a través del pin. Cuando un pin digital se activa a nivel bajo, es básicamente un cortocircuito a tierra, lo que es muy malo para un pin que está conectado a una fuente capaz de alta potencia / corriente.

La segunda función de R1 es cuando se presiona el botón, evita que la alta corriente fluya y destruya el interruptor.

Realmente no puede usar las resistencias de activación internas en el microcontrolador para esta configuración porque si R1 no existe, el interruptor fallará debido a la corriente de cortocircuito que lo atraviesa.

Lo único molesto de toda esta configuración es que está "bajo activo", ya que el valor lógico cuando se presiona el botón es "BAJO", y cuando no se presiona el botón, se encuentra en " ALTO".

Su otra opción es que el interruptor esté en el lado alto, conectando VCC al pin digital. Luego puede usar resistencias de arrastre internas (muy raras) o externas. Esto es bueno porque el interruptor no puede conectarse a tierra externamente, pero aún puede tener problemas si el pin del microcontrolador se configuró en la salida y se configuró en LOW (que es una conexión casi directa a tierra como mencioné anteriormente). / p>

simular este circuito

Para explicar el diagrama anterior, Rext es la ubicación de una resistencia externa si decidió hacerlo. Esto garantiza que cuando no se presiona el botón, el voltaje del nodo de entrada digital decaerá a cero a través de esta resistencia. El Rint es la resistencia interna posible si su microcontrolador proporciona uno, estos a menudo están en el rango de 20-40k Ohmios. En caso de configurar el pin en SALIDA y BAJO, el Rprot sirve como resistencia de protección contra cortocircuitos; honestamente, a todos los pines del microcontrolador de uso general se les debe dar un resistor de serie externo como este, para hacerlos más resistentes.

Yo mismo uso el primer diagrama, con R1 entre el pin y el interruptor, a VCC. Esto cubre todas las bases y protege contra locuras. Acabo de acomodar el nivel lógico que es BAJO cuando estoy activo en mi software.

    
respondido por el KyranF

Lea otras preguntas en las etiquetas