Menu English Ukrainian Russo Casa

Libreria tecnica gratuita per hobbisti e professionisti Libreria tecnica gratuita


ENCICLOPEDIA DELLA RADIOELETTRONICA ED ELETTRICA
Libreria gratuita / Schemi di dispositivi radioelettronici ed elettrici

Arduino. Operazioni di input-output analogico, funzionano con un suono. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Libreria tecnica gratuita

Enciclopedia della radioelettronica e dell'elettrotecnica / Progettista radioamatore

Commenti sull'articolo Commenti sull'articolo

Sebbene le operazioni di ingresso-uscita digitale consentano di risolvere un'ampia gamma di problemi, la presenza di un convertitore analogico-digitale (ADC) integrato nel microcontrollore della scheda Arduino e la capacità di emettere segnali analogici utilizzando la modulazione di larghezza di impulso ( PWM) garantiscono il funzionamento con sensori analogici e tutti i tipi di attuatori, influenzando l'oggetto in proporzione al segnale di controllo.

A rigor di termini, in modalità output, tutte le porte di Arduino possono trasmettere solo segnali discreti che hanno solo due stati. Ma il microcontrollore è in grado di cambiare questi stati molto rapidamente, generando impulsi rettangolari. Se questi impulsi vengono applicati a qualsiasi dispositivo con proprietà inerziali, inizierà a comportarsi come se la tensione fornita fosse costante, uguale al valore medio dell'impulso e cambi gradualmente e non a salti tra alto e basso livelli logici.

In modalità PWM, la porta genera un segnale di impulso con frequenza costante e ciclo di lavoro variabile (questo è il rapporto tra il periodo di ripetizione degli impulsi e la loro durata). Spesso, invece del ciclo di lavoro, funzionano con il suo valore inverso: il ciclo di lavoro, che può essere modificato da 0 (nessun impulso) al 100% (gli impulsi seguono, fondendosi, senza pause). Pertanto, sebbene in ogni momento la tensione di uscita corrisponda ad un livello logico alto o basso, il suo valore medio è proporzionale al ciclo di lavoro. Se colleghi un normale multimetro a questa uscita, mostrerà questo valore (ovviamente, se la frequenza degli impulsi è sufficientemente alta).

In Arduino UNO, le uscite D3, D5, D6, D9, D10 e D11 possono funzionare in modalità PWM. Di solito sono contrassegnati sulla scheda con i segni "~" o con le abbreviazioni "PWM". Va notato che le schede Arduino di altre modifiche possono avere più o meno tali uscite.

Nel caso più semplice, il PWM può essere utilizzato per controllare la luminosità di un LED. Questo dispositivo è praticamente privo di inerzia, ma la visione umana ha un'inerzia sufficiente affinché una sequenza di flash LED veloci venga percepita come un bagliore continuo con luminosità dipendente dal fattore di riempimento.

Le uscite discrete in grado di generare PWM sono configurate per utilizzare questa modalità per impostazione predefinita, quindi non è necessario chiamare la funzione pinMode() per utilizzarle in questa modalità. Per impostare il ciclo di lavoro di un segnale PWM, esiste una funzione standard analogWrite(N, M), dove N è il numero di pin, M è un numero proporzionale al ciclo di lavoro richiesto. Deve essere compreso tra 0 e 255, dove 0 corrisponde a ciclo di lavoro zero (livello basso costante in uscita), ciclo di lavoro 255 - 100% (livello alto costante in uscita). I diagrammi temporali della tensione di uscita a determinati valori di M e, di conseguenza, il ciclo di lavoro di cortocircuito sono mostrati in Fig. 1.

Arduino. Operazioni di I/O analogico, Operazioni audio
Riso. 1. Diagrammi di temporizzazione della tensione di uscita

Consideriamo ad esempio quello riportato in tabella. 1 programma che aumenta gradualmente la luminosità del LED collegato all'uscita digitale D9, per poi diminuirla gradualmente. Si basa sull'esempio standard 3.AnalogFading fornito con l'IDE di Arduino. L'enumerazione dei valori del duty cycle degli impulsi è qui implementata utilizzando gli operatori del ciclo for già discussi in [1].

Tabella 1.

Arduino. Operazioni di I/O analogico, Operazioni audio

