1
00:00:28,050 --> 00:00:35,280
Hola bienvenidos a un nuevo capítulo y en esta ocasión llegó el momento de Doble M o modulación por

2
00:00:35,280 --> 00:00:36,380
ancho de pulsos.

3
00:00:36,720 --> 00:00:41,110
La verdad que para mí era un capítulo muy muy esperado.

4
00:00:41,370 --> 00:00:48,870
Yo había preparado para esto mi osciloscopio que uso normalmente pero luego cambié de opinión ya que

5
00:00:48,870 --> 00:00:56,850
creo que en esta ocasión tan especial vale la pena y por eso saqué del armario y desempolve mi primera

6
00:00:56,850 --> 00:01:02,910
si los copio osciloscopio que me ha acompañado durante toda la vida me ha dado grandes satisfacciones

7
00:01:03,000 --> 00:01:07,880
y la verdad es que como en la época donde más lo usé era donde estaba aprendiendo.

8
00:01:08,100 --> 00:01:15,550
Creo que la ocasión lo amerita y sigue funcionando como el primer día e incluso para algunas cosas.

9
00:01:15,720 --> 00:01:23,280
Lo encuentro más práctico que los modernos osciloscopio LCD lo que he hecho acá es mantener el ejemplo

10
00:01:23,280 --> 00:01:29,810
de la clase anterior en el motor ahora les voy a mostrar para que vean lo único que he hecho es conectar

11
00:01:30,230 --> 00:01:35,690
la punta de prueba de los hilos copio en el pin positivo del LED y la masa de los hilos copio en la

12
00:01:35,690 --> 00:01:38,320
masa o en el negativo de la Fuente.

13
00:01:38,320 --> 00:01:45,940
Bueno no hay mayor secreto ahora Acompáñame al código que les quiero mostrar al esta parte es lo mismo

14
00:01:45,940 --> 00:01:53,590
que teníamos anteriormente simplemente declaró con un nombre cada uno de los pines que voy a usar.

15
00:01:53,590 --> 00:02:01,530
Luego declaró una constante a dónde voy a poner una pausa ya que aparece lo nuevo he declarado brillo

16
00:02:01,800 --> 00:02:03,000
igual a cero.

17
00:02:03,000 --> 00:02:07,480
Es un entero pero por ahora esto lo dejamos de lado.

18
00:02:07,620 --> 00:02:19,190
Vean lo que hago agarro y declaró el pin de led rojo o sea el 5 como salida y esto es algo que nos remonta

19
00:02:19,190 --> 00:02:26,390
a uno de nuestros primeros capítulos en cuanto a manejo de Arduino a donde hacíamos simplemente parpadear

20
00:02:26,390 --> 00:02:35,390
un LED enciende esperó medio segundo encendido apago esperó medio segundo apagado.

21
00:02:35,510 --> 00:02:39,740
Hasta ahí nada de dificultad y fácil vamos a probarlo.

22
00:02:39,750 --> 00:02:41,120
Bravo.

23
00:02:41,560 --> 00:02:47,570
Bueno la idea que tengo es de poder mostrarles al mismo tiempo en los giroscopio que no es más que un

24
00:02:47,570 --> 00:02:53,330
aparato que nos muestra de manera gráfica las señales que llegan al LED.

25
00:02:53,510 --> 00:02:59,570
En este caso es bastante simple ven cada vez que se enciende el LED en los silos copio muestra una señal

26
00:02:59,570 --> 00:03:02,540
en alto sube baja sube baja.

27
00:03:02,840 --> 00:03:08,620
Coincidentemente estamos en una escala de un voltio por cuadrito.

28
00:03:08,620 --> 00:03:16,700
O sea que en el eje Y Griega vamos a tener voltios por no mide 2 voltios y porque el LED luego de la

29
00:03:16,700 --> 00:03:24,710
resistencia tiene una señal o una tensión de 2 voltios en el eje X voy a tener el tiempo bueno yo acá

30
00:03:24,740 --> 00:03:32,100
estoy haciendo que si los copio barra muy lentamente porque la frecuencia que tengo es muy lenta.

31
00:03:32,210 --> 00:03:41,500
Si se fijan la frecuencia es de un Gertz ya que completa un ciclo en un segundo bueno hasta acá nada

32
00:03:41,500 --> 00:03:43,180
revolucionario nada nuevo.

33
00:03:43,450 --> 00:03:53,470
Pero vean algo yo lo que voy a hacer es reducir la espera o el delay que tengo acá en vez de poner 500

34
00:03:53,470 --> 00:03:57,120
milisegundos o poner un milisegundo.

35
00:03:57,550 --> 00:03:59,110
Entonces qué va a suceder.

36
00:03:59,110 --> 00:04:04,660
El LED se va a pagar y aprender mucho más rápido y por ende la señal que va a haber si los copio va

37
00:04:04,660 --> 00:04:06,400
a estar bastante más agitada.

38
00:04:06,400 --> 00:04:07,460
Veamos qué pasa.

39
00:04:07,650 --> 00:04:08,170
Gravó

40
00:04:10,840 --> 00:04:14,320
bueno se ven como dos puntos pero en realidad es porque estaba corriendo lento.

