Nota
Ciao, benvenuto nella comunità di appassionati di SunFounder Raspberry Pi & Arduino & ESP32 su Facebook! Immergiti nel mondo affascinante di Raspberry Pi, Arduino e 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 [Qui] e unisciti oggi!
1.3 Scrittura Analogica (Analog Write)
Panoramica
Puoi generare un segnale PWM su un pin utilizzando analogWrite(). Questo metodo può essere utilizzato per regolare la luminosità di un LED, cambiare il colore di un LED RGB, controllare la velocità di un motore e molto altro. Qui useremo un LED come esempio per ottenere una luminosità graduale.
Componenti Necessari
※ Modulazione a Larghezza di Impulso (PWM)
La Modulazione a Larghezza di Impulso (PWM) è una tecnica per ottenere risultati analogici utilizzando mezzi digitali. Viene utilizzato un controllo digitale per creare un’onda quadra, un segnale che alterna tra acceso e spento. Questo schema acceso/spento può simulare tensioni tra completamente acceso (5 Volt) e spento (0 Volt) modificando la proporzione di tempo in cui il segnale rimane acceso rispetto a quanto rimane spento. Il tempo in cui il segnale è acceso viene chiamato larghezza dell’impulso. Per ottenere valori analogici variabili, si modifica o modula questa larghezza. Se questo schema viene ripetuto abbastanza velocemente, ad esempio con un LED, il risultato sembra essere una tensione costante tra 0 e 5 V, controllando la luminosità del LED.
Una chiamata a analogWrite() utilizza una scala da 0 a 255, per cui analogWrite(255) richiede un ciclo di lavoro al 100% (sempre acceso), mentre analogWrite(127) rappresenta un ciclo di lavoro del 50% (acceso per metà del tempo).
Circuito con Fritzing
In questo esempio, utilizziamo il pin PWM 9 per controllare il LED. Collega un’estremità della resistenza al pin 9. Collega il pin lungo (anodo) del LED all’altra estremità della resistenza. Collega il pin corto (catodo) del LED al GND.
Nota
I pin PWM della scheda Mega2560 sono dal 2 al 13 e dal 44 al 46.
Schema del Circuito
Codice
Nota
Puoi aprire direttamente il file
1.3_analogWrite.inoche si trova nel percorsosunfounder_vincent_kit_for_arduino\code\1.3_analogWrite.Oppure copia questo codice nell’Arduino IDE.
Dopo aver caricato il codice sulla scheda Mega2560, vedrai il LED accendersi e spegnersi gradualmente.
Analisi del Codice
Dichiara il pin 9 come ledPin.
int ledPin = 9;
In loop(), analogWrite() assegna al ledPin un valore analogico (onda PWM) tra 0 e 255 per cambiare la luminosità del LED.
analogWrite(ledPin, value);
Usando un ciclo for, il valore di analogWrite() può essere modificato gradualmente tra il valore minimo (0) e il massimo (255).
for (int value = 0 ; value <= 255; value += 5) {
analogWrite(ledPin, value);
}
Per osservare chiaramente il fenomeno sperimentale, viene aggiunto delay(30) al ciclo for per controllare il tempo di variazione della luminosità.
void loop() {
for (int value = 0 ; value <= 255; value += 5) {
analogWrite(ledPin, value);
delay(30);
}
}
Immagine del Fenomeno