Per ricevere segnali analogici da dispositivi esterni in Arduino, sono previsti gli ingressi A0-A5, che per impostazione predefinita sono impostati sullo stato richiesto a tale scopo, quindi non è necessaria alcuna inizializzazione aggiuntiva. L'ADC integrato nell'Arduino UNO genera codici binari a 10 bit e converte la tensione di ingresso, che è compresa tra 0 e +5 V, in un numero intero compreso tra 0 e 1023 (210-1).

Per leggere il risultato della conversione, utilizzare la funzione analogRead(N), dove N è il numero dell'ingresso analogico.

È possibile collegare una varietà di sensori agli ingressi analogici di Arduino, la cui tensione di uscita è proporzionale al valore misurato (resistori variabili, termistori, fotoresistori, ecc.). Occorre tuttavia tenere presente che all'ingresso analogico può essere fornita solo una tensione compresa tra 0 e +5 V. Se la tensione di uscita del sensore si trova in un intervallo diverso o ha polarità negativa, il segnale deve prima essere collocato entro l'intervallo specificato allineare. L'ingresso analogico viene interrogato a una velocità inferiore a 10 kHz [2], che potrebbe non essere sufficiente per analizzare alcuni segnali che cambiano rapidamente.

La presenza di ingressi analogici consente di trasformare Arduino in un semplice voltmetro digitale che misura la tensione continua da 0 a +5 V e trasmette il risultato della misurazione al computer. Per fare ciò basta caricare su Arduino il programma riportato in tabella. 2.

Tabella 2

Arduino. Operazioni di I/O analogico, Operazioni audio

Si noti che nel programma la tensione ADC di riferimento Uref (in millivolt) e il fattore di conversione del codice di uscita ADC in tensione Ku sono specificati come costanti. Il valore del coefficiente viene calcolato dividendo la tensione di riferimento data per 1023. Il coefficiente è solitamente frazionario, quindi la costante Ki è di tipo float (numero in virgola mobile). La costante Uref ha lo stesso tipo per calcolare correttamente il coefficiente. Poiché il lato destro della formula contiene solo costanti, il coefficiente non viene calcolato dal microcontrollore durante l'esecuzione del programma, ma dal compilatore stesso nella fase della sua traduzione.

Tutto ciò permette di aumentare la precisione del voltmetro misurando con un multimetro il valore esatto della tensione di riferimento al pin Uref della scheda Arduino e scrivendolo nel programma, assegnandolo alla costante Uref. Puoi leggere altri modi per migliorare la precisione della conversione da analogico a digitale in [3, 4].

Quando il programma in questione è in esecuzione, il LED TX sulla scheda lampeggia, segnalando il trasferimento delle informazioni attraverso la porta seriale. Il LED RX non è acceso perché il computer non invia nulla in risposta. Il terminale IDE Arduino integrato visualizza le informazioni ricevute (Fig. 2): i risultati della misurazione della tensione di una batteria galvanica 3332.

Arduino. Operazioni di I/O analogico, Operazioni audio
Riso. 2. Finestra del programma

Arduino può fornire non solo segnali luminosi, ma anche sonori. Per fare ciò, è necessario collegare un emettitore di suono piezoelettrico, ad esempio ZP-1, a una delle sue uscite (Fig. 3).

Arduino. Operazioni di I/O analogico, Operazioni audio
Riso. 3. Collegamento di un emettitore di suoni piezoelettrici

Per lavorare con il suono, viene fornita una funzione speciale: tono(N, F, T), dove N è il numero del pin su cui verranno generati gli impulsi rettangolari; F - frequenza del suono, Hz; T - durata del suono, ms. L'ultimo parametro è facoltativo. In sua assenza, il suono sarà continuo. Per disattivarlo è prevista la funzione noTone(N).

Naturalmente, l'emettitore sonoro piezoceramico difficilmente può essere definito un dispositivo di riproduzione di alta qualità e il segnale generato dal microcontrollore ha una forma rettangolare, tuttavia l'uso di queste funzioni consente di riprodurre melodie semplici. Un esempio è riportato nella tabella. 3. Questo è un esempio di programma leggermente modificato 02.Digital oneMelody, incluso nell'IDE di Arduino. Poiché è scomodo impostare manualmente la frequenza di ciascuna nota di una melodia, il file pitches.h viene allegato al programma nella sua intestazione utilizzando la direttiva #include. Questa operazione equivale ad includere nel programma il testo completo di questo file. In questo caso contiene l'elenco dei nomi delle note che possono essere suonate e le loro frequenze.

