Nozioni di elettronica base

Ciao a tutti, studiando la teoria di elettronica basilare mi è sorto un dubbio su digitale e analogico.

Se non ho capito male, fondamentalmente, la differenza tra i due segnali è che l'analogico è un segnale continuo (quindi, a meno della sensibilità del sensore) è in grado di rappresentare una grandezza fisica per mezzo di una analoga (in questo caso una differenza di potenziale) con una certa legge di conversione.
Il digitale invece è un segnale discretizzato, in particolare dotato di due stati per mezzo dei quali posso riprodurre informazioni e anche dei segnali analogici digitalizzati che cercano di ricalcare la sinusoide con delle spezzate più o meno precise.

Ora però mi sorge il dubbio: il sensore digitale come funziona?
Cioè: il digitale è solo perchè nell'integrato un qualcosa che misura in modo analogico è già stato collegato ad un piccolo circuito in grado di inviarmi i dati ricavati in digitale oppure la rilevazione avviene proprio in modo digitale :fearful: e, se si, come? :grin:

Un sensore digitale è un sensore che ti restituisce l'informazione in formato... digitale, ossia come 0 e 1.
Esempio: prendiamo un sensore di temperatura.
C'è quello analogico, LM35, e quello digitale, DS1820.

Il primo restituisce un valore di tensione che varia da un minimo ad un massimo, proporzionalmente alla temperatura rilevata.
Per leggerlo ti serve un ingresso con un convertitore ADC, quindi analogico->digitale, che faccia la conversione in un'informazione in formato binario digeribile dal chip.
Nel secondo caso, invece, c'è all'interno del chip un integrato che provvede alla conversione in formato digitale ed all'invio della lettura (mediante richiesta) in formato binario. Se "interroghi" il secondo, usi un protocollo di comunicazione ed il sensore ti "spara" indietro una stringa di n bit composta da tanti 0 e 1. Ricorda che lo 0 è il segnale LOW, e l'1 è il segnale HIGH, su una linea dati.

Ok ok, ma fin qui io ci sono. La mia domanda era più a monte (o a valle a seconda del punto di vista) e andava proprio al sensore, dentro al sensore.

Prendiamo ad esempio il DS18B20 a cui fai riferimento tu, il protocollo di comunicazione è il OneWire e ok, comunica una stringa di 01 che significano a grandi linee 'questo sono io', 'questa è la mia misurazione'.
quello che domandavo io è: cosa succede dentro al sensore? cioè la natura non fornisce un segnale digitale, quindi si tratta 'semplicemente' di spostare il convertitore analogico-digitale dentro al sensore anzichè sull'Atmega?

Non so se mi sono spiegato: voglio capire se si tratta di una misura che avviene in modo completamente differente (e, se si, come) oppure se si tratta di una misurazione (intesa proprio come attività di misurazione) simile, ma che poi viene convertita in segnale digitale immediatamente all'interno del sensore e inviata sotto forma digitale

Si, il convertitore è interno al sensore.
Vedi lo schema a pagina 3 del datasheet --> http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf

Il convertitore che effettua la conversione dell'informazione da analogico a digitale si chiama ADC (analog to digital converter).

Prova a dare un'occhiata qui:

Una trattazione completa degli ADC è abbastanza complessa per essere affrontata su un forum, però in linea di massima pensa di avere un ADC a 3 bit, con 3 bit riesci a fare 8 livelli. Adesso prendi il tuo range di misura (esempio 0-5V) e dividilo un 8 parti. A questo punto c'è una circuiteria (la più semplice da capire, nonché la più veloce ma anche più dispendiosa in termini di spazio occupato si chiama Flash ADC (Elemania)) che controlla dentro quale step rientra il valore attuale della tensione di ingresso e lo converte nell'equivalente numero binario.

mastraa:
Ciao a tutti, studiando la teoria di elettronica basilare mi è sorto un dubbio su digitale e analogico.

Ciao,
premettiamo che, salvo tu non debba misurare qualche cosa di "discreto" (es. un interruttore aperto/chiuso), tutti gli altri fenomeni che in natura misuri, sono tipicamente "continui" e quindi adatti ad una misura proporzionale al loro valore (ovvero ... non solo vero o falso).

Il problema è che il processore, essendo un oggetto che lavora a stati logici, capisce solo cose descritte in modo "discreto", con una serie di 0 e 1 che, raggruppati in blocchi da 8, siamo soliti chiamare, per convenzione byte. Per aumentare la precisione si aumenta il numero di 0 e 1 (es. mettendo più bytes assieme) che vengono usati al fine di avere più cifre significative.

Ora, tutto ciò premesso, è chiaro che al tuo programma tu devi far arrivare un valore numerico che rappresenti la grandezza che devi misurare. Occorre quindi effettuare una conversione da un segnale che è nel "continuo" ad uno che è nel "discreto" tramite degli oggetti che sono, come giustamente ti ha indicato Janos, dei convertitori Analogico -> Digitali (ADC).