41
00:04:14,320 --> 00:04:16,010
Miren lo voy a celebrar un poco el barrido

42
00:04:20,060 --> 00:04:23,210
y que apareció una señal cuadrada.

43
00:04:23,210 --> 00:04:30,560
Como ven esta es la porción que permanece encendido el LED y este de acá abajo es la porción que permanece

44
00:04:30,560 --> 00:04:33,790
apagado el LED se entiende bien.

45
00:04:33,990 --> 00:04:36,580
Yo voy a tratar de hacer coincidir esto en la cuadrícula.

46
00:04:36,620 --> 00:04:37,130
Un momento

47
00:04:43,160 --> 00:04:51,280
bueno hay también modifiqué un poco la escala del eje X y como ven tenemos un cuadrito o sea un milisegundo

48
00:04:51,640 --> 00:04:58,840
encendido un milisegundo apagado 1 y 1 1 y 1 y el LED cómo se comporta.

49
00:04:58,900 --> 00:05:00,520
A ver si lo puedo enfocar mejor.

50
00:05:02,640 --> 00:05:09,540
Como ven el leve aparentemente está encendido lo que sucede es que se enciende y se apaga tan rápido

51
00:05:09,930 --> 00:05:12,240
que prácticamente no puedo notarlo.

52
00:05:15,280 --> 00:05:22,740
Bueno acá se me presenta un problema y es que yo quiero empezar a trabajar con esperas más pequeñas

53
00:05:22,800 --> 00:05:29,900
con Pilay mas chicos de un milisegundo y lo que sucede es que no puedo usar valores menores a 1.

54
00:05:30,150 --> 00:05:40,680
Entonces aparece una nueva función de Arduino que se llama Dilthey mini micro seconds o esperar microsegundos

55
00:05:41,460 --> 00:05:50,090
y para que se den una idea mil microsegundos equivalen a lo que teníamos antes como un milisegundo.

56
00:05:50,580 --> 00:06:01,830
Entonces ahora bien podría ser lo siguiente si utilizo Dilemma micro seconds mil es lo mismo que poner

57
00:06:01,830 --> 00:06:04,290
de ley 1 un milisegundo.

58
00:06:04,650 --> 00:06:06,950
Así que esto sería equivalente a lo que teníamos recién.

59
00:06:07,380 --> 00:06:16,440
Pero miren lo que voy a hacer yo quiero ahora que el LED permanezca encendido la mitad del tiempo de

60
00:06:16,440 --> 00:06:17,720
lo que permanece apagado.

61
00:06:18,430 --> 00:06:19,150
Miren lo que sucede

62
00:06:25,110 --> 00:06:28,610
tengo un error pero me faltó una s gravó

63
00:06:32,630 --> 00:06:33,940
puede notarse ahora.

64
00:06:34,470 --> 00:06:40,830
Miren cómo la parte positiva de la parte que permanece encendida del LED sólo ocupa la mitad de lo que

65
00:06:40,830 --> 00:06:42,410
permanece apagado.

66
00:06:42,420 --> 00:06:49,110
Quiero achicar aún más quiero achicar aún más la parte que permanece encendido el LED

67
00:06:53,830 --> 00:06:58,950
entonces vamos a poner 100 10 a 1.

68
00:06:59,300 --> 00:07:01,110
Vamos gravó

69
00:07:04,010 --> 00:07:10,500
Hey miren qué pequeñita es la parte que aparece el led encendido.

70
00:07:10,500 --> 00:07:14,280
Voy a tener que agrandar esto o sea hacerle un zoom para ver mejor

71
00:07:18,060 --> 00:07:19,380
bueno hoy pueden ver.

72
00:07:19,390 --> 00:07:24,360
Miren qué pequeña es la porción encendida con respecto a la que está apagada.

73
00:07:25,140 --> 00:07:26,540
Veamos qué hace el LED.

74
00:07:26,580 --> 00:07:33,120
Cómo se está comportando.

75
00:07:33,190 --> 00:07:40,540
Si bien la cámara es bastante difícil de notarlo el LED a simple vista brilla bastante menos.

76
00:07:40,540 --> 00:07:48,460
Pero si todo esto es una particularidad de los leds y es bastante a veces difícil tratarlo ya se van

77
00:07:48,460 --> 00:07:55,060
dando idea de que lo que quiero hacer yo es obtener grados de iluminación porque hasta recién con una

78
00:07:55,060 --> 00:08:01,000
salida digital sólo podíamos hacer que o tenerlo siempre encendido o totalmente encendido o totalmente

79
00:08:01,000 --> 00:08:08,350
apagado y las posiciones intermedias medio encendido un cuarto encendido como hacemos no podemos.

80
00:08:08,340 --> 00:08:16,490
Arduino no posee ninguna salida analógica real que sea capaz de emitir por ejemplo 1,1 voltios no o

81
00:08:16,510 --> 00:08:24,310
emite cinco o emite cero entonces un truquito que tenemos por así decirlo es a través de la modulación

82
00:08:24,490 --> 00:08:26,590
del ancho del pulso.

83
00:08:26,590 --> 00:08:33,150
Eso es lo que estoy haciendo acá estoy modificando el ancho del pulso de la parte positiva.

