Nota
Ciao, benvenuto nella Comunità degli Appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Immergiti più a fondo in Raspberry Pi, Arduino e ESP32 con altri entusiasti.
Perché Unirsi?
Supporto Esperto: Risolvi problemi post-vendita e sfide tecniche con l’aiuto della nostra comunità e del nostro team.
Impara e Condividi: Scambia consigli e tutorial per migliorare le tue competenze.
Anteprime Esclusive: Ottieni accesso anticipato agli annunci di nuovi prodotti e alle anteprime.
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 [qui] e unisciti oggi!
Lezione 25: Modulo Sensore di Livello dell’Acqua
Nota
Il Raspberry Pi non dispone di capacità di input analogico, quindi necessita di un modulo come il Modulo Convertitore ADC/DAC PCF8591 per leggere i segnali analogici per l’elaborazione.
In questa lezione, imparerai a leggere da un sensore di livello dell’acqua utilizzando un Raspberry Pi. Scoprirai come collegare un modulo sensore di livello dell’acqua al PCF8591 per la conversione analogico-digitale e monitorarne l’uscita in tempo reale con Python.
Componenti Necessari
Per questo progetto sono necessari i seguenti componenti.
È decisamente conveniente acquistare un kit completo, ecco il link:
Nome |
ELEMENTI IN QUESTO KIT |
LINK |
---|---|---|
Kit Sensori Universali |
94 |
Puoi anche acquistarli separatamente dai link sottostanti.
Introduzione al Componente |
Link per l’Acquisto |
---|---|
Raspberry Pi 5 |
|
- |
|
Cablaggio

Codice
import PCF8591 as ADC # Importa il modulo PCF8591
import time # Importa time per i ritardi
ADC.setup(0x48) # Inizializza PCF8591 all'indirizzo 0x48
try:
while True: # Leggi e stampa continuamente
print(ADC.read(1)) # Leggi dal modulo sensore di livello dell'acqua su AIN1
time.sleep(0.2) # Ritardo di 0.2 secondi
except KeyboardInterrupt:
print("Exit") # Esci con CTRL+C
Analisi del Codice
Importazione delle Librerie:
Questa sezione importa le librerie Python necessarie. La libreria
PCF8591
è usata per interagire con il modulo PCF8591, etime
è per implementare ritardi nel codice.import PCF8591 as ADC # Importa il modulo PCF8591 import time # Importa time per i ritardi
Inizializzazione del Modulo PCF8591:
Qui, il modulo PCF8591 è inizializzato. L’indirizzo
0x48
è l’indirizzo I²C del modulo PCF8591. Questo è necessario per permettere al Raspberry Pi di comunicare con il modulo.ADC.setup(0x48) # Inizializza PCF8591 all'indirizzo 0x48
Ciclo Continuo e Lettura dei Dati:
Il blocco
try
include un ciclo continuo che legge costantemente i dati dal modulo sensore di livello dell’acqua. La funzioneADC.read(1)
cattura l’input analogico dal sensore connesso al canale 1 (AIN1) del modulo PCF8591. Includere untime.sleep(0.2)
crea una pausa di 0.2 secondi tra ogni lettura. Questo aiuta a ridurre l’uso della CPU del Raspberry Pi evitando eccessive richieste di elaborazione dei dati e previene che il terminale sia sopraffatto da informazioni che scorrono rapidamente, rendendo più facile monitorare e analizzare l’output.try: while True: # Leggi e stampa continuamente print(ADC.read(1)) # Leggi dal modulo sensore di livello dell'acqua su AIN1 time.sleep(0.2) # Ritardo di 0.2 secondi
Gestione dell’Interruzione da Tastiera:
Il blocco
except
è progettato per catturare un’interruzione da tastiera (come premere CTRL+C). Quando si verifica questa interruzione, lo script stampa «uscita» e smette di funzionare. Questo è un modo comune per uscire in modo elegante da uno script che si esegue continuamente in Python.except KeyboardInterrupt: print("exit") # Esci con CTRL+C