Questi convertitori puoi averli nella tua MCU, subito fuori come componenti dedicati o direttamente integrati dentro al sensore e, in questo ultimo caso, avrai quello che è un sensore con uscita già digitale (... nota che spesso, dopo l'ADC, c'è dell'altra elettronica per prendere l'insieme dei bit rappesentanti il valore analogico e spedirli, rispettando determinate regole, alla MCU, utilizzando il minimo di fili possibile ... anche uno solo ... one-wire).

Perché si mette il convertitore all'interno del sensore ?
Fondamentalmente perché spesso il sensore analogico genera un segnale elettrico estremamente debole e ... trasportarlo a lunghe distanze diventa molto problematico se non, addirittura, impossibile !
In seconda battuta per ... la praticità. Come ti dicevo, con il protocollo di comunicazione adatto, tu riesci a trasportare tutti i tuoi dati, su un singolo filo :wink:

Naturalmente, nel caso di segnali sufficientemente ampi (rispetto ai disturbi che li circondano e alla risoluzione del ADC), nulla vieta di collegare il sensore direttamente all'ADC della MCU risparmiando nei costi :wink:

Chiaro il concetto ?

Guglielmo

Chiarissimo, grazie a tutti.

Erano esattamente le info di cui avevo bisogno. In pratica sto scrivendo la tesi su un apparato di datalogger e in principio volevo dare una rapida infarinatura di elettronica. Non mi addentrerò nello spiegare come funziona un ADC che esula dal mio progetto, ma volevo trattare i tipi di segnali che Arduino può trattare. Ho quindi parlato dell'analogico e digitale, solo che non ero certo di tutto quello che ho scritto.

Diciamo che di base avevo capito, non mi era però chiarissimo cosa cambiasse a livello di sensore tra uno analogico e digitale.
Se non ho capito male, e semplificando a due parole, la differenza sta nella posizione dell'ADC, corretto?

Per essere precisi tutto inizia dal parlare di Trasduttori, ovvero dispositivi che trasformano una grandezza fisica in un'altra. L'utilizzo di questi è di poter trasformare una grandezza fisica (temperatura, pressione, etc.) in un'altra che può essere misurata, generalmente in una tensione.
Spesso, però, accade che prima di arrivare all'ADC ci siano uno o più stadi "di condizionamento", ovvero circuiti che trasformamo il segnale in un altro più facilmente misurabile: per esempio la cella di carico trasforma una pressione in una resistenza elettrica non direttamente leggibile dall'ADC. In questo caso, quindi, serve un circuito che trasformi la resistenza in tensione: un esempio potrebbe essere il Ponte di Wheatstone.
A questo punto non è detto la tensione generata sia adatta ad essere letta direttamente dall'ADC, magari perché ne supera il range di lettura o perché le escursioni di tensione sono troppo piccole per essere lette, o ancora perché il segnale generato è troppo debole, allora serve un ulteriore stadio di condizionamento del segnale.
Finalmente alla fine arriva l'ADC... :wink:

Tornando alla tua domanda, un sensore digitale ha già all'interno tutti questi stadi, più altri eventuali per poter essere interrogato da un microcontrollore mediante un bus di comunicazione (RS232, TWI, SPI, etc.) mentre con un sensore analogico si deve progettare il necessario prima di arrivare all'ADC.
Ad esempio una cella di carico fornisce una resistenza elettrica che varia linearmente con la pression esercitata, ma questa non può essere letta direttamente dall'ADC. Un altro esempio sono le Termocoppie (sensori di temperatura) che in genere forniscono una tensione troppo piccola per essere letta direttamente.
Molti sensori analogici nell'ambiente dell'automazione industriale forniscono segnali (0-10V, 4-20mA, più raramente 0-20mA) che non possono essere letti direttamente da Arduino (lo 0-10V perché la tensione massima è 5V, le versioni in corrente devono essere trasformate in tensione prima di essere lette dall'ADC).

Sisi perfetto, tipo gli estensimetri che hanno bisogno di un amplificatore come l'INA125P o gli LM opportunamente integrati da resistenze.

Grazie a tutti

Ciao, Vorrei approfondire le mie conoscenze di elettronica in particolar modo il ramo dei transistor sia npn che pnp.
potete darmi delle dritte su dove trovare informazioni con esempi pratici oppure prove pratiche con formule per il calcolo delle resistenze per la commutazione dei transistor npn?

Colgo l'occasione per porre cordiali saluti

Purtroppo non ti so aiutare, non ho studiato molto sui libri ma ho seguito i corsi all'Università... Non saprei indicarti qualche testo di riferimento, ma probabilmente ce ne sono alcuni base inerenti al mondo di Arduino...

P.S. Giusto per completezza di informazione, i transistor npn e pnp sono solo una parte dei transistor esistenti, ovvero i BJT. Esistono anche i Mosfet a canale N e a canale P e i JFET (ormai quasi non più utilizzati), sempre a canale P o canale N.