Entradas y Salidas Analógicas
Leer el voltaje a la salida de un potenciómetro y sacarlo por consola. Conectar el potenciómetro en la entrada analógica A0, leer su valor e iluminar el LED en función del valor leído de forma proporcional mediante una salida analógica PWM.
Sacar por el serial plotter los valores de la entrada analógica, el valor en voltios y el valor aplicado al PWM.
Los valores de la lectura de la entrada analógica van de 0 para 0V hasta 1023 para 5V.
Los valores de la salida PWM van desde 0 para 0V hasta 255 para 5V.
Esquema de conexión:
![](https://www.arduino.cc/en/uploads/Tutorial/analoginoutserial1_bb.png)
Tutoriales:
Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio19-Analog
Smoothing
Usando el mismo esquema del ejercicio anterior, leer la entrada analógica llegada de un potenciómetro y sacar por el puerto serie la media de los últimas 10 lecturas. Luego hacer una transición más suave al escribir en el led usando el valor medio de las últimas 10 lecturas (pin PWM).
Ver los datos por el Serial Plotter.
Tutorial: https://www.arduino.cc/en/Tutorial/Smoothing
Resultado:
![](https://aprendiendoarduino.wordpress.com/wp-content/uploads/2017/06/smoothing.png)
Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio20-Smoothing
Hacer una versión con más transición de forma que si cambia la media (outputValue) respecto del valor anterior aplicado, hacer una transición de 5 en 5 valores. Ver como en este caso el tiempo de loop aumenta por esta transición
Solución: poner a 1 MAS_TRANSICION en https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio20-Smoothing
Ejercicio propuesto: Hacer una versión del coche fantástico pero haciendo que haya un led encendido al 100% y los de al lado al 50% y los siguientes al 25%.
Generar Tonos
Ver el funcionamiento de la función tone() para generar notas. Tone() genera una onda cuadrada de una frecuencia específica y con un 50% de duty cycle en el pin especificado. La duración del tono puede ser especificado o en caso contrario continúa hasta llamar a la función noTone().
Solo un tono puede ser generado simultáneamente, si un tono ya se está ejecutando en otro pin, la llamada a tone() no tendrá efecto.
Para más información:
- Función tone(): https://www.arduino.cc/en/Reference/Tone
- Detalles técnicos: https://code.google.com/archive/p/rogue-code/wikis/ToneLibraryDocumentation.wiki#Ugly_Details
NOTA: no confundir tone con PWM. PWM tiene una frecuencia fija de 500Hz, por lo que entre línea verde y verde hay siempre 2ms. En el caso de tone la señal siempre tiene un duty cycle del 50%.
![](https://www.arduino.cc/en/uploads/Tutorial/pwm.gif)
Esquema de conexión:
![](https://www.arduino.cc/en/uploads/Tutorial/Tone_Fritzing.png)
Tutoriales:
Solución: https://github.com/jecrespo/aprendiendoarduino-Curso_Arduino_2017/tree/master/Ejercicio21-tone
Hacer sonar la musica Star Wars con Arduino: http://miarduinounotieneunblog.blogspot.com.es/2016/01/banda-sonora-de-star-wars-con-un.html
Grillo Digital
Proyecto de grillo digital: https://blog.arduino.cc/2016/08/02/the-most-incessant-and-annoying-arduino-project-ever/
Se usa la librería Volume para controlar el volumen de la función tone(): https://github.com/connornishijima/arduino-volume1
Código: https://github.com/connornishijima/arduino-volume1/tree/master/examples/volume_crickeduino_prank