3.6. Fundamentos de eletrónica

Controlar qualquer componente externo a partir de um pino GPIO requer um circuito do outro lado do pino. Três conceitos básicos de eletrónica — tensão, corrente e a relação entre elas através de uma resistência — surgem em todos esses circuitos.

3.6.1. Tensão, corrente, resistência

  • A tensão (volts, V) é a diferença de potencial entre dois pontos num circuito. O rail de alimentação do chip pode estar a 3,3 V relativamente à massa; um pino GPIO colocado a nível alto encontra-se à mesma tensão de 3,3 V.

  • A corrente (amperes, A, ou miliamperes, mA) é o fluxo de carga através de um condutor. A corrente regressa sempre ao ponto de origem, pelo que, para que circule qualquer corrente, o circuito deve formar um caminho fechado desde a alimentação até à massa.

  • A resistência (ohms, Ω) representa a oposição do caminho a esse fluxo. O propósito de uma resistência é estabelecer a corrente num valor conhecido para uma tensão conhecida.

A lei de Ohm une-as:

A triangle divided into three regions labelled V at top, I and R at the bottom; the rearranged forms V = IR, I = V/R, R = V/I appear around it.

A lei de Ohm nas suas três formas.

Por palavras: a tensão aos terminais de uma resistência é igual à corrente que a percorre multiplicada pela resistência. Conhecendo dois dos três valores, o terceiro obtém-se por álgebra.

3.6.2. Díodos

Um díodo é um componente de dois terminais que conduz corrente numa direção (do ânodo para o cátodo) e a bloqueia na direção oposta.

A diode schematic symbol -- a triangle pointing right into a vertical bar -- with anode marked on the left and cathode on the right. An LED variant adds two outward arrows next to the symbol indicating emitted light.

Um díodo conduz apenas do ânodo para o cátodo. Um LED é um díodo que emite luz enquanto conduz.

Um díodo tem também uma tensão direta (Vf) — a queda de tensão aos seus terminais quando a corrente flui no sentido de condução. Assim que a tensão aplicada atinge Vf, o díodo comporta-se aproximadamente como um fio; abaixo desse valor, praticamente não circula corrente.

3.6.3. LEDs

Um díodo emissor de luz (LED) é um díodo que converte a corrente de condução em luz visível ou infravermelha. O brilho escala com a corrente; a cor é definida pela composição química do LED, não pela forma como é acionado.

Tensões diretas típicas de LEDs:

  • Vermelho: 1,8 – 2,2 V

  • Verde ou amarelo: 2,0 – 2,4 V

  • Azul ou branco: 2,8 – 3,4 V

Uma corrente de operação útil para um LED indicador é de 5 – 20 mA. Correntes mais elevadas produzem mais brilho, mas reduzem a vida útil do LED e podem exceder o limite de carga do pino GPIO.

3.6.4. A resistência limitadora de corrente

Ligar um LED diretamente entre um pino GPIO e a massa permitiria a circulação de corrente praticamente ilimitada: quando a tensão direta é atingida, o LED comporta-se como um circuito quase em curto. Uma resistência em série entre o pino e o LED define a corrente num valor seguro.

A circuit: GPIO pin connects through a resistor R to the anode of an LED; the LED's cathode goes to ground. Labels mark Vsupply at the pin, V_R across the resistor, Vf across the LED, and the current If flowing around the loop.

Uma resistência em série define a corrente no LED.

A tensão de alimentação divide-se entre a resistência e o LED: o LED absorve a sua tensão direta e a resistência absorve o restante. Pela lei de Ohm:

R = (Vsupply - Vf) / If

Para um LED vermelho (Vf 2.0 V) alimentado a partir de um pino GPIO de 3,3 V a 10 mA:

R = (3.3 - 2.0) / 0.010 = 130 Ω

Na prática, escolha o valor padrão normalizado imediatamente superior (150 Ω ou 220 Ω). O resultado é um LED ligeiramente menos brilhante, mas com uma margem de segurança mais adequada. Utilize entre 200 – 470 Ω como valor predefinido razoável quando o brilho exato não é relevante.

3.6.5. Por que razão cada componente é importante

A estrutura de qualquer circuito de saída GPIO resulta dos quatro conceitos acima:

  • A tensão define a energia disponível no pino. Um GPIO de 3,3 V tem 3,3 V a distribuir pelo que estiver ligado entre ele e a massa.

  • Um díodo (um LED, neste caso) consome parte dessa tensão como queda direta e recusa conduzir na direção errada — define o sentido e a parcela fixa.

  • Uma resistência limitadora de corrente consome a tensão restante e transforma o orçamento disponível numa corrente controlada. Sem ela, o LED consumiria qualquer corrente que o pino conseguisse fornecer — normalmente suficiente para destruir um ou ambos.

  • A lei de Ohm é o que torna o valor da resistência calculável: dados a tensão residual e a corrente pretendida, R obtém-se por álgebra.

Tensão, corrente, resistência, díodos e uma equação reorganizada são suficientes para projetar qualquer fase de saída GPIO básica.

As mesmas peças têm estado presentes no LED integrado desde o início. machine.LED("LED_RED").on() acende o LED porque a placa da câmara já inclui tudo à sua volta — a resistência limitadora de corrente, o fio à massa, o próprio LED — e a classe limita-se a comutar o GPIO do circuito integrado por detrás deles. A visão de «uma linha acende um LED» é verdadeira; é apenas uma forma abreviada de dizer «acionar esse circuito». Remove-se a abstração e o que resta é exatamente o circuito acima.

machine.Pin é o mesmo circuito integrado exposto sem as peças envolventes. O script controla diretamente a tensão do pino; cabe-lhe fornecer a resistência (dimensionada pela lei de Ohm), o LED e o caminho de retorno à massa. Os mesmos quatro conceitos reaparecem, em combinações ligeiramente diferentes, por detrás do debounce de interruptores, da filtragem PWM e do controlo de motores.