WEBVTT

00:01.310 --> 00:06.950
Mi rendo conto che questa prossima lezione è solo teoria, ma è

00:06.950 --> 00:15.530
una lezione importante che ti ritroveresti ad usare costantemente quando programmerai nella prossima lezione, useremo il display LCD per

00:15.530 --> 00:22.940
visualizzare effettivamente le informazioni direttamente dal microcontrollore anche se non ha per essere il display LCD.

00:23.300 --> 00:29.270
Diciamo che costruisci un termostato digitale per controllare la temperatura in una stanza.

00:29.270 --> 00:36.890
Ora oltre al display LCD è possibile visualizzare direttamente le impostazioni, ecc. può essere inestimabile nella tua fase di

00:36.950 --> 00:38.960
ricerca e sviluppo.

00:38.990 --> 00:46.490
Diciamo che impostiamo un termistore con un resistore come divisore di tensione attraverso l'alimentazione e il convertitore

00:46.790 --> 00:54.170
analogico-digitale sputa un numero di 10 bit che rappresenta la tensione che esce da quel partitore

00:54.170 --> 00:55.590
di tensione.

00:55.670 --> 01:02.510
Voglio accendere il fuoco quando la temperatura arriva a 20 gradi Celsius e spegnere il fuoco

01:02.510 --> 01:06.100
quando la temperatura arriva a 25 gradi Celsius.

01:06.110 --> 01:15.710
Ora non ho assolutamente idea di quale sia il numero che il convertitore analogico-digitale sputa a 20 gradi.

01:15.710 --> 01:21.470
Non riesco a sapere il peer all'interno dell'immagine e metto un multimetro sulle linee dati che escono dal

01:21.500 --> 01:22.350
convertitore A-D.

01:22.520 --> 01:25.950
Eppure questo è esattamente quello che voglio fare.

01:25.970 --> 01:34.790
In effetti ho bisogno di fare come ho bisogno di guardare dentro l'immagine in qualche modo per scoprire quale numero viene prodotto quando

01:35.090 --> 01:38.270
il termistore è a 20 gradi Celsius.

01:38.270 --> 01:42.600
Ora ci sono un sacco di modi in cui lo fai in modo un po 'più complesso.

01:42.740 --> 01:50.630
Ma d'ora in poi ti ritroverai a eseguire un programma di calibrazione o un programma di utilità o una subroutine

01:51.140 --> 01:59.110
che hai scritto appositamente solo per dirti ciò che il microprocessore vede le immagini. Il convertitore AD è un convertitore a

01:59.110 --> 02:07.060
10 bit con gli 8 bit più bassi memorizzati in 1 8 registro bit e due bit superiori memorizzati in

02:07.150 --> 02:09.980
un altro registro a 8 bit.

02:09.990 --> 02:16.890
Nel nostro caso, quindi, collegheremo il display LCD e mostreremo in realtà i

02:16.890 --> 02:25.570
tre esagoni e tre livelli come tre numeri esadecimali provenienti direttamente dal convertitore A D in tempo reale.

02:25.680 --> 02:28.920
Possiamo quindi misurare la temperatura effettiva.

02:28.920 --> 02:36.000
Il termistore sta vedendo cobby in basso o qualunque numero viene prodotto dal convertitore HDD

02:36.090 --> 02:43.520
e usa quei numeri generati per scrivere il nostro programma finale che controlla effettivamente il calore.

02:43.530 --> 02:47.440
Quindi, se puoi immaginarlo, questo è ricerca e sviluppo.

02:47.790 --> 02:55.230
Stiamo scrivendo un programma che non farà altro che sputare numeri per noi che possiamo usare

02:55.230 --> 03:01.520
per scrivere il nostro programma finale che controlla il calore in una stanza.

03:01.740 --> 03:07.710
Sapremo quale valore viene prodotto dal convertitore ADT a quali temperature otterranno un'intera gamma

03:07.710 --> 03:10.340
di numeri mediante la sperimentazione.

03:10.860 --> 03:17.880
Ora la cosa è che potresti costruire lo stesso circuito esattamente come faccio con le stesse identiche parti

03:17.880 --> 03:23.760
ma non funzionerebbe allo stesso modo a causa delle variazioni nel termistore e nel resistore.

03:23.760 --> 03:25.220
Ora pensaci.

03:25.230 --> 03:34.140
Quindi, utilizzando questa forma di feedback diretto, è possibile calibrare il sistema visualizzando un'alimentazione diretta dal

03:34.230 --> 03:36.690
convertitore A / D.

03:36.690 --> 03:40.810
Ora ecco un altro potente utilizzo del convertitore HD che puoi utilizzare nei tuoi progetti.

03:40.920 --> 03:46.690
Supponiamo che tu abbia 10 pulsanti per il tuo robot controllato da microcontrollore.

03:47.070 --> 03:54.480
Puoi impostarli come ingressi digitali sul tuo plettro ma questo richiederebbe fino a 10 ingressi digitali.

03:54.660 --> 03:59.220
Hai solo così tante uscite in ingresso, quindi vuoi conservarle.

03:59.220 --> 04:08.390
Inserisci il convertitore da A a D creando una scala di resistenze come questa costruisce un divisore di tensione a più livelli.

04:08.570 --> 04:13.480
Sputerà una tensione diversa per ogni pulsante premuto.

04:13.490 --> 04:20.960
Ora si esegue una riga in un convertitore analogico-digitale e il convertitore ADT emetterà un numero

04:20.960 --> 04:23.770
univoco a seconda del pulsante premuto.

04:24.350 --> 04:30.650
Quindi, in realtà, potresti costruire un enorme array come questo, molto più grande di quanto tu possa mai volere, in quanto potresti facilmente

04:30.650 --> 04:33.440
costruire una serie di centinaia di pulsanti come questo.

04:33.530 --> 04:40.690
In questo modo è possibile leggere centinaia di pulsanti utilizzando un solo input sul microcontrollore.

04:41.300 --> 04:48.500
Quindi ora è necessario capire quale numero viene generato per ogni singolo pulsante.

04:48.650 --> 04:56.330
Un modo per farlo è semplicemente visualizzare il risultato sul display LCD e semplicemente premere ciascun pulsante per annotare

04:57.680 --> 05:02.180
ciò che il convertitore legge quando si preme un pulsante specifico.

05:02.180 --> 05:06.320
Usa quei numeri più avanti nello scrivere il tuo programma.

05:06.560 --> 05:15.050
Infatti, premendo due pulsanti contemporaneamente si crea un unico divisore di tensione univoco generato

05:15.320 --> 05:18.260
da un convertitore A-D.

05:18.260 --> 05:24.130
Quando si premono due pulsanti contemporaneamente, è possibile avere pulsanti multifunzione.

05:24.470 --> 05:29.570
Ora ricorda anche come leggi che le informazioni possono essere fatte in diversi modi.

05:29.570 --> 05:35.650
La tua scrittura di un programma di utilità o subroutine al fine di fare tutto questo comunque.

05:35.750 --> 05:37.840
Quindi scegli il tuo metodo.

05:38.090 --> 05:45.050
Un singolo LCD su un'uscita digitale può essere programmato per lampeggiare il numero in modo da poter semplicemente

05:45.170 --> 05:47.490
contare gli impulsi dal display LCD.

05:47.540 --> 05:49.330
Metti una pausa tra ogni numero.

05:49.460 --> 06:02.780
Quindi se fosse il numero esadecimale dì a 5 C vedresti 12 lampi per C una pausa cinque lampeggia una pausa e due lampeggi.

06:02.780 --> 06:10.560
Questo può essere fatto dire che se non avessi un display LCD a portata di mano un altro modo di gestire risultati

06:10.560 --> 06:15.870
e numeri digitali invisibili è quello di costruire una routine di calibrazione nel tuo programma.

06:15.870 --> 06:24.750
Ad esempio, potresti avere un singolo programma Elodie per far lampeggiare un certo codice e un singolo pulsante per la calibrazione.

06:24.750 --> 06:30.750
Hai il tuo manuale di istruzioni che hai scritto per andare insieme al tuo fantastico gadget high tech che

06:30.750 --> 06:31.630
stai creando.

06:31.950 --> 06:38.130
Bene, vediamo che è il nostro robot sottomarino che progetteremo nei prossimi moduli.

06:38.160 --> 06:41.950
È controllato da un joystick.

06:41.950 --> 06:45.410
Ora qui ho aperto questo joystick in modo da poter vedere come funziona.

06:45.430 --> 06:54.040
Sono semplicemente due parti sui due assi che attaccano quei vasi attraverso l'alimentatore e mettono il pin centrale di

06:54.130 --> 06:58.700
ciascuno su due ingressi analogici sul controller della bici.

06:58.900 --> 07:07.540
Ora hai il controllo del joystick ma non hai idea di quali numeri l'analogo al digitale genera quando il joystick

07:07.540 --> 07:13.190
è centrato o pieno a destra oa sinistra o pieno su o giù.

07:13.270 --> 07:19.570
Ecco quindi che quando l'utente legge il tuo manuale di istruzioni su come calibrare quando l'utente

07:19.570 --> 07:26.440
preme il pulsante di calibrazione lampeggia la D tre volte velocemente indicando che è pronto a calibrare il

07:26.440 --> 07:33.460
manuale di istruzioni dice all'utente di spostare il joystick fino ad Andremo in un grande cerchio a scuotere

07:33.460 --> 07:34.690
questa volta.

07:34.900 --> 07:42.280
Il microcontrollore sta cercando i numeri più grandi e più piccoli generati dal convertitore

07:42.370 --> 07:47.160
su ciascun asse e memorizza quei numeri in memoria.

07:47.680 --> 07:54.420
Dopo alcuni cicli, l'Elodie lampeggia due volte rapidamente per indicare che l'utente deve mollare il bastone.

07:54.520 --> 08:02.140
Quindi si concentrerà sul microcontrollore, ora legge gli assi del joystick e registra nella sua memoria i

08:02.140 --> 08:06.010
valori che vede quando il joystick è centrato.

08:06.130 --> 08:13.630
Questi valori ora memorizzati nella memoria vengono quindi referenziati dal tuo programma in modo che sappia quando

08:13.630 --> 08:20.020
l'utente ha il joystick centrato o sta comandando il movimento in una direzione specifica.

08:21.300 --> 08:27.520
Ora un'ultima nota perché la risoluzione è piuttosto alta di mille e 24 valori diversi.

08:27.720 --> 08:33.250
La maggior parte delle mie nuove modifiche nella tensione di ingresso darà un numero diverso.

08:33.270 --> 08:40.110
Quindi con qualsiasi resistore variabile il tuo numero andrà costantemente alla deriva un po 'a causa

08:40.110 --> 08:42.690
delle variazioni microscopiche della tensione.

08:42.690 --> 08:49.050
Quindi quando usi il numero che esce dal convertitore DTA, il convertitore HD nel tuo programma devi

08:49.050 --> 08:50.620
solo tenerne conto.

08:50.700 --> 08:58.590
Diciamo che a 20 ° C i tuoi esperimenti con termistori hanno dimostrato che il

08:58.950 --> 09:03.750
convertitore sputerà un numero compreso tra 234 e 276.

09:03.750 --> 09:09.420
Quindi quando scrivi il tuo programma stai verificando se il numero è maggiore di 233

09:09.420 --> 09:10.960
e meno di 277.

09:11.100 --> 09:14.930
Ora sai che la tua temperatura è a 20 gradi.