84
00:08:33,280 --> 00:08:42,550
Entonces mientras más tiempo pasa encendido el LED más brillantes se pone o en realidad más brillante

85
00:08:42,640 --> 00:08:48,770
aparenta estar porque en realidad el LED aunque yo no pueda verlo está parpadeando rapidísimo.

86
00:08:49,060 --> 00:08:55,550
Vamos a tener en cuenta que en este momento está parpadeando alrededor de 1000 ciclos por segundo.

87
00:08:55,570 --> 00:09:01,780
O sea se enciende y se apaga mil veces en un segundo.

88
00:09:01,890 --> 00:09:08,280
Por eso no puedo notarlo pero me aprovecho de ese efecto para simular que controlo el brillo más brillo

89
00:09:08,310 --> 00:09:09,780
menos brillo.

90
00:09:09,870 --> 00:09:17,100
Bueno qué es lo difícil que es que les contaba recién lo que pasa es que un LED con que apenitas se

91
00:09:17,100 --> 00:09:21,900
empieza a parecer una parte positiva el LED ya brilla mucho.

92
00:09:21,900 --> 00:09:28,740
O sea la respuesta lumínica con respecto a la señal que yo voy inyectando a la atención no es lineal

93
00:09:29,130 --> 00:09:35,280
con que aparezca un poquito de atención LED ya brilla mucho y después todo el resto de su vida detencion

94
00:09:35,340 --> 00:09:42,120
que yo le puedo aplicar no marca gran diferencia entonces digamos que la diferencia de apagado total

95
00:09:42,120 --> 00:09:51,570
encendido ya lo logro teniendo la mitad de la señal encendida y la mitad de la señal apagada.

96
00:09:51,630 --> 00:09:55,320
Si yo sigo aumentando la parte encendida ya no voy a notar tanta diferencia.

97
00:09:55,320 --> 00:10:02,540
Eso hay que tenerlo en cuenta y se aprende y se entiende mejor usándolo poniéndolo en práctica que desde

98
00:10:02,550 --> 00:10:03,350
sólo la teoría.

99
00:10:03,990 --> 00:10:07,100
Entonces repasemos qué estamos haciendo acá.

100
00:10:07,320 --> 00:10:15,480
Lo que estamos haciendo es mediante un encendido una espera un apagado y una espera generar una frecuencia

101
00:10:15,510 --> 00:10:21,750
una señal que oscila X cantidades de veces por segundo lo suficientemente rápido como para que el LED

102
00:10:21,960 --> 00:10:28,710
no se note que está parpadeando y yo jugando con la parte que parece con la parte que está encendida

103
00:10:29,370 --> 00:10:31,530
y jugando con el tamaño de la parte que está apagado.

104
00:10:31,530 --> 00:10:38,480
Puedo simular que el LED está más o menos encendido en realidad lo que cambia es la percepción en mis

105
00:10:38,480 --> 00:10:44,450
ojos de cuánta luz está emitiendo en realidad cada vez que parpadea y se encienden leds está brillando

106
00:10:44,450 --> 00:10:51,050
a fondo pero como lo hace por lapsos muy breves y cada vez más breves mientras más angosto hago el pulso

107
00:10:51,320 --> 00:10:53,710
parece que brilla menos.

108
00:10:53,990 --> 00:10:59,420
Bueno hasta acá ya estamos entendiendo más o menos de qué se trata de esto de modulación por ancho de

109
00:10:59,420 --> 00:11:00,170
pulsos.

110
00:11:00,170 --> 00:11:06,950
Lo que pasa es que yo lo estoy probando con un LED bueno con un LED no hay mucho más que mostrar pero

111
00:11:07,040 --> 00:11:14,810
imagínense cuando hagamos un robot si si tuviéramos un robot que solo anda o a máxima velocidad o parado

112
00:11:14,900 --> 00:11:19,670
o máxima de velocidad o parado lo más probable es que nuestro robot termine estrellado.

113
00:11:19,730 --> 00:11:25,190
Imagínense si tuvieran que manejar un auto que sólo puede ir a fondo o frenar a fondo o frenar.

114
00:11:25,190 --> 00:11:25,820
No nos sirve.

115
00:11:25,970 --> 00:11:32,570
Necesitamos controlar de una manera analógica o gradual las distintas potencias que puede tener por

116
00:11:32,570 --> 00:11:37,920
ejemplo un motor la modulación por ancho de pulso es muy muy utilizada.

117
00:11:38,000 --> 00:11:45,090
Vamos a seguir con algunos detalles les pregunto a ustedes por qué se genera esta frecuencia.

118
00:11:45,180 --> 00:11:52,470
Porque yo tengo un semi ciclo positivo y ahí aparece una palabra técnica semi ciclo positivo les llamamos

119
00:11:52,700 --> 00:12:00,090
a la parte de la onda que está en alto o contencion y mi ciclo negativo le llamamos a la parte de la

120
00:12:00,090 --> 00:12:03,450
onda que está abajo apagada o con cero voltios.

121
00:12:03,600 --> 00:12:10,500
Entonces por qué este hemiciclo tenemos uno positivo uno negativo uno positivo y uno negativo y nunca