Tabella 3

Arduino. Operazioni di I/O analogico, Operazioni audio

L'emettitore di suoni deve essere collegato all'uscita D8.

Per un programma, una melodia è una sequenza di costanti dello stesso tipo (valori di frequenza), che sono opportunamente combinate in un array, un elenco numerato di elementi dello stesso tipo. Quando dichiari un array, devi elencare tutti i suoi elementi o indicarne il numero totale. Tieni presente che la numerazione degli elementi dell'array inizia sempre da zero.

Nell'esempio in esame vengono utilizzati due array: int melody[] contiene i nomi delle note della melodia, int note Durations[] - la loro durata in millisecondi. Per fare riferimento ad un elemento dell'array, indicarne il nome con un numero progressivo racchiuso tra parentesi quadre. Per poter modificare facilmente il numero di note di una melodia, si calcola utilizzando le funzioni sizeof(V), che restituiscono il numero di byte occupati dal suo argomento (variabile o array di esse) nella memoria del microcontrollore. In questo caso, l'array della melodia occupa 16 byte e la lunghezza dei suoi elementi int è di due byte. Pertanto la variabile Note riceve il valore 8 e questo è il numero di volte in cui verrà ripetuto il corpo del ciclo for, suonando le note una ad una.

Se aggiungi più di una nota all'array melody[], il valore Note cambierà di conseguenza. Devi solo ricordarti di aggiungere l'array noteDurations[] con le durate di queste note.

Poiché la melodia viene eseguita una sola volta, tutte le operazioni necessarie vengono eseguite all'interno della funzione setup().

Per rieseguire è necessario ripristinare il microcontrollore al suo stato originale premendo il pulsante RESET situato sulla scheda Arduino

I programmi per Arduino discussi nell'articolo possono essere scaricati da ftp://ftp.radio.ru/pub/2016/09/aninout.zip.

Letteratura

  1. Lekomtsev D. Arduino. Operazioni di ingresso/uscita digitale. - Radio, 2016, n. 8, pag. 51-54.
  2. Misure analogiche con Arduino. - URL: robotosha.ru/arduino/analog-measurements-arduino.html.
  3. Riferimento al linguaggio Arduino. I/O analogico - analogReference(). -URL: arduino.cc/en/Reference/AnalogReference.
  4. funzione analogReference(). - URL: arduino.ru/Reference/AnalogReference.

Autore: D. Lekomtsev

Vedi altri articoli sezione Progettista radioamatore.

Leggere e scrivere utile commenti su questo articolo.

<< Indietro

Ultime notizie di scienza e tecnologia, nuova elettronica:

Macchina per diradare i fiori nei giardini 02.05.2024

Nell'agricoltura moderna si sta sviluppando il progresso tecnologico volto ad aumentare l'efficienza dei processi di cura delle piante. Presentata in Italia l'innovativa macchina per il diradamento dei fiori Florix, progettata per ottimizzare la fase di raccolta. Questo attrezzo è dotato di bracci mobili, che permettono di adattarlo facilmente alle esigenze del giardino. L'operatore può regolare la velocità dei fili sottili controllandoli dalla cabina del trattore tramite joystick. Questo approccio aumenta significativamente l'efficienza del processo di diradamento dei fiori, offrendo la possibilità di adattamento individuale alle condizioni specifiche del giardino, nonché alla varietà e al tipo di frutto in esso coltivato. Dopo due anni di test della macchina Florix su diverse tipologie di frutta, i risultati sono stati molto incoraggianti. Agricoltori come Filiberto Montanari, che utilizza una macchina Florix da diversi anni, hanno riscontrato una significativa riduzione del tempo e della manodopera necessari per diluire i fiori. ... >>

Microscopio infrarosso avanzato 02.05.2024

