Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Práctica 1 3
Practica 2 4
Práctica 3 5
Práctica 4 6
Práctica 5 7
Práctica: 6 9
Práctica: 7 11
Práctica: 8 12
Práctica: 9 13
Práctica: 10 14
A B C D F
E 8
8 1 7 1 2
2
Práctica 1
Diseñar un programa que encienda el led 13 de nuestra placa. El led deberá estar
encendido durante X segundos que corresponden a los dígitos del NIA y apagado ½
segundo entre cada encendido. Como resultado si el NIA es 817128, el led deberá
estar encendido 8 segundos, apagado ½ segundo, encendido 1 segundo, apagado ½
segundo y así con todos los números del nia.
El código inicializa con la función setup (la cual solo se ejecutará una vez), dentro de esta
función se define el pin que se va a utilizar y cómo se va a usar (si como output o input). En
este caso se pide el pin 13, el cual tiene incorporado un led, y se va a utilizar como output.
Seguidamente se genera la función “encenderLed” que recibe el número X del NIA. Dentro de
la función “encenderLed” se define la variable “espera” que es el número X del NIA
multiplicado por 1000 (debido al paso de segundos a milisegundos). Tras esto se utiliza la
función digitalWrite para encender el led, utilizando delay se consiguen los segundos que el
número “espera”,definido anteriormente, indica debe estar encendido el led. Una vez pasado
este tiempo de encendido, se vuelve a utilizar la función digitalWrite, para esta vez para
apagar el led, como antes se vuelve a utilizar el delay para indicar el tiempo de apagado del
led (siempre será ½ segundo, o lo que es lo mismo 500 milisegundos).
Para finalizar, se utiliza la función loop (la cual se ejecuta continuamente) y dentro de esta
función definimos 6 veces,una por cada número del NIA, la función “encender led”, de tal
forma que por cada número del NIA se ejecutará la función “encenderLed” con su encendido
de X (número del NIA*1000) segundos y su apagado de ½ segundo. Repitiendose así
infinitamente
3
Practica 2
Diseñar un programa que encienda un led en su máxima intensidad, que de forma
progresiva baje su intensidad durante X (número equivalente al F del NIA) segundos
hasta que se apague y que seguidamente permanezca apagado durante X (número D
del NIA) segundos.
En esta práctica se debe utilizar un pin que cuente con una salida PWM para poder trabajar
con una salida analógica y por tanto elegir el voltaje que pasa por el led.
Cuando no se cumpla, el led habrá llega a su nivel más bajo y seguidamente de llegar a este
nivel se aplica un “delay” de un valor (D del NIA)* 1000. Una vez terminado vuelve a empezar
la función “loop”, así infinitamente.
4
Práctica 3
Diseñar un programa que encienda un led y que la iluminación de este vaya
cambiando de forma aleatoria y suave con el tiempo. Se debe utilizar la función
random(), esta función dará un número aleatorio que esté en un intervalo que se
haya elegido.
Seguidamente se define la variable brillo será el nivel de intensidad. Después dentro del
“loop” se crea un bucle for que tenga como variable el brillo y que debe estar entre 0 y 255,
además utilizando la función “random” a la variable citada anteriormente se le sumará o
restará 10 unidades. A continuación dentro el bucle for se hay dos if que hacen que el brillo
esté entre 0 y el 255.
Para finalizar se usa la función “analogWrite()” para encender el led con el nivel de intensidad
de la variable y después un delay de 40 milisegundos.
5
Práctica 4
Diseñar un programa que cree un generador de una señal triangular donde el
periodo sea F*C (números del NIA) milisegundos. Se deberán usar las funciones
“SerialPlotter()” y “delayMicroseconds()”.
Por último, introducimos dos bucles “for”, uno para la subida de la señal y otro para la bajada.
El primer bucle, el de bajada, recorre los niveles de intensidad desde el 255 hasta llegar al
0, utilizando un delay de “Tbaja” microsegundos entre cada cambio.
El segundo bucle, el de subida, será lo mismo que el de bajada, pero recorriendo los niveles
del 0 al 255.
Para ver dibujada la señal en el serial plotter utilizamos el Serial.println().
6
Práctica 5
Diseñar un programa que lea por teclado una secuencia de letras. Cuando encuentre
un “I”, encienda el led , cuando encuentre una “k” se apague el led , cuando encuentre
una “j” aumente el brillo del led “E” (número del NIA) unidades y si encuentra “h” lo
reduzca “F” (número del nia) unidades.
7
El código inicializa con la función “setup”.
Seguidamente se crea una variable llamada “intensidad”, que determinará la intensidad con
la que brillará el led. Después, dentro del “loop” se crea otra variable “i” y se crea una lista, la
variable contará los caracteres, mientras que la lista los almacenará.
Consecutivamente se crea un “while”, el cual se ejecutará si hay datos por leer (gracias al
Serial.available()) y por el que se irán introduciendo la lista “s” (gracias al Serial.read()). Luego
el bucle “for” recorre todos los elementos de la lista.
Para finalizar, mediante el uso de varios “if”, se logra que se analicen cada uno de los
elementos, haciendo que si este es 0 se salga del bucle con un “break”, y cómo se pide en el
enunciado, si hay una “l” la intensidad del led será de 255, si hay una “k” la intensidad será
de 0, si hay una “j” se sumarán 2 unidades a la intensidad y si hay una “h” se restarán 8
unidades a la intensidad.
8
Práctica: 6
Diseñar un programa al que le introduzca una cadena de texto desde el teclado y
muestre la misma cadena, pero donde aparezcan repetidas todas las vocales.
9
El código inicializa con el “setup” y con el puerto serial a 115200 baudios.
Seguidamente comienza el “loop” dentro se crea una variable “i” y una lista “s”, con la
finalidad de que la variable sirva para contar los caracteres y que la lista los contenga.
Después se crea un “while”, el cual se ejecutará si hay datos por leer (gracias a
“Serial.available()”), y se introducen los datos en la lista s (gracias al Serial.read()).
Cuando todos los datos están dentro de la lista “s” se recorrerá cada elemento de
está con un bucle “for”. Cuando se llega al final del “string” analizado, se sale del bucle “for”
gracias a un “break” que hay dentro de un “if”, que se ejecutará si se encuentra el carácter de
final de string 0.
Para finalizar, tras el “if” se imprime cada el elemento de la lista que se está analizando en
cada momento con un Serial.print(), en caso de que este sea una vocal, esta se volverá a
imprimir gracias a los 5 “if” que hay al final del código, teniendo cada uno la función de
repetir cada una de las vocales.
10
Práctica: 7
Diseñar un programa que al introducir una lista de números separados por espacios
(en este caso), devuelva la diferencia entre el primer valor y el resto. (La lista tiene
longitud variable)
Seguidamente comienza el “loop” dentro se crea una variable “i” y una lista “s”, con la
finalidad de que la variable sirva para contar los caracteres y que la lista los contenga.
Después se crea un “while”, el cual se ejecutará si hay datos por leer (gracias a
“Serial.available()”), y se introducen los datos en la lista “s” (gracias al Serial.read())
A continuación, dentro del “if”, se separa cada elemento del string que esté separado por un
espacio con la función “strtok”. Después se pasa cada elemento de “”string” a “float” con
la función “atof”. Luego el bucle “while”, recorrerá la cadena y cuando se encuentre un
elemento “NULL” se sustituirá por un espacio. Para finalizar, se convierte estos valores a float
y restamos al primero los elementos posteriores.
11
Práctica: 8
Diseñar un programa que pida un número por pantalla e imprima un triángulo de
números con las mismas filas y columnas que el valor introducido.
12
Práctica: 9
Diseñar un programa que calcule el volumen de un cono, el programa deberá el
siguiente diálogo con el usuario
13
Práctica: 10
Escriba un programa que imprima por pantalla todos los números primos inferiores
a un valor dado por teclado.
Luego se calculan los números primos menores al número recogido, para ello se crea una
lista donde se meterán estos números primos. Luego se calcula el número de divisores que
14
tienen cada uno de los números inferiores al dado, conforme se encuentran divisores se
introducen en la lista. Mientras se van encontrando cada número primo se va imprimiendo
por pantalla separándolos por una coma.
15