122
00:12:10,500 --> 00:12:18,750
cesa porque porque estamos trabajando con un loop le decimos que se vaya arriba abajo arriba abajo y

123
00:12:18,750 --> 00:12:21,820
se va repitiendo porque lo tengo adentro del loop.

124
00:12:21,840 --> 00:12:29,610
Ahora supongamos que esto que tengo acá que en teoría es al 10 por ciento.

125
00:12:29,970 --> 00:12:30,910
Qué quiere decir esto.

126
00:12:30,930 --> 00:12:39,930
Que tenemos un Dutys cicle o Dati sigla en inglés que quiere decir en realidad ciclo de trabajo ciclo

127
00:12:39,930 --> 00:12:41,070
útil.

128
00:12:41,070 --> 00:12:45,850
En definitiva es el porcentaje de parte positiva que tengo.

129
00:12:45,960 --> 00:12:52,740
Si pudiéramos traducir de alguna manera en potencia cuando tengo un ciclo de trabajo del 10 por ciento

130
00:12:53,640 --> 00:13:01,230
que es este caso el 10 por ciento del tiempo permanece encendido y un 90 por ciento del tiempo permanece

131
00:13:01,230 --> 00:13:02,100
apagado.

132
00:13:02,100 --> 00:13:06,920
En realidad tendremos que corregir para que esté correcta la fórmula tendría que ser ahí entre los dos.

133
00:13:07,080 --> 00:13:11,250
Si suma 1000 podemos decir que este es el 10 por ciento y acá tenemos un 90 por ciento.

134
00:13:11,730 --> 00:13:21,270
Entonces como acá tenemos un ciclo de trabajo del 10 por ciento podríamos decir que lo vamos a usar

135
00:13:21,540 --> 00:13:28,470
para acelerar el motor de un robot al 10 por ciento para que vaya al 10 por ciento de su velocidad máxima

136
00:13:28,800 --> 00:13:31,600
se entiende pero esto me genera un problema.

137
00:13:31,830 --> 00:13:42,440
El problema es el siguiente y es que un robot lo único que hace no es andar para adelante un robot mientras

138
00:13:42,890 --> 00:13:48,770
avanza también por ejemplo puede estar midiendo a distancia puede estar recibiendo señales de GPS y

139
00:13:48,770 --> 00:13:52,600
por lo tanto el Arduino dentro del club va a tener que hacer muchas cosas.

140
00:13:52,610 --> 00:13:57,080
Por ejemplo acá va a tener que atender señal GPS.

141
00:13:57,320 --> 00:14:01,550
Supongamos que esos son no sé 40 líneas de código que tenemos que hacer.

142
00:14:01,670 --> 00:14:06,260
Luego tienen que calcular distancia a obstáculo.

143
00:14:06,290 --> 00:14:11,450
Acá tenemos otras 20 líneas de código para desarrollar esa tarea.

144
00:14:11,690 --> 00:14:18,340
Entonces un momento o hace esto o hace esto qué quiere decir con esto.

145
00:14:18,470 --> 00:14:26,000
Imaginen que con estas dos líneas lo único que estamos haciendo es un semi ciclo apagado y un semicírculo

146
00:14:26,000 --> 00:14:27,410
encendido.

147
00:14:27,410 --> 00:14:28,580
Nada más.

148
00:14:28,580 --> 00:14:33,300
Yo necesito que de manera constante exista para que el robot siga avanzando.

149
00:14:33,300 --> 00:14:38,530
1 Un hemiciclo apagado un encendido apagado encendido de manera permanente.

150
00:14:38,900 --> 00:14:43,320
Así que hacerlo de esta manera no va a ser lo más óptimo.

151
00:14:43,330 --> 00:14:51,680
Si no vean hagamos una simulación cómo podemos simular que luego de generar un hemiciclo positivo y

152
00:14:51,680 --> 00:14:57,580
un hemiciclo negativo cómo puedo simular todas las otras tareas que hago en el medio.

153
00:14:57,580 --> 00:15:03,940
Simple con un delay bueno voy a generar un Dilla y de un segundo que supuestamente vamos a decir eso

154
00:15:03,940 --> 00:15:08,260
es el tiempo que le va a tomar a nuestro microcontrolador hacer otras tareas.

155
00:15:08,260 --> 00:15:15,040
Después de que termina de hacer esto nuevamente genera mi hemiciclo positivo y un ser mi ciclo negativo.

156
00:15:15,040 --> 00:15:17,740
Entonces yo les quiero mostrar

157
00:15:23,350 --> 00:15:31,440
en el osciloscopio todavía vemos el programa anterior todavía no lo grabé estamos viendo sin este display

158
00:15:31,440 --> 00:15:32,370
que acabo de agregar.

159
00:15:32,370 --> 00:15:36,130
Veo la señal pura repitiéndose una y otra vez.

160
00:15:36,150 --> 00:15:45,260
Ahora vamos a ver cómo se ve la señal con este delay que acabo de agregar grabo y aquí empieza bueno

161
00:15:45,290 --> 00:15:47,450
prácticamente voy a ver si en la cámara la toma

162
00:15:50,660 --> 00:15:53,170
se alcanza a ver como algunos destellos por aquí.

