Por que alguns pinos têm sinais `~` ao lado de seus números?


32

Eu estava olhando para o meu Arduino Uno e notei que o símbolo por pinos digitais 11, 10, 9, 6, 5, e 3. O que isso significa? Isso afeta a maneira como funciona? Não posso usar esses pinos para determinadas situações?


19
O símbolo til significa "aproximadamente". Como em "este é aproximadamente o pino 11". Durante o processo mfg, os pinos podem mudar um pouco. Raramente o pino 11 será exatamente 11. Normalmente, é um pouco mais ou um pouco menos que 11. Os pinos com maior tendência a se movimentar serão indicados com o símbolo ~. :)

6
@AnnonomusPerson David está sendo ridículo, o que não é imediatamente óbvio se você não estiver familiarizado com pinagens e coisas do tipo.
Shamtam

7
@Shamtam: Ou se você não estiver familiarizado com David :)
Chris Laplante

Respostas:


31

relaxar. Não se preocupe. Esses pinos são chamados PWMe são os mesmos que os outros pinos, exceto que eles têm um "bônus adicional".


Alguns usos do site do Arduino :

  • Escurecendo um LED
  • Simula uma saída analógica. A saída ainda está alternando digitalmente de 0V a 5V. No entanto, filtro passa-baixo (capacitor e resistor) para simular tensões analógicas.
  • Gerando sinais de áudio.
  • Fornecendo controle de velocidade variável para motores.
  • Gerando um sinal modulado, por exemplo, para acionar um LED infravermelho para um controle remoto.

Como funciona:

Os pinos PWM são controlados por temporizadores no chip que alternam os pinos automaticamente a uma taxa de cerca de 490Hz. A "Modulação por largura de pulso" (PWM) é o tempo que o pino permanece ligado ou desligado por um único ciclo dessa frequência. Isso pode escurecer um LED, dando a ilusão de que ele está na metade do brilho como antes, onde está realmente piscando muito rapidamente. Imagem de diferentes ciclos de serviço.

Quando há um ciclo de trabalho de 25%, ocorre um quarto do tempo. Se você usasse um LED, ele apareceria aproximadamente 1/4 como brilhante [mais ou menos]. (Nota: como algumas pessoas apontaram, isso não é verdadeiramente proporcional, mas vamos deixar assim por simplicidade. EX: 25% nem sempre é 1/4 do brilho.)

(Se você é realmente experiente em eletricidade, provavelmente pode adicionar um capacitor para torná-lo também uma saída analógica.)


Como usar esses pinos na saída:

Primeiro, você precisa definir o pino como saída. Então, você usa analogWrite(ledPin, 128); para iniciá-lo. O ledPiné o pino PWM que você deseja iniciar PWM e 128deve ser substituído por um número entre 0e 255; 0: 0% duty cycle(Transforma o pino completamente desligado) e 255: 100% duty cycle. (liga o pino completamente)

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


Por que não consigo ligar e desligar a luz muito rápido no meu código ?:

Tecnicamente, você pode, no entanto, existem alguns problemas:

  • Pode não ser tão preciso quanto usar os circuitos conectados com o Arduino
  • É mais simples digitar instruções em vez de ter muitas instruções "if"

Realmente não fará muita diferença se o único objetivo do Arduino é gerar sinais PWM. No entanto, se você colocar algum atraso maior que 50 MS no loop principal, isso atrapalhará o tempo. Com a abordagem de software, você deseja eliminar as funções de "atraso", uma vez que o Arduino é executado apenas em um thread (ele só pode fazer uma coisa ao mesmo tempo). Se você sabe o que está fazendo, não fará muita diferença diminuir a luz, mas se você tiver um alfinete extra com o PWM, estará perdendo seu tempo com uma abordagem de software.


Como outros já apontaram:

Você ainda precisa de um resistor para seus circuitos para limitar a corrente e a tensão. Você não pode pular isso.


1
Não tenho idéia do que você quer dizer com "poder de processamento" (ou o que quer que essa frase deva significar). O PWM funciona porque é acionado pelos cronômetros que estão executando independentemente do código em execução.
baldengineer

@ JamesC4S, quero dizer que torna o código geral mais lento se você adicionar o atraso e ele for "On" e "off". O processador pode fazer tantas coisas por segundo antes de superaquecer, controlando a velocidade com que passa.
Pinguim Anonymous

@AnnonomusPerson Você precisa ser muito mais claro nas respostas que está dando. Ainda não vejo o que sua explicação tem a ver com "poder de processamento". Por exemplo, você pode escrever rotinas PWM que não usam delay (), usando millis () por exemplo, o que teria um impacto mínimo na velocidade de execução para o restante do código.
precisa saber é o seguinte

1
@AnnonomusPerson: Eu diria que existem duas maneiras de implementar o PWM no código: ou um pode fazer com que o processador execute o PWM em um loop que não faz mais nada, exceto talvez decidir quando sair, ou então pode haver uma interrupção de timer-tick execute o PWM. Na situação anterior, o processador não poderá fazer mais nada enquanto o PWM estiver acontecendo; neste último, haverá limites para a exatidão e precisão do tempo do PWM. Os circuitos PWM de hardware permitem que um chip gere formas de onda PWM limpas e precisas dentro de uma facção de microssegundo enquanto fazem outras coisas.
precisa

Observe que, graças ao modo como a visão funciona, um LED com 1/4 de CC (ou qualquer outra razão) não aparecerá necessariamente a fração correspondente do brilho total.
Ignacio Vazquez-Abrams

7

Um equívoco comum sobre os pinos do PWM é que, ao usar o PWM, não é necessário o uso de resistores limitadores de corrente (com LEDs, por exemplo).

Isso não é verdade. Os pinos PWM devem ser considerados pinos digitais, que são ligados e desligados automaticamente. Isso significa que eles vão para a mesma voltagem ALTA de qualquer outro pino.

Ao usar LEDs com PWM, você ainda deve usar resistores limitadores de corrente. Ao usar motores com PWM, você deve (quase sempre) usar um transistor.


2
@AnnonomusPerson Não, isso não está correto. Você ainda precisaria de limitadores de corrente para LEDs, mesmo se tivesse saídas analógicas verdadeiras. Os LEDs precisam de fontes de corrente constantes, não de fontes de tensão constantes.
precisa saber é o seguinte

3
Você pode obter LEDs com um resistor limitador de corrente embutido. Fiquei muito decepcionado quando pedi um LED em Maplin e um resistor adequado para desligá-lo 12V quando eles me disseram que tinham um que funcionava diretamente a partir de 12V. Heh, espere até que eles tentem empacotar uma carga de transistores em um pacote para criar um portão AND ou algo assim.
Andrew Morton
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.