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

32

Yo estaba buscando en mi Arduino Uno y me di cuenta de que el símbolo de 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?

Pingüino anónimo
fuente
19
El símbolo de tilde significa "aproximadamente". Como en "esto es aproximadamente el pin 11". Durante el proceso de fabricación, los pines pueden cambiar un poco. Raramente el pin 11 será exactamente 11. Por lo general, es un poco más o un poco menos que 11. Los pines que tienen una mayor tendencia a moverse se denotarán con el símbolo ~. :)
66
@AnnonomusPerson David está siendo gracioso, lo que no es inmediatamente obvio si no estás familiarizado con los pinouts y los gustos.
Shamtam
77
@Shamtam: O si no estás familiarizado con David :)
Chris Laplante

Respuestas:

31

Relajarse. No te preocupes Estos pines se llaman PWMy son los mismos que los otros pines, excepto que tienen un "bono adicional".


Algunos usos del sitio web de Arduino :

  • Atenuar un LED
  • Simula una salida analógica. La salida sigue cambiando digitalmente de 0V a 5V. Sin embargo, filtro de paso bajo (condensador y resistencia) para simular voltajes analógicos.
  • Generando señales de audio.
  • Proporcionando 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 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 tiene la mitad del brillo que antes, donde realmente parpadea muy rápidamente. Imagen de diferentes ciclos de trabajo.

Cuando hay un ciclo de trabajo del 25%, es una cuarta parte del tiempo. Si usó para un LED, parecería aproximadamente 1 / 4th como brillante [más o menos]. (Nota: como algunas personas señalaron, esto no es realmente proporcional, pero dejémoslo así por simplicidad. EJ: 25% no siempre es 1/4 de brillo).

(Si usted es realmente un experto en electricidad, probablemente podría agregar un condensador para que también sea una salida analógica).


Cómo usar estos pines para la salida:

Primero, debe definir el pin como salida. Entonces, lo usas analogWrite(ledPin, 128); para comenzar. El ledPines el pin PWM que desea iniciar PWM y 128debe reemplazarse con un número entre 0y 255; 0: 0% duty cycle(Apaga el pasador completamente apagado) y 255: 100% duty cycle. (enciende el pin por completo)

Fuente: http://www.arduino-tutorials.com/arduino-pwm/


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

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

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

Realmente no hará mucha diferencia si el único propósito del Arduino es generar señales PWM. Sin embargo, si coloca retrasos de más de 50 MS en el bucle principal, arruinará el tiempo. Con el enfoque de software, querrá 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 hará una gran diferencia atenuar la luz, pero si tiene un pin adicional con PWM, solo está perdiendo el tiempo con un enfoque de software.


Como otros han señalado:

Aún necesita una resistencia para que sus circuitos limiten la corriente y el voltaje. No puedes saltarte esto.

Pingüino anónimo
fuente
1
No tengo idea de lo que quieres decir con "poder de procesamiento" (o lo que se supone que significa esa frase). PWM funciona porque lo activan los temporizadores que se ejecutan independientemente del código en ejecución.
baldengineer
@ JamesC4S Quiero decir que hace que el código general sea más lento si agrega el retraso y se pone en "Encendido" y "apagado". El procesador solo puede hacer tantas cosas por segundo antes de que se sobrecaliente, por lo que controla qué tan rápido va.
Anonymous Penguin
@AnnonomusPerson Debe ser mucho más claro en las respuestas que está dando. Todavía no veo qué tiene que ver su explicación con el "poder de procesamiento". Por ejemplo, puede escribir rutinas PWM que no usen delay (), usando millis () por ejemplo, lo que tendría un impacto mínimo en la velocidad de ejecución para el resto del código.
Baldengineer
1
@AnnonomusPerson: Diría que hay dos formas de implementar PWM en el código: uno puede hacer que el procesador realice el PWM en un bucle que no hace nada más que quizás decidir cuándo salir, o bien puede tener una interrupción de temporizador. realizar el PWM. En la primera situación, el procesador no podrá hacer nada más mientras ocurre el PWM; en este último, habrá límites a la precisión y precisión de la sincronización PWM. Los circuitos PWM de hardware permiten que un chip genere formas de onda PWM limpias que sean precisas dentro de una facción de un microsegundo mientras hace otras cosas.
supercat
Tenga en cuenta que, gracias a cómo funciona la visión, un LED con 1/4 DC (o cualquier otra relación) no necesariamente aparecerá la fracción correspondiente de brillo completo.
Ignacio Vazquez-Abrams
7

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

Esto no es verdad. Los pines PWM deben considerarse pines digitales, que se encienden y apagan automáticamente. Esto significa que van al mismo ALTO voltaje que cualquiera de los otros pines.

Al usar LED con PWM, aún debe usar resistencias limitadoras de corriente. Cuando use motores con PWM, debería (casi siempre) usar un transistor.

Baldengineer
fuente
2
@AnnonomusPerson No, eso no es correcto. Aún necesitaría limitadores de corriente para los LED, incluso si tuviera verdaderas salidas analógicas. Los LED necesitan fuentes de corriente constantes, no fuentes de voltaje constante.
baldengineer
3
Usted puede obtener los LED con una resistencia limitadora de corriente integrado. Estaba tan decepcionado cuando pedí un LED en Maplin y una resistencia adecuada para ejecutarlo con 12 V cuando me dijeron que tenían los que corrían directamente de 12V. Heh, solo espera hasta que intenten empaquetar una carga de transistores en un paquete para hacer una puerta AND o algo así.
Andrew Morton