163
00:15:53,300 --> 00:15:58,460
Y eso qué quiere decir que cada segundo aparece escasamente un pulso positivo.

164
00:15:58,460 --> 00:16:03,610
Y recién después de otro segundo vuelve a aparecer otro puntito positivo.

165
00:16:03,620 --> 00:16:07,580
Es más en el LED se alcanza a ver no sé si desde la cámara voy a hacer el intento

166
00:16:21,160 --> 00:16:27,930
poniendo la mano se puede llegar a ver el destello rojo del LED que alcanza a parpadear una vez.

167
00:16:28,030 --> 00:16:30,980
Eso no es pedo pedo volvé.

168
00:16:31,010 --> 00:16:35,950
Pero eso no lo es porque es apenas un pulso que esporádicamente aparece cada tanto con eso nos vamos

169
00:16:35,950 --> 00:16:43,730
a hacer gira ninguna rueda ni como verán se perdió totalmente el efecto de hacer brillar un LED apenas

170
00:16:43,730 --> 00:16:44,600
al 10 por ciento.

171
00:16:44,610 --> 00:16:45,620
Bueno voy a borrar el Miley.

172
00:16:45,710 --> 00:16:52,370
Miren cuando Borrel Miley vuelve a aparecer nuestra señal ahí estamos otra vez.

173
00:16:53,770 --> 00:16:59,350
Entonces hemos aprendido que es pedo el BBM pero no hemos aprendido de una manera práctica de llevarlo

174
00:16:59,410 --> 00:17:08,890
adelante y esto es lo que voy a enfatizar porque cuando me tocó estudiar microcontroladores me acuerdo

175
00:17:08,890 --> 00:17:15,580
que esta parte de la contundente y muy clara la que lo destacó hoy en día es como que cuando hablamos

176
00:17:15,580 --> 00:17:20,650
de Arduino se la pasa por alto y es tan importante que se la quiero explicar de esta manera.

177
00:17:20,690 --> 00:17:30,860
Mirá lo primero que quiero contarles es que cuando vamos a usar la salida doble B.M. de Arduino no es

178
00:17:30,860 --> 00:17:33,780
necesario declararlas como salida.

179
00:17:33,800 --> 00:17:42,110
En segundo lugar quiero hablar de estas salidas que tienen esa rayita tipo ñ esas salidas son especialmente

180
00:17:42,110 --> 00:17:45,070
diseñadas para trabajar con doble B.M.

181
00:17:45,380 --> 00:17:47,660
Y dónde está lo especial.

182
00:17:47,660 --> 00:17:56,620
Lo especial está en que son capaces de mantener la generación de esta señal por tiempo indefinido en

183
00:17:56,630 --> 00:18:06,970
lo que se conoce como el backgrounds por detrás o sea funciona como una especie de servicio acompáñame

184
00:18:07,110 --> 00:18:14,640
a esto que les quiero mostrar yo acá preparé lo que sería un ciclo no más alto.

185
00:18:14,640 --> 00:18:22,400
Espero 100 milisegundos bajo espero 900 milisegundos o sea que acá tengo un segundo en total.

186
00:18:22,410 --> 00:18:29,740
Si yo esto lo tuviera en el Loop estaría generando una señal de un Gers sube baja sube baja pero miren

187
00:18:29,760 --> 00:18:39,300
la puse en el z o sea las mismas líneas que yo uso para generar una señal PD doble B.M. una señal con

188
00:18:39,300 --> 00:18:41,220
una frecuencia determinada.

189
00:18:41,220 --> 00:18:51,050
Esta vez la puse en el ZetaP se va a ejecutar una sola vez grabó su veãan lo que hace en cámara alcanzaron

190
00:18:51,050 --> 00:18:52,580
a ver se encendió y le dije no más se apagó.

191
00:18:54,130 --> 00:18:59,420
Yo exageré las pausas para que se alcance a ver si los copio si no ni se vería.

192
00:18:59,420 --> 00:19:02,820
Es solamente un pulso un chasquido y siguió funcionando.

193
00:19:04,590 --> 00:19:16,220
Entonces acá viene el secreto y la trampa y la utilidad de la modalidad que poseen estos pines marcados

194
00:19:16,280 --> 00:19:22,990
con esta rayita parecida a la de la letra ñ que son pines doble B.M. tienen una característica especial

195
00:19:23,240 --> 00:19:31,310
son capaces de mantener la señal en el background o sea como un servicio yo simplemente les digo necesito

196
00:19:31,310 --> 00:19:39,350
una señal de tal FEG de tal frecuencia con tal ancho de pulso y esa señal se va a mantener indefinidamente

197
00:19:39,620 --> 00:19:45,870
hasta que eso la detenga o le cambie el ancho de pulso o el ciclo de trabajo es buenísimo.

198
00:19:45,920 --> 00:19:52,220
No tener que estar todo el tiempo generando olas de alguna manera miren la primer ventaja es que cuando

199
00:19:52,220 --> 00:19:59,700
vamos a usar estas salidas en manera doble BGM no voy a tener que declararlas como salidas digitales.

200
00:19:59,690 --> 00:20:02,560
Simplemente las uso para usarlas.

201
00:20:02,580 --> 00:20:07,890
Hay una función que se llama análogo right.

