Nota

Ciao, benvenuto nella community di SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts su Facebook! Approfondisci il mondo di Raspberry Pi, Arduino e 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.7 Sentire la Luce

Il fotoresistore è un dispositivo comunemente utilizzato per gli input analogici, simile a un potenziometro. Il suo valore di resistenza cambia in base all’intensità della luce che riceve. Quando esposto a luce intensa, la resistenza del fotoresistore diminuisce, mentre con l’abbassarsi dell’intensità luminosa, la resistenza aumenta.

Leggendo il valore del fotoresistore, possiamo raccogliere informazioni sulle condizioni di luce ambientale. Queste informazioni possono essere utilizzate per compiti come controllare la luminosità di un LED, regolare la sensibilità di un sensore o implementare azioni dipendenti dalla luce in un progetto.

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

Fotoresistenza

ACQUISTA

Pin Disponibili

  • Pin Disponibili

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

    Pin Disponibili

    IO14, IO25, I35, I34, I39, I36

  • Pin di Strapping

    I seguenti pin sono pin di strapping, che influenzano il processo di avvio dell’ESP32 durante l’accensione o il reset. Tuttavia, una volta che l’ESP32 è stato avviato correttamente, possono essere utilizzati come pin regolari.

    Pin di Strapping

    IO0, IO12

Schema

../../_images/circuit_5.7_photoresistor.png

All’aumentare dell’intensità della luce, la resistenza del fotoresistore (LDR) diminuisce, provocando una diminuzione del valore letto su I35.

Cablatura

../../_images/5.7_photoresistor_bb.png

Codice

Nota

  • Apri il file 5.7_feel_the_light.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.

from machine import ADC,Pin
import time

# crea un oggetto ADC che opera su un pin
photoresistor = ADC(Pin(35, Pin.IN))

# Configura l'attenuazione dell'ADC a 11dB per l'intera gamma
photoresistor.atten(photoresistor.ATTN_11DB)

while True:

    # leggi un valore analogico grezzo nell'intervallo 0-4095
    value = photoresistor.read()
    print(value)
    time.sleep(0.05)

Dopo l’esecuzione del programma, la Shell stamperà i valori del fotoresistore. Puoi illuminare il sensore con una torcia o coprirlo con la mano per vedere come cambia il valore.

  • atten(photoresistor.ATTN_11DB): Configura l’attenuazione dell’ADC a 11dB per l’intera gamma.

    Per leggere tensioni superiori alla tensione di riferimento, applica l’attenuazione dell’ingresso con l’argomento chiave atten.

    Valori validi (e intervalli di misurazione lineari approssimativi) sono:

    • ADC.ATTN_0DB: Nessuna attenuazione (100mV - 950mV)

    • ADC.ATTN_2_5DB: Attenuazione di 2,5dB (100mV - 1250mV)

    • ADC.ATTN_6DB: Attenuazione di 6dB (150mV - 1750mV)

    • ADC.ATTN_11DB: Attenuazione di 11dB (150mV - 2450mV)

  • machine.ADC - MicroPython Docs