Nota

Ciao, benvenuto nella community SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché Unirsi?

  • Supporto Esperti: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra community e del nostro team.

  • Impara & Condividi: Scambia consigli e tutorial per migliorare le tue competenze.

  • Anteprime Esclusive: Accedi in anteprima agli annunci di nuovi prodotti e alle anticipazioni.

  • Sconti Speciali: Goditi sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni Festive e Giveaway: Partecipa ai giveaway e alle promozioni festive.

👉 Pronto a esplorare e creare con noi? Clicca su [qui] e unisciti oggi stesso!

5.6 Due Tipi di Transistori

Questo kit è dotato di due tipi di transistori, S8550 e S8050, il primo è PNP e il secondo è NPN. Sono molto simili nell’aspetto, quindi è necessario controllare attentamente le loro etichette. Quando un segnale ad alto livello passa attraverso un transistor NPN, esso si attiva. Ma un PNP richiede un segnale a basso livello per funzionare. Entrambi i tipi di transistor sono frequentemente utilizzati per interruttori senza contatto, proprio come in questo esperimento.

Utilizziamo LED e pulsante per comprendere come usare un transistor!

Componenti Necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

È sicuramente conveniente acquistare un kit completo, ecco il link:

Nome

OGGETTI IN QUESTO KIT

LINK

ESP32 Starter Kit

320+

ESP32 Starter Kit

Puoi anche acquistarli separatamente dai link qui sotto.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

ESP32 Scheda

ACQUISTA

Estensione Fotocamera ESP32

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

Pulsante

ACQUISTA

Transistor

ACQUISTA

Pin Disponibili

  • Pin Disponibili

    Ecco un elenco dei pin disponibili sulla scheda ESP32 per questo progetto.

    Per Ingresso

    IO14, IO25, I35, I34, I39, I36, IO18, IO19, IO21, IO22, IO23

    Per Uscita

    IO13, IO12, IO14, IO27, IO26, IO25, IO33, IO32, IO15, IO2, IO0, IO4, IO5, IO18, IO19, IO21, IO22, IO23

  • Pin a Uso Condizionale (Ingresso)

    I seguenti pin hanno resistori pull-up o pull-down integrati, quindi non sono necessari resistori esterni quando utilizzati come pin di ingresso:

    Pin a Uso Condizionale

    Descrizione

    IO13, IO15, IO2, IO4

    Pull-up con resistore da 47K, valore predefinito su alto.

    IO27, IO26, IO33

    Pull-up con resistore da 4.7K, valore predefinito su alto.

    IO32

    Pull-down con resistore da 1K, valore predefinito su basso.

  • Pin di Strapping (Ingresso)

    I pin di strapping sono un insieme speciale di pin utilizzati per determinare modalità di avvio specifiche durante l’avvio del dispositivo (cioè, reset all’accensione).

    Pin di Strapping

    IO5, IO0, IO2, IO12, IO15

    Generalmente, non è consigliato utilizzarli come pin di ingresso. Se desideri utilizzare questi pin, considera l’impatto potenziale sul processo di avvio. Per maggiori dettagli, fai riferimento alla sezione Pin di Strapping.

Modo di Collegare il Transistor NPN (S8050)

../../_images/circuit_5.6_S8050.png

In questo circuito, quando il pulsante viene premuto, IO14 è alto.

Programmando IO26 per emettere un segnale alto, dopo un resistore di limitazione di corrente da 1k (per proteggere il transistor), l’S8050 (transistor NPN) è abilitato a condurre, permettendo così l’accensione del LED.

../../_images/5.6_s8050_bb.png

Modo di Collegare il Transistor PNP (S8550)

../../_images/circuit_5.6_S8550.png

In questo circuito, IO14 è basso di default e cambierà in alto quando il pulsante viene premuto.

Programmando IO26 per emettere un segnale basso, dopo un resistore di limitazione di corrente da 1k (per proteggere il transistor), l’S8550 (transistor PNP) è abilitato a condurre, permettendo così l’accensione del LED.

L’unica differenza che noterai tra questo circuito e il precedente è che nel circuito precedente il catodo del LED è collegato al collettore dell”S8050 (transistor NPN), mentre in questo è collegato all”emettitore dell”S8550 (transistor PNP).

../../_images/5.6_s8550_bb.png

Codice

Nota

  • Apri il file 5.6_transistor.py situato nel percorso esp32-starter-kit-main\micropython\codes, oppure copia e incolla il codice in Thonny. Successivamente, fai clic su «Esegui lo script corrente» o premi F5 per eseguirlo.

  • Assicurati di selezionare l’interprete «MicroPython (ESP32).COMxx» nell’angolo in basso a destra.

import machine

button = machine.Pin(14, machine.Pin.IN)   # Pulsante
led = machine.Pin(26, machine.Pin.OUT)  # LED

# Avvia un loop infinito
while True:
    # Leggi il valore corrente dell'oggetto 'button' (0 o 1) e memorizzalo nella variabile 'button_status'
    button_status = button.value()
    # Se il pulsante è premuto (il valore è 1)
    if button_status == 1:
        led.value(1) # Accendi il LED
    # Se il pulsante non è premuto (il valore è 0)
    else:
        led.value(0)            # Spegni il LED

Entrambi i tipi di transistor possono essere controllati utilizzando lo stesso codice. Quando premiamo il pulsante, l’ESP32 invierà un segnale ad alto livello al transistor; quando lo rilasciamo, invierà un segnale a basso livello.

  • Il circuito che utilizza l’S8050 (transistor NPN) si accenderà quando il pulsante viene premuto, indicando che è in uno stato di conduzione ad alto livello;

  • Il circuito che utilizza l’S8550 (transistor PNP) si accenderà quando il pulsante viene rilasciato, indicando che è in uno stato di conduzione a basso livello.