202
00:20:08,030 --> 00:20:15,920
Así como tenemos Digital Right recordemos no nos confundamos esta función es media ambigua es como que

203
00:20:15,920 --> 00:20:22,910
nos está diciendo que podamos escribir un valor analógico en un pin digital no el análogo right lo que

204
00:20:22,910 --> 00:20:26,270
va a determinar el ancho de pulso de esta señal.

205
00:20:26,270 --> 00:20:34,430
Pedro le BGM lo que sucede por qué hablamos de Analog cómo las señales de BBM se pueden usar para simular

206
00:20:35,270 --> 00:20:40,260
tensiones analógicas valores graduales es que tiene ese nombre.

207
00:20:40,610 --> 00:20:46,310
Entonces qué le tenemos que pasar le tenemos que pasar en primer lugar el PIN por el que queremos que

208
00:20:46,310 --> 00:20:54,170
salga ese PIN si o si tiene que ser de estos que trae la rayita como la ñ porque por qué esto es un

209
00:20:54,170 --> 00:20:55,940
servicio que depende del hardware.

210
00:20:55,940 --> 00:21:02,860
Estamos habilitando una función súper especial súper importante que trae en su interior el microcontrolador

211
00:21:02,860 --> 00:21:12,980
del Arduino UNO entonces vamos le vamos a decir que era por LED rojo Koma y le tengo que pasar ahora

212
00:21:13,100 --> 00:21:20,590
el ciclo de trabajo la frecuencia ya está predefinida va a rondar los 500 Gertz 500 ciclos por segundo

213
00:21:22,400 --> 00:21:28,640
pero lo que yo le voy a pasar es el ciclo de trabajo o sea cuan ancho quiero que sea ese pulso y la

214
00:21:28,640 --> 00:21:38,520
resolución va de cero a 255 qué es esto de la resolución y que no puede no va tampoco en pasos muy muy

215
00:21:38,520 --> 00:21:46,290
finitos se va saltando de pasos que el valor mínimo va a ser el cero y el más grande va a ser el 255

216
00:21:46,680 --> 00:21:52,990
entonces un 127 va a ser aproximadamente a la mitad.

217
00:21:52,990 --> 00:21:58,330
Ese es un ciclo del un ciclo de trabajo del 50 por ciento.

218
00:21:58,330 --> 00:22:06,880
Entonces miren que como lo puse en el ZetaP esta función se va a ejecutar una sola vez y nunca más veamos

219
00:22:06,880 --> 00:22:16,440
qué pasa en el osciloscopio cuando corremos este programa Reuven vía aumentar la velocidad de los hilos.

220
00:22:18,040 --> 00:22:25,170
Miren en el club no tengo absolutamente nada corriendo ya no hay ninguna línea ejecutándose sin embargo

221
00:22:25,470 --> 00:22:33,180
nuestro microcontrolador obediente mantiene una señal de 500 ciclos por segundo de 500 Hertz con un

222
00:22:33,180 --> 00:22:35,520
ciclo de trabajo del 50 por ciento.

223
00:22:35,520 --> 00:22:39,450
Este LED está brillando a la mitad gracias a esta señal.

224
00:22:39,450 --> 00:22:42,130
Sin embargo funciona sola.

225
00:22:42,210 --> 00:22:49,880
Lo bueno es que en el Loop pudo ir modificando Augusto el valor de la señal pero antes de irnos al club

226
00:22:50,010 --> 00:22:51,580
por qué no lo probamos acá.

227
00:22:51,640 --> 00:22:55,820
Miren lo voy a hacer directamente en el ZetaP.

228
00:22:55,980 --> 00:22:59,730
Le voy a decir Bueno mantenerme por X cantidad de tiempo.

229
00:22:59,730 --> 00:23:02,750
El ciclo de trabajo el 50 por ciento.

230
00:23:02,760 --> 00:23:09,080
Mejor empecemos con un ciclo del cero por ciento o sea nada todo apagado.

231
00:23:09,130 --> 00:23:12,810
Te voy a decir espera un segundo

232
00:23:15,730 --> 00:23:17,200
y esto lo vamos a aprovechar.

233
00:23:17,220 --> 00:23:28,990
Copio vamos a hacerlo en cinco pasos dos tres cuatro cinco y lo que voy a querer acá 20 por ciento.

234
00:23:30,360 --> 00:23:37,840
40 acá le pongo un 60 y acá un 90 grabo.

235
00:23:37,980 --> 00:23:46,750
Entonces lo que va a suceder es que cada un segundo va a ir ensanchándose el pulso correspondiente al

236
00:23:46,750 --> 00:23:50,680
semi ciclo positivo será que va a ser así lo probemos

237
00:24:01,430 --> 00:24:01,850
vieron

238
00:24:05,060 --> 00:24:05,680
qué pasó.

239
00:24:07,720 --> 00:24:09,110
Qué piensan que pasó.

240
00:24:09,130 --> 00:24:11,680
Parece que anduvo pero no se nos quedó la mitad.

241
00:24:11,680 --> 00:24:24,320
Vamos de nuevo reseteo empieza el pequeño se ensancha más ancho más ancho y ojos recuérdense.

242
00:24:24,650 --> 00:24:32,240
Qué el mínimo valor es cero pero el que corresponde al 100 por ciento es 2:55 así que a la mitad o bien

243
00:24:32,250 --> 00:24:38,140
tener el 127 si quiero esto sería un 50 por ciento.

244
00:24:39,310 --> 00:24:45,370
Así que acá tendríamos 65 más o menos ya que tendríamos

245
00:24:48,830 --> 00:24:52,630
un ciento ochenta y nueve pongámosle.

246
00:24:53,960 --> 00:25:02,120
Y acá recién llega el 255 que sería totalmente positivo así que para que no pierda la gracia lo vamos

247
00:25:02,120 --> 00:25:06,470
a poner en 2:50 para que tenga algo de semi ciclo negativo.

248
00:25:06,470 --> 00:25:10,040
Ahora si lo grabo y vamos a ver en pantalla qué sucede.

249
00:25:16,480 --> 00:25:20,470
Bueno esa fue la última orden que le di entonces obediente.

250
00:25:20,470 --> 00:25:25,270
Quedó el microcontrolador manteniendo la última señal que yo le di.

251
00:25:25,660 --> 00:25:31,950
La última orden que fue Mantené un hemiciclo positivo casi del 100 por ciento y apenitas.

252
00:25:32,040 --> 00:25:35,490
No sé si se nota abajo apenitas hay un pulso muy pequeño

253
00:25:42,240 --> 00:25:47,650
muy débilmente se nota bajo ese pulso correspondiente al hemiciclo negativa.

254
00:25:47,790 --> 00:25:54,560
Bueno entonces vean que está brillando casi el 100 por ciento en esta posición.

255
00:25:54,870 --> 00:26:02,670
Pero lo que quiero dejar en claro es esto el doble BBM funciona por detrás es un servicio independiente

256
00:26:02,670 --> 00:26:07,120
que tiene nuestro microcontrolador y no lo tengo que estar atendiendo de manera constante.

257
00:26:07,260 --> 00:26:12,390
Una vez que yo les digo necesito un ciclo de trabajo de tanto por ciento él se va a encargar de mantenerlo

258
00:26:12,450 --> 00:26:15,660
hasta que yo lo detenga o lo modifique.

259
00:26:15,660 --> 00:26:22,620
Esto me va a dar unas ventajas increíbles que ahora probablemente no las noten pero muy pronto las van

260
00:26:22,620 --> 00:26:25,630
a conocer para cerrar esto.

261
00:26:25,640 --> 00:26:35,700
Vamos con un lindo experimento y va a ser el siguiente vamos a crear un foro se acuerdan que yo creé

262
00:26:35,700 --> 00:26:38,080
acá la variable brillo.

263
00:26:38,100 --> 00:26:45,210
Bueno se acuerdan también que en alguna parte cuando veíamos programación les dije que de manera convencional

264
00:26:45,240 --> 00:26:51,110
todos los programadores usábamos como variable en los foros el y o la variable.

265
00:26:51,130 --> 00:26:59,010
Y bueno este es el típico caso a donde vale la pena romper las reglas y que en vez de usar y usemos

266
00:26:59,190 --> 00:27:02,810
brillo y para qué servía.

267
00:27:02,840 --> 00:27:08,840
En este caso Beriso era la variable que le asignaba al foro para que internamente le vaya llevando la

268
00:27:08,840 --> 00:27:16,760
cuenta de lo que le pido que cuente entonces agarraba y le voy a decir que arrancando con un brillo

269
00:27:16,880 --> 00:27:23,980
igual a cero mientras brillo sea menor que el valor máximo que yo sé que puedo adquirir brillo que es

270
00:27:23,990 --> 00:27:34,130
255 el ancho más más amplio que le puedo dar al pedo BBM a sabiendas de que vamos a ir aumentando ese

271
00:27:34,130 --> 00:27:39,200
valor de uno en uno podría ser acá de dos en dos acá qué voy a hacer.

272
00:27:39,230 --> 00:27:49,940
Acaba de decir Analco Right y voy a escribir ahí sobre el led rojo.

273
00:27:50,060 --> 00:27:54,260
Qué valor de ancho de pulso le vamos a pasar al led rojo.

274
00:27:54,260 --> 00:27:54,890
Brillo.

275
00:27:54,890 --> 00:27:59,720
El que tenga brillo en ese momento en esa vuelta del foro brillo va a ir aumentando en cada vuelta de

276
00:27:59,720 --> 00:28:02,690
este foro desde el 0 hasta el 255.

277
00:28:03,050 --> 00:28:09,290
Entonces lo que le voy a ir diciendo al ancho de pulso que me genera este servicio por detrás es en

278
00:28:09,290 --> 00:28:16,400
cada vuelta le voy diciendo un poquito más ancho un poquito más ancho desde el cero hasta el 255 si

279
00:28:16,400 --> 00:28:23,330
acá adentro yo no pongo un Dili si acá adentro yo no pongo un play no voy a notar se va a ensanchar

280
00:28:23,330 --> 00:28:30,030
tan rápido que ni siquiera lo voy a ver ensancharse probablemente esto sea demasiado lento así que voy

281
00:28:30,030 --> 00:28:33,630
a apelar a Dilthey.

282
00:28:34,380 --> 00:28:40,800
Vamos a probar pero primero a ver si esto es muy lento porque como son 255 imagínense qué va a demorar

283
00:28:40,890 --> 00:28:44,670
un cuarto de segundo en completar esto de cero hasta el ancho total.

284
00:28:45,660 --> 00:28:54,160
Bueno entonces lo que va a hacer este foro es poco a poco ir aumentando el ancho del pulso por ende

285
00:28:54,160 --> 00:28:59,790
va a ir brillando cada vez más hasta llegar al brillo máximo entonces después lo que puedo hacer es

286
00:29:00,150 --> 00:29:03,950
copio una vez que se termine de hacer este bucle que va a suceder.

287
00:29:03,950 --> 00:29:09,740
Bueno va a seguir con las líneas que tengamos acá voy a volver a repetir otro bucle pero este es Aliments

288
00:29:10,370 --> 00:29:19,740
este arranca valiendo 255 y le voy a decir que se ejecute mientras brillo sea mayor que cero entonces

289
00:29:19,740 --> 00:29:22,540
este ir de 255 a cero.

290
00:29:22,680 --> 00:29:30,840
Pero para que esto funcione en vez de aumentar brillo uno en cada vuelta con menos menos es la manera

291
00:29:30,840 --> 00:29:38,310
corta de decirle que vaya restando uno en uno cada vez que se cumpla un ciclo del foro.

292
00:29:39,150 --> 00:29:48,460
Bueno ahí estamos entonces lo que va a hacer esto es aumenta el brillo baja el brillo cero de cero a

293
00:29:48,460 --> 00:29:51,220
todo de todo a cero.

294
00:29:51,220 --> 00:29:53,560
Veamos qué pinta tiene esto y cómo luce

295
00:29:59,210 --> 00:30:03,200
espectacular no vamos a achicar un poco la escala.

296
00:30:03,210 --> 00:30:17,340
Bueno Eusebia miren qué interesante vean que el LED ahora es como si la tierra de hecho que este ejemplo

297
00:30:17,340 --> 00:30:19,600
se lo suele llamar el latido de corazón.

298
00:30:19,670 --> 00:30:21,030
Voy a tratar de enfocar mejor el LED

299
00:30:29,430 --> 00:30:35,290
bueno y miren qué notable cómo se va modificando el ancho de pulso y ahora es mucho más entendible.

300
00:30:35,330 --> 00:30:36,260
Ahora cierra todo.

301
00:30:37,040 --> 00:30:40,920
Entonces si esto hubiera aplicado un robot bastaría aplicar un robot que acelera y desacelera SLG y

302
00:30:41,000 --> 00:30:47,510
desacelera no tendría mucho sentido pero por ejemplo para no crear aceleraciones bruscas esto es muy

303
00:30:47,510 --> 00:30:47,980
usado.

304
00:30:48,270 --> 00:30:52,430
Imagínense un robot grande que tienen motores muy potentes.

305
00:30:52,540 --> 00:30:57,850
Si esos motores los acelerara de golpe lo más probable es que al cabo de unas cuantas aceleradas termine

306
00:30:57,850 --> 00:31:00,860
rompiendo los ejes o los engranajes de esos pobres motores.

307
00:31:01,240 --> 00:31:04,850
Porque de hecho cuando se maneja un auto no se acelera a fondo de golpe.

308
00:31:04,910 --> 00:31:14,170
Si lo hace progresivamente suavemente entonces vi aumentar el lineup para que sea algo más más grave

309
00:31:14,200 --> 00:31:19,710
que sea más apreciable esa subida más lenta y lo vamos a probar.

310
00:31:19,780 --> 00:31:26,230
Vean cómo se va ensanchando el pull del pulso mucho más lento y cómo se va cerrando otra vez hasta el

311
00:31:26,230 --> 00:31:35,430
cero bueno de esto se trata el doble B.M. Lo vamos a usar en tantas en tantas cosas pero algo que quería

312
00:31:35,430 --> 00:31:42,840
dejarles más que claro era el hecho de que el doble B.M. En estos microcontroladores cuando usamos los

313
00:31:42,840 --> 00:31:51,680
puertos dedicados para tal fin son un servicio funcionan por detrás quedan funcionando hasta que eso

314
00:31:51,950 --> 00:31:54,910
los detenga o modifique su valor.

315
00:31:55,710 --> 00:31:59,000
Bueno qué capítulo qué clase tuvimos hoy.

316
00:31:59,030 --> 00:32:05,660
Espero que puedan aprovechar lo que les interese y cualquier duda porque sé que este capítulo ha sido

317
00:32:05,660 --> 00:32:06,250
largo.

318
00:32:06,350 --> 00:32:11,300
Sé que puede ser más complicado el salto ha sido importante.

319
00:32:11,450 --> 00:32:16,730
Me lo preguntan porque para eso estamos para explicarlo todas las veces que sea necesario para incorporar

320
00:32:16,730 --> 00:32:20,300
ejemplos para ayudarlos le mando un gran abrazo.

321
00:32:20,480 --> 00:32:21,800
Gracias por compartir esto conmigo.