I microscopi svolgono un ruolo importante nella ricerca scientifica, consentendo agli scienziati di approfondire strutture e processi invisibili all'occhio. Tuttavia, vari metodi di microscopia hanno i loro limiti e tra questi c'è la limitazione della risoluzione quando si utilizza la gamma degli infrarossi. Ma gli ultimi risultati dei ricercatori giapponesi dell'Università di Tokyo aprono nuove prospettive per lo studio del micromondo. Gli scienziati dell'Università di Tokyo hanno presentato un nuovo microscopio che rivoluzionerà le capacità della microscopia a infrarossi. Questo strumento avanzato consente di vedere le strutture interne dei batteri viventi con sorprendente chiarezza su scala nanometrica. In genere, i microscopi nel medio infrarosso sono limitati dalla bassa risoluzione, ma l’ultimo sviluppo dei ricercatori giapponesi supera queste limitazioni. Secondo gli scienziati, il microscopio sviluppato consente di creare immagini con una risoluzione fino a 120 nanometri, ovvero 30 volte superiore alla risoluzione dei microscopi tradizionali. ... >>

Trappola d'aria per insetti 01.05.2024

L’agricoltura è uno dei settori chiave dell’economia e il controllo dei parassiti è parte integrante di questo processo. Un team di scienziati dell’Indian Council of Agricultural Research-Central Potato Research Institute (ICAR-CPRI), Shimla, ha trovato una soluzione innovativa a questo problema: una trappola per insetti alimentata dal vento. Questo dispositivo risolve le carenze dei metodi tradizionali di controllo dei parassiti fornendo dati sulla popolazione di insetti in tempo reale. La trappola è alimentata interamente dall'energia eolica, il che la rende una soluzione ecologica che non richiede energia. Il suo design unico consente il monitoraggio sia degli insetti dannosi che utili, fornendo una panoramica completa della popolazione in qualsiasi area agricola. “Valutando i parassiti target al momento giusto, possiamo adottare le misure necessarie per controllare sia i parassiti che le malattie”, afferma Kapil ... >>

Notizie casuali dall'Archivio

Supercondensatori a base di mozziconi di sigaretta 18.08.2014

Gli scienziati della Corea del Sud hanno trovato un modo per trasformare i mozziconi di sigaretta in supercondensatori. L'accumulo di energia risultante può essere utilizzato per alimentare una varietà di dispositivi.

Secondo uno degli autori dello studio, Jeong Hep Yi, i filtri per sigarette usati possono essere convertiti in materiale di carbonio ad alta efficienza attraverso un semplice processo in un'unica fase, che, tra l'altro, è una soluzione ecologica al problema di domanda di energia.

Il supercondensatore, con cui sono finiti gli scienziati, può immagazzinare una quantità significativa di energia. Allo stesso tempo, è in grado di caricarsi rapidamente e mantiene una carica più lunga rispetto a molti modelli alternativi.

Vale la pena notare che i mozziconi di sigaretta sono un tipo di spazzatura molto comune in tutto il mondo. Ogni anno nel mondo vengono buttate più di 765mila tonnellate di mozziconi di sigaretta. Grazie allo sviluppo degli scienziati coreani, questa spazzatura può ora essere utilizzata razionalmente.

Altre notizie interessanti:

▪ Scelta della professione - dai geni

▪ A proposito dei pianeti di una stella racconterà la sua fotosfera

▪ Al computer è stato insegnato a distinguere il testo maschile da quello femminile

▪ Le mascelle più veloci del mondo

▪ temperatura a piacere

News feed di scienza e tecnologia, nuova elettronica

 

Materiali interessanti della Biblioteca Tecnica Libera:

▪ sezione del sito Indovinelli per adulti e bambini. Selezione di articoli

▪ articolo Diritto doganale. Note di lettura

▪ articolo Quanto è profonda la grotta più profonda del mondo? Risposta dettagliata

▪ articolo Disinfettante. Descrizione del lavoro

▪ articolo Sonda sonora-ohmmetro. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

▪ articolo I primi ricevitori eterodina. Enciclopedia dell'elettronica radio e dell'ingegneria elettrica

Lascia il tuo commento su questo articolo:

Nome:


E-mail (opzionale):


commento:





Tutte le lingue di questa pagina

Homepage | Biblioteca | Articoli | Mappa del sito | Recensioni del sito

www.diagram.com.ua

www.diagram.com.ua
2000-2024