Sommario:

Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale): 4 passaggi
Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale): 4 passaggi

Video: Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale): 4 passaggi

Video: Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale): 4 passaggi
Video: How to make a Light Sensor Circuit using a Photoresistor and a Raspberry Pi 2024, Dicembre
Anonim
Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale)
Circuiti GPIO Raspberry Pi: utilizzo di un sensore analogico LDR senza un ADC (convertitore analogico-digitale)

Nei nostri precedenti Instructables, ti abbiamo mostrato come puoi collegare i pin GPIO del tuo Raspberry Pi a LED e interruttori e come i pin GPIO possono essere High o Low. Ma cosa succede se vuoi usare il tuo Raspberry Pi con un sensore analogico?

Se vogliamo utilizzare sensori analogici con il Raspberry Pi, dovremmo essere in grado di misurare la resistenza del sensore. A differenza dell'Arduino, i pin GPIO del Raspberry Pi non sono in grado di misurare la resistenza e possono rilevare solo se la tensione fornita loro è superiore a una certa tensione (circa 2 volt). Per ovviare a questo problema, potresti usare un convertitore analogico-digitale (ADC), oppure potresti usare un condensatore relativamente economico.

Questo Instructable ti mostrerà come farlo.

Passaggio 1: cosa ti servirà

Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà
Cosa ti servirà

- Un RaspberryPi con Raspbian già installato. Dovrai anche essere in grado di accedere al Pi utilizzando un monitor, un mouse e una tastiera o tramite Desktop remoto. Puoi usare qualsiasi modello di Raspberry Pi. Se hai uno dei modelli Pi Zero, potresti voler saldare alcuni pin di intestazione alla porta GPIO.

- Un resistore dipendente dalla luce (noto anche come LDR o fotoresistenza)

- Un condensatore ceramico da 1 uF

- Un tagliere di prototipazione senza saldatura

- Alcuni ponticelli maschio-femmina

Passaggio 2: costruisci il tuo circuito

Costruisci il tuo circuito
Costruisci il tuo circuito
Costruisci il tuo circuito
Costruisci il tuo circuito

Costruisci il circuito sopra sulla tua breadboard assicurandoti che nessuno dei cavi dei componenti si tocchi. Il resistore dipendente dalla luce e il condensatore ceramico non hanno polarità, il che significa che è possibile collegare una corrente negativa e positiva a entrambi i cavi. Pertanto non è necessario preoccuparsi del modo in cui questi componenti sono stati collegati nel circuito.

Dopo aver controllato il circuito, collega i cavi jumper ai pin GPIO del tuo Raspberry Pi seguendo lo schema sopra.

Passaggio 3: creare uno script Python per leggere il resistore dipendente dalla luce

Crea uno script Python per leggere il resistore dipendente dalla luce
Crea uno script Python per leggere il resistore dipendente dalla luce

Ora scriveremo un breve script che leggerà e visualizzerà la resistenza dell'LDR usando Python.

Sul tuo Raspberry Pi, apri IDLE (Menu > Programmazione > Python 2 (IDLE)). Apri un nuovo progetto vai su File > Nuovo file. Quindi digita (o copia e incolla) il seguente codice:

import RPi. GPIO come GPIOimport timempin=17 tpin=27 GPIO.setmode(GPIO. BCM) cap=0.000001 adj=2.130620985i=0 t=0 while True: GPIO.setup(mpin, GPIO. OUT) GPIO.setup(tpin, GPIO. OUT) GPIO.output(mpin, False) GPIO.output(tpin, False) time.sleep(0.2) GPIO.setup(mpin, GPIO. IN) time.sleep(0.2) GPIO.output(tpin, True) starttime=time.time() endtime=time.time() while (GPIO.input(mpin) == GPIO. LOW): endtime=time.time() measureresistance=endtime-starttime res=(measureresistance/cap)* adj i=i+1 t=t+res se i==10: t=t/i print(t) i=0 t=0

Salva il tuo progetto come lightsensor.py (File > Salva con nome) nella cartella Documenti.

Ora apri Terminale (Menu> Accessori> Terminale) e digita il seguente comando:

python sensore di luce.py

Il Raspberry Pi mostrerà ripetutamente la resistenza della fotoresistenza. Se si posiziona il dito sulla fotoresistenza, la resistenza aumenterà. Se fai brillare una luce intensa sulla fotoresistenza, la resistenza diminuirà. È possibile interrompere l'esecuzione di questo programma premendo CTRL+Z.

Passaggio 4: come funziona

Man mano che il condensatore si carica gradualmente, la tensione che passa attraverso il circuito e al pin GPIO aumenta. Una volta che il condensatore è stato caricato fino a un certo punto, la sua tensione sale sopra i 2 volt e il Raspberry Pi rileverà che il pin 13 del GPIO è ALTO.

Se la resistenza del sensore aumenta, il condensatore si caricherà più lentamente e il circuito impiegherà più tempo per raggiungere i 2 volt.

Lo script sopra essenzialmente calcola il tempo impiegato dal pin 13 per diventare alto e quindi utilizza questa misurazione per calcolare la resistenza della fotoresistenza.

Consigliato: