WEBVTT

00:02.110 --> 00:08.560
Sappi che abbiamo controllato un motore DC usando P. W. e controlleremo un servo per hobby.

00:08.590 --> 00:13.360
Ora, se ricorderai che i servo dell'hobby funzionano su un P. W. segnale del braccio.

00:13.590 --> 00:22.660
No, non è PWO vero P. W. di per sé come la larghezza dell'impulso è ciò

00:22.660 --> 00:27.680
che effettivamente imposta la posizione servile nella frequenza dell'impulso può variare selvaggiamente e continuerà a funzionare.

00:27.700 --> 00:36.430
Ora i servo hanno tipicamente un campo di 180 gradi e si aspettano un impulso con da 1 a

00:36.880 --> 00:40.690
2 millisecondi con un impulso ogni 20 millisecondi.

00:40.690 --> 00:47.620
Quindi con un impulso di un millisecondo il servo sarà a zero gradi a 1. L'impulso a 5 millisecondi dovrebbe posizionarlo

00:47.620 --> 00:55.090
a 90 gradi e un impulso di due millisecondi dovrebbe portarlo a 180 gradi.

00:55.120 --> 00:58.640
Ora i servo sono molto clementi in questi tempi.

00:58.720 --> 01:04.990
Se la frequenza degli impulsi è molto lenta, il servo si muove lentamente e reagisce.

01:04.990 --> 01:11.530
Alcune persone hanno segnalato servi in esecuzione per la frequenza degli impulsi di cinquecento impulsi al

01:11.530 --> 01:12.220
secondo.

01:12.580 --> 01:20.290
Ma se fai i conti un secondo diviso per due millisecondi è cinquecento.

01:20.290 --> 01:27.730
Quindi, per ottenere il pieno controllo del servo a 180 gradi, il numero massimo assoluto di

01:27.730 --> 01:31.960
impulsi che potreste inviare sarebbe di cinquecento al secondo.

01:32.410 --> 01:38.670
Ora i servo sono progettati per circa 50 impulsi al secondo.

01:38.840 --> 01:43.740
Inoltre, la maggior parte dei servi ti darà più di 180 gradi di viaggio.

01:43.880 --> 01:51.830
E negli esperimenti che ho eseguito, i servi avrebbero accettato un impulso più breve di sette millisecondi

01:51.830 --> 01:54.670
fino a quasi 3 millisecondi.

01:54.740 --> 02:03.830
Quindi ecco dove sorgono le sfide alla guida dei servi con Arduino W. M. la frequenza sul basso è 490 Hertz tranne i

02:03.910 --> 02:12.810
pin 5 e 6 che hanno un W. M. ma in realtà corre a novecentottanta Hertz.

02:13.040 --> 02:14.850
Quindi hai una scelta se vuoi.

02:14.870 --> 02:19.760
In entrambi i casi la frequenza è davvero troppo veloce per l'uso con i servi dell'hobby.

02:19.750 --> 02:26.960
Ora, proprio come l'immagine, puoi programmare manualmente i registri che controllano il segnale GWM.

02:27.020 --> 02:30.320
Corrono un contatore che è alimentato fuori dal tempo.

02:30.410 --> 02:32.950
E questi contatori fanno solo il conto alla rovescia.

02:33.200 --> 02:39.830
In questo modo è possibile modificare il numero del conto alla rovescia per accelerare o rallentare la frequenza DPW.

02:39.870 --> 02:46.880
Ma c'è un mucchio di funzioni su Arduino che usano quel conto alla rovescia.

02:46.880 --> 02:53.270
Quindi, se si scherza con esso per far sì che il lavoro di Ciro rimandi tutti

02:53.330 --> 03:01.190
i tempi attenti su tutte quelle altre funzioni, oltre a impostare quei registri, è altrettanto complicato che fare con la foto.

03:01.230 --> 03:08.440
Ora il nostro bel comando di ritardo se ricordi è stato in millisecondi.

03:08.750 --> 03:14.780
Quindi funzionerà solo in numeri interi con incrementi di un millisecondo.

03:14.780 --> 03:21.140
Quindi potremmo inviare una nota alta sul pin digitale collegato alla linea del segnale in un cerchio.

03:21.560 --> 03:28.580
Quindi usiamo un ritardo di un millisecondo e quindi inviamo un carico al pin che trasformerebbe il

03:28.580 --> 03:31.190
servo nella posizione di zero gradi.

03:31.340 --> 03:37.970
Potremmo quindi inviare un impulso con un ritardo di due millisecondi che trasformerebbe il servo nella posizione

03:37.970 --> 03:39.620
di 180 gradi.

03:39.710 --> 03:44.820
Quindi ottieni solo due posizioni del tuo serval e basta.

03:44.880 --> 03:54.320
Ora, mentre ciò è utilizzabile, ad esempio, puoi usarlo per bloccare o sbloccare un catenaccio.

03:54.350 --> 03:59.490
Ma in generale questo sconfigge completamente lo scopo di avere un Super Bowl.

03:59.510 --> 04:08.680
Ciò di cui abbiamo bisogno è la capacità di inviare un impulso di dire 1. 1 sette millisecondi o 1. 8 cinque millisecondi.

04:08.750 --> 04:12.840
Quindi è qui che arriva una nuova istruzione.

04:13.010 --> 04:20.990
Ritarda i microsecondi con il tempo di ritardo tra parentesi.

04:20.990 --> 04:27.550
È esattamente come l'istruzione di ritardo solo in microsecondi, non millisecondi.

04:27.550 --> 04:38.430
Usando questa istruzione possiamo impostare un ritardo di 1534 micro-secondi che sarebbe 1. 5 3 4 millisecondi.

04:38.470 --> 04:45.760
Così, nei miei esperimenti, ho potuto impostare il pin in alto e poi ritardarlo da settecentosessanta a

04:45.760 --> 04:47.080
ventuno microsecondi.

04:47.080 --> 04:49.250
Quindi avrei impostato l'uscita bassa.

04:49.570 --> 04:58.240
Questo mi ha dato il massimo del servo, ma fai attenzione perché il servo ha fermato una luce di stop che può bloccare

04:58.900 --> 05:01.220
o danneggiare il tuo servo.

05:01.330 --> 05:08.740
Quindi, se miri a ritardi compresi tra 1000 e 2000 microsecondi, sei nei parametri

05:08.920 --> 05:18.610
di progettazione del servo un'ulteriore avvertenza prima di impostare il tuo programma o schizzo. Arduino funziona a 16 megahertz

05:18.610 --> 05:27.070
e se ricordi che i microprocessori tipicamente prendono quattro clock cicli o più per diritto di

05:27.080 --> 05:28.090
istruzioni.

05:28.420 --> 05:34.330
E poi per impostare il ritardo nel codice macchina stai osservando più istruzioni ogni volta che va

05:34.330 --> 05:36.120
a contare un microsecondo.

05:36.400 --> 05:45.160
Quindi, in pratica, si evince che non è possibile ottenere ritardi accurati per un valore inferiore a circa 60 microsecondi.

05:45.250 --> 05:50.530
Le istruzioni impiegano più di 60 microsecondi per eseguire.

05:50.530 --> 05:56.920
Ora nel nostro caso abbiamo ancora la possibilità di suddividere il nostro tempo in 180 gradini o più.

05:56.920 --> 06:00.450
Questo è un sacco di accuratezza per i nostri scopi.

06:00.790 --> 06:03.560
Ma questa è una limitazione importante da sapere.

06:03.700 --> 06:13.030
Quando si desidera utilizzare un ritardo micro-secondi l'istruzione di ritardo micro-secondi, quindi scrivere un semplice

06:13.030 --> 06:15.270
programma di prova.

