Nota

Ciao, benvenuto nella Community di appassionati di Raspberry Pi, Arduino e ESP32 di SunFounder su Facebook! Approfondisci le tue conoscenze su Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati.

Perché unirti a noi?

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

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

  • Anteprime esclusive: Ottieni accesso anticipato ai nuovi annunci di prodotti e alle anteprime.

  • Sconti speciali: Godi di sconti esclusivi sui nostri prodotti più recenti.

  • Promozioni festive e giveaway: Partecipa a concorsi e promozioni durante le festività.

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

2.1.7 Potenziometro

Nota

../_images/mcp3008_and_adc0834.jpg

A seconda della versione del tuo kit, identifica se hai ADC0834 o MCP3008 e procedi con la sezione corrispondente.

Introduzione

La funzione ADC può essere utilizzata per convertire segnali analogici in segnali digitali, e in questo esperimento, viene utilizzato l’ADC0834 per ottenere la funzione di conversione ADC. In questo caso, implementiamo questo processo utilizzando un potenziometro. Il potenziometro cambia la quantità fisica – la tensione, che viene convertita dalla funzione ADC.

Componenti necessari

In questo progetto, abbiamo bisogno dei seguenti componenti.

../_images/list_2.1.4_potentiometer.png

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

Nome

OGGETTI IN QUESTO KIT

LINK

Raphael Kit

337

Raphael Kit

Puoi anche acquistarli separatamente dai link sottostanti.

INTRODUZIONE AI COMPONENTI

LINK PER L’ACQUISTO

Scheda di estensione GPIO

ACQUISTA

Breadboard

ACQUISTA

Cavi Jumper

ACQUISTA

Resistore

ACQUISTA

LED

ACQUISTA

Potenziometro

ACQUISTA

ADC0834

-

Schema elettrico

../_images/image311.png ../_images/image312.png

Procedure sperimentali

Passo 1: Costruisci il circuito.

../_images/image180.png

Nota

Posiziona il chip facendo riferimento alla posizione corrispondente raffigurata nell’immagine. Nota che le scanalature sul chip devono essere a sinistra quando viene posizionato.

Passo 2: Vai alla cartella del codice.

cd ~/raphael-kit/nodejs/

Passo 3: Esegui il codice.

sudo node potentionmeter.js

Dopo l’esecuzione del codice, ruota la manopola del potenziometro e l’intensità del LED cambierà di conseguenza.

Codice

const Gpio = require('pigpio').Gpio;
const ADC0834 = require('./adc0834.js').ADC0834;

const adc = new ADC0834(17, 18, 27);
const led = new Gpio(22, {mode: Gpio.OUTPUT});

setInterval(() => {
    adc.read(0).then((value) => {
        console.log(`Current analogVal: ${value}\n`);
        led.pwmWrite(value);
    }, (error)=>{
        console.log("Error: " + error);
    });
}, 100);

Spiegazione del Codice

const Gpio = require('pigpio').Gpio;

Importa il modulo pigpio.

const ADC0834 = require('./adc0834.js').ADC0834;

Importiamo un costruttore ADC0834 per utilizzare il modulo adc0834.

const adc = new ADC0834(17, 18, 27);

Istanzia un oggetto ADC0834, i tre parametri rappresentano i suoi tre pin.

Questo è un oggetto promise, potresti aver bisogno di approfondire il concetto dal seguente link.

setInterval(() => {
    adc.read(0).then((value) => {
        console.log(`Current analogVal: ${value}\n`);
        led.pwmWrite(value);
    }, (error)=>{
        console.log("Error: " + error);
    });
}, 100);

Il valore del canale 0 dell’ADC0834 (il canale 0 è collegato al potenziometro) viene letto ogni 100ms, e il valore verrà memorizzato in value.

Stampa il value e utilizzalo per controllare la luminosità del LED, ora puoi vedere che la luminosità del LED cambia in base al valore del potenziometro.

Immagine del fenomeno

../_images/image181.jpeg