¿Por qué algunos pines tienen '~' signos junto a sus números?

30

Estaba mirando mi Arduino Uno y noté ese símbolo por los pines digitales 11 , 10 , 9 , 6 , 5 y 3 . ¿Qué significan estos? ¿Esto afecta la forma en que funciona? ¿No puedo usar estos pines para ciertas situaciones?

    

2 respuestas

30

Relájate. No te preocupes. Estos pines se llaman PWM y son los mismos que los otros pines, excepto tienen una "bonificación añadida".

Algunos usos de sitio web de Arduino :

  
  • atenuando un LED
  •   
  • Simula una salida analógica. La salida aún se conmuta digitalmente de 0V a 5V. Sin embargo, el filtro de paso bajo (condensador y resistencia) simula voltajes analógicos.
  •   
  • Generando señales de audio.
  •   
  • Proporcionar control de velocidad variable para motores.
  •   
  • Generar una señal modulada, por ejemplo, para controlar un LED infrarrojo para un control remoto.
  •   

Cómo funciona:

Los pines PWM están controlados por temporizadores en el chip que alternan los pines automáticamente a una velocidad de aproximadamente 490Hz. La "Modulación de ancho de pulso" (PWM) es el tiempo que el pin permanece encendido o apagado durante un solo ciclo de esa frecuencia. Esto puede atenuar un LED al dar la ilusión de que está a la mitad del brillo que antes, donde realmente está parpadeando muy rápidamente.

Cuandohayunciclodetrabajodel25%,estáenuncuartodeltiempo.SiusaraparaunLED,apareceríaaproximadamente1/4comobrillante[darorecibir].(Nota:comoalgunaspersonasseñalaronqueestonoesverdaderamenteperodejémosloasíporsimplicidad.EX:25%nosiemprees1/4delbrillo).

(Sieresrealmenteexpertoenelectricidad,probablementepuedasagregaruncondensadorparaquetambiénseaunasalidaanalógica).

Cómousarestospinesparagenerar:

Primero,necesitasdefinirelpincomosalida.Entonces,usas%código%paraempezarElanalogWrite(ledPin,128);eselpinPWMquedeseainiciarPWMyledPindebereemplazarseconunnúmeroentre128y0;255:0(desactivacompletamenteelpin)y0%dutycycle:255.(enciendeelpinporcompleto)

Fuente: enlace

¿Por qué no puedo encender y apagar la luz realmente rápido en mi código ?:

Técnicamente, puedes, sin embargo, hay algunos problemas:

  • Puede que no sea tan preciso como usar los circuitos cableados con el Arduino
  • Es más simple simplemente escribir instrucciones en lugar de tener muchas declaraciones "if"

Realmente no va a hacer una gran diferencia si el único propósito del Arduino es generar señales PWM. Sin embargo, si coloca demoras de más de 50 MS en el bucle principal, desordenará el tiempo. Con el enfoque de software, querría eliminar cualquier función de "retraso" ya que Arduino solo se ejecuta en un hilo (solo puede hacer una cosa a la vez). Si sabe lo que está haciendo, no habrá mucha diferencia al atenuar la luz, pero si tiene un pin adicional con PWM, está perdiendo el tiempo con un enfoque de software.

Como han señalado otros:

Todavía necesita una resistencia para que sus circuitos limiten la corriente y el voltaje. No puedes saltarte esto.

    
respondido por el Anonymous Penguin
7

Un error común acerca de los pines PWM es que cuando se usa PWM, no es necesario usar resistencias limitadoras de corriente (con LED, por ejemplo).

Esto no es cierto. Los pines PWM deben considerarse pines digitales, que se activan y desactivan automáticamente. Esto significa que van a la misma tensión ALTA que cualquiera de los otros pines.

Cuando use LEDs con PWM, todavía debe usar resistencias limitadoras de corriente. Cuando use motores con PWM, debería (casi siempre) usar un transistor.

    
respondido por el baldengineer

Lea otras preguntas en las etiquetas