06:15.270 --> 06:21.790
Fornirò il mio codice di esempio nella sezione download ma cercherò di scrivere il tuo codice il più

06:21.910 --> 06:23.390
possibile il più possibile.

06:23.440 --> 06:29.980
Farai tanti piccoli errori ma quelli ti aiuteranno a imparare e ricordare come codificare e formattare il

06:29.980 --> 06:31.190
tuo schizzo.

06:31.210 --> 06:40.990
Ora quello che ho fatto è che ho impostato i pulsanti con resistori pulldown e questi sono sui pin 9 e

06:40.990 --> 06:48.550
10 proprio qui e poi inviato il pin 11 alla linea di controllo sul servo.

06:48.610 --> 06:52.590
Notare anche fornire alimentazione a batteria per il servo.

06:52.780 --> 06:56.050
Puoi alimentarlo dai cinque di wino.

06:56.170 --> 07:00.680
Ma in effetti ho cucinato la scheda Arduino facendo proprio questo.

07:00.700 --> 07:03.440
Ha funzionato per un po '.

07:03.970 --> 07:08.300
Quindi consiglio vivamente di alimentare il tuo servo da una batteria.

07:08.350 --> 07:16.120
Ricordati di mettere a terra la connessione dalla batteria a terra sull'Arduino, proprio come

07:16.120 --> 07:18.960
abbiamo fatto nelle ultime lezioni.

07:19.020 --> 07:24.290
Ho quindi scritto il mio schizzo impostando alcune variabili.

07:25.390 --> 07:35.390
Con la posizione del servo in cui la pompa è l'ampiezza dell'impulso in microsecondi

07:36.420 --> 07:52.400
e partendo da cento, il mio pulsante 10 ne somma cinque al ritardo mentre il pulsante sul pin 9 sottrae 5 dal ritardo,

07:52.400 --> 08:03.090
quindi controllo per assicurarsi che la cifra non supera il massimo di duemila microsecondi prima

08:03.360 --> 08:07.290
di aggiungere altri cinque microsecondi.

08:07.290 --> 08:16.460
Voglio anche assicurarmi che non scenda sotto i 1000 microsecondi prima di sottrarre altri cinque microsecondi.

08:16.920 --> 08:26.440
Così ora, una volta che ho tutti i miei numeri che ho inviato, manderò un alto Ongpin 11

08:26.440 --> 08:37.330
e lo metto nel ritardo appropriato in microsecondi, impostando il pin 11 su un valore basso e poi tardo 18 millisecondi.

08:37.490 --> 08:45.370
E questo per avvicinarsi al tasso di segnale PWI atteso che il server stava cercando.

08:46.470 --> 08:57.190
Ora interessante perché leggo solo i pulsanti una volta per ciclo e tutti questi ritardi avvengono una volta

08:57.250 --> 08:58.580
per ciclo.

08:58.600 --> 09:03.810
Questo schizzo è salito automaticamente DB rimbalzando i miei switch per me.

09:04.060 --> 09:09.910
Qualsiasi rimbalzo che accadrà sarà più veloce di 18 millisecondi, quindi eventuali rimbalzi

09:09.910 --> 09:10.870
verranno ignorati.

09:11.110 --> 09:20.980
Ora posso cambiare la posizione del servo in digitale premendo un pulsante per andare in senso orario e un pulsante per andare in

09:21.160 --> 09:22.870
senso antiorario, quindi costruisci

09:29.230 --> 09:30.430
il circuito.

09:30.430 --> 09:33.970
Né scrivere uno schizzo o semplicemente copiare e incollare questo.

09:33.970 --> 09:37.430
Fare attenzione con i doppi alimentatori.

09:37.450 --> 09:43.680
Assicurati che i tuoi 6 volt non vengano applicati in alcun modo all'Arduino.

09:43.720 --> 09:49.510
Dovrebbe essere solo così dovrebbe fornire solo la potenza del servomotore.
