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

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

El símbolo de tilde significa "aproximadamente". Como en, "este es aproximadamente el pin 11". Durante el proceso de mfg, los pines pueden moverse un poco. En raras ocasiones, 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 indicarán con el símbolo ~. :)
@AnnonomusPerson David está bromeando, lo que no es inmediatamente obvio si no está familiarizado con pinouts y cosas por el estilo.
@Shamtam: O si no estás familiarizado con David :)

Respuestas (2)

Relajarse. No te preocupes. Estos pines se llaman PWMy son iguales a 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 aún cambia digitalmente de 0V a 5V. Sin embargo, filtro de paso bajo (condensador y resistencia) para simular voltajes analógicos.
  • Generación de 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 490 Hz. 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 dando la ilusión de que tiene la mitad del brillo que antes, cuando en realidad parpadea muy rápido.Imagen de diferentes ciclos de trabajo.

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

(Si realmente tiene conocimientos de electricidad, probablemente podría agregar un capacitor para que también sea una salida analógica).


Cómo usar estos pines para dar salida:

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

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


¿Por qué no puedo simplemente encender y apagar la luz muy 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 simplemente escribir instrucciones en lugar de tener muchas declaraciones "if"

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


Como otros han señalado:

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

No tengo idea de lo que quiere decir con "poder de procesamiento" (o lo que sea que se supone que significa esa frase). PWM funciona porque lo activan los temporizadores que se ejecutan independientemente del código en ejecución.
@ JamesC4S Quiero decir que hace que el código general sea más lento si agrega el retraso y se "activa" y "desactiva". El procesador solo puede hacer tantas cosas por segundo antes de que se sobrecaliente, por lo que controla qué tan rápido va.
@AnnonomusPerson Debe ser mucho más claro en las respuestas que está dando. Todavía no veo qué tiene que ver tu 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 del resto del código.
@AnnonomusPerson: Diría que hay dos formas de implementar PWM en el código: una puede hacer que el procesador realice el PWM en un bucle que no hace nada más que tal vez decidir cuándo salir, o bien puede tener una interrupción de tictac del 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 exactitud y precisión de la temporización PWM. Los circuitos PWM de hardware permiten que un chip genere formas de onda PWM limpias con una precisión de una fracción de microsegundo mientras hace otras cosas.
Tenga en cuenta que gracias a cómo funciona la visión, un LED con 1/4 de CC (o cualquier otra proporción) no necesariamente aparecerá en la fracción correspondiente de brillo total.
@IgnacioVazquez-Abrams Lo sé, pero solo puse esa parte por simplicidad. Sin embargo, tienes razón, debería poner eso allí que no son directamente proporcionales.

Un concepto erróneo 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 como pines digitales, que se encienden y apagan automáticamente. Esto significa que van al mismo voltaje ALTO que cualquiera de los otros pines.

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

@AnnonomusPerson No, eso no es correcto. Aún necesitaría limitadores de corriente para los LED, incluso si tuviera salidas analógicas verdaderas. Los LED necesitan fuentes de corriente constante, no fuentes de voltaje constante.
Puede obtener LED con una resistencia limitadora de corriente incorporada. Me decepcionó mucho cuando pedí un LED en Maplin y una resistencia adecuada para funcionar con 12 V cuando me dijeron que tenían unos que funcionaban directamente con 12 V. Je, solo espera hasta que intenten empaquetar una carga de transistores en un solo paquete para hacer una puerta AND o algo así.