.. note:: Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Immergiti nel mondo affascinante di Raspberry Pi, Arduino ed ESP32 insieme ad altri appassionati. **Perché unirti a noi?** - **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 a nuovi annunci di prodotti e contenuti esclusivi. - **Sconti speciali**: Approfitta di sconti esclusivi sui nostri prodotti più recenti. - **Promozioni festive e concorsi**: Partecipa a concorsi e promozioni speciali durante le festività. 👉 Sei pronto a esplorare e creare con noi? Clicca su [|link_sf_facebook|] e unisciti oggi! .. _ar_analog_input_output: 1.7 Controllo dell'Uscita con Ingresso Analogico ================================================== Panoramica ---------- Puoi creare un sistema di I/O (input/output) utilizzando dispositivi analogici. Ad esempio, puoi utilizzare un potenziometro, una fotoresistenza o un sensore di livello dell'acqua per controllare la luminosità di un LED, la velocità di un motore e altro ancora. In questa lezione, utilizzeremo un potenziometro e un LED per modificare la luminosità del LED ruotando il potenziometro. Componenti Necessari ----------------------- .. image:: img/list_1.7.png * :ref:`cpn_mega2560` * :ref:`cpn_breadboard` * :ref:`cpn_wires` * :ref:`cpn_led` * :ref:`cpn_resistor` * :ref:`cpn_potentiometer` Circuito con Fritzing ------------------------- In questa lezione, utilizziamo il pin PWM 9 per controllare il LED e il pin analogico A0 per leggere il valore del potenziometro. Dopo aver caricato il codice, noterai che la luminosità del LED cambia in base alla rotazione del potenziometro. .. image:: img/image50.png Schema del Circuito --------------------- .. image:: img/image408.png Codice ------- .. note:: * Puoi aprire direttamente il file ``1.7_analogInputControlOutput.ino`` che si trova nel percorso ``sunfounder_vincent_kit_for_arduino\code\1.7_analogInputControlOutput``. * Oppure copia questo codice nell'Arduino IDE. .. raw:: html Una volta caricato il codice sulla scheda Mega2560, noterai che la luminosità del LED cambia ruotando la manopola del potenziometro. Analisi del Codice -------------------- Dichiara i pin del potenziometro e del LED. .. code-block:: arduino const int sensorPin = A0; const int ledPin = 9; In setup(), configura la modalità del ledPin come OUTPUT. .. code-block:: arduino pinMode(ledPin,OUTPUT); In loop(), leggi il valore del potenziometro. .. code-block:: arduino int sensorValue=analogRead(sensorPin); Mappa il valore letto dal potenziometro ai livelli di luminosità del LED (da 0-1024 a 0-255). .. code-block:: arduino int brightness = map(sensorValue,0,1024,0,255); Scrivi il valore di luminosità al LED. .. code-block:: arduino analogWrite(ledPin,brightness); Immagine del Fenomeno ------------------------ .. image:: img/image51.jpeg