Los bucles son estructuras de programación que permiten repetir un conjunto de instrucciones. ya hemos visto dos, el bucle infinito, que permite repetir un conjunto de instrucciones indefinidamente y el bucle for que permite repetir un bloque de instrucciones un número de veces. Ahora vamos a ver bucles condicionales que se van a repetir dependiendo del estado de las entradas
El bucle while es un bucle que se repite mientras se cumpla una condición
El bucle tiene dos posibles formas de escribirse
do instrucciones loop while condición
do while condición instrucciones loop
En ambos casos la función similar; se repetirán las instrucciones entre do y loop mientras se cumpla la condición escrita después de while. La diferencia es que en la primera opción las instrucciones no se realizan ni una vez si al principio del bucle no se cumple la condición, mientras que en la segunda opción, las instrucciones entre do y loop se hacen al menos una vez, porque la condición se evalúa después.
Las instrucciones pueden no existir, de manera que en ese caso, el programa funciona como una espera que dura mientras se cumpla la condición. De todos modos suele ser buena idea en esos casos poner como instrucción una pequeña espera, como pause 100, para no atosigar al controlador.
do while pin6=0 high 0 loop low 0
Este programa encenderá el led 0 y lo mantendrá encendido hasta que pulsemos el pulsador 6. Entonces se apagará y terminará el programa.
es muy parecido al bucle while, pero en lugar de realizase mientras se cumpla la condición se realiza hasta que se cumpla
Ttiene dos posibles formas de escribirse
do instrucciones loop until condición
do until condición instrucciones loop
En ambos casos la función similar; se repetirán las instrucciones entre do y loop hasta que se cumpla la condición escrita después de until. La diferencia es que en la primera opción las instrucciones no se realizan ni una vez si al principio del bucle no se cumple la condición, mientras que en la segunda opción, las instrucciones entre do y loop se hacen al menos una vez, porque la condición se evalúa después.
do until pin6=1 high 0 loop low 0
Este programa este programa funciona exactamente como el anterior. Para conseguir que funcione igual, ha habido que cambiar la condición
Realiza un programa que funcione como el ejercicio 12 cuando se pulsa el pulsador 6 y que funcione de manera similar pero en sentido contrario si se pulsa el pulsador 7. Si no se pulsa ninguno, todos los led deben estar apagados
Realiza un programa que funcione como el ejercicio 12 cuando se pulsa el pulsador 6 y que funcione de manera similar pero en sentido contrario si se pulsa el pulsador 7. Si no se pulsa ninguno, todos los led deben estar apagados
Realiza un programa en el que pulsando el pulsador 6 se enciende el led 0, si se vuelve a pulsar, se enciende también el led 1 y así sucesivamente
Mejora el programa para que si se pulsa el pulsador 7 se apaguen todos los led
Realiza un programa en el que pulsando el pulsador 6 se enciende el led 0, si se vuelve a pulsar, también se enciende el led 1 y así sucesivamente
Si se pulsa el pulsador 7 los led se van apagando de uno en uno.
Mejora el programa para que si pulsas continuamente los pulsadores sólo se enciende/apaga un led. para que se encienda/apague otra habrá que soltar el pulsador y volver a pulsar.
Realiza un programa que funcione como el ejercicio 12 cuando se pulsa el pulsador 6 o el 7 y que sino se pulsa ninguno todos los led estén apagados
Realiza un programa que funcione como el ejercicio 12 cuando se pulsa el pulsador 6 y el 7 y que en caso contrario, todos los led estén apagados
Los siguientes ejercicios sólo debes hacerlos si te manejas perfectamente con los anteriores.
En robótica se llaman entradas analógicas en las que se pueden leer diferentes niveles de tensión. Se diferencian de las digitales en que en estas sólo se pueden leer dos niveles de tensión. Una entrada digital tiene dos posibles valores. Una entrada analógica puede interpretar hasta 256 niveles diferentes de tensión. Las entradas 0, 1 y 2 de la placa de alta potencia están conectados a pines capaces de leer valores analógicos. El chip 18M2 tiene más pines capaces de leer niveles analógicos
Conecta un potenciómetro a la entrada analógica 0
Prueba el siguiente programa moviendo el potenciómetro.
inicio: readadc 0,b0; se lee el valor de la entrada 0 y se almacena en la variable b0 debug ; nos muestra el valor de las variables en la pantalla del ordenador if b0<100 then ; Dependiendo del valor del potenciómetro, se encienden unas salidas u otras high 0,1,2,3 low 4,5,6,7 else high 4,5,6,7 low 0,1,2,3 endif pause 100; un rato parado para que lo veamos goto inicio
Haz un programa que funcione como el siguiente ejemplo.
Haz un programa que funcione como el siguiente ejemplo.
Conecta una LDR a la controladora en una entrada analógica. Existe una resistencia interna que conecta las entradas al polo negativo. En algunas placas esa resistencia no está presente y entonces es importante ponerla.
Haz un programa que funcione como el siguiente ejemplo. El los if la condición puede ser que un valor sea mayor o menor que otro.
Haz un programa que funcione como el siguiente ejemplo.
Conecta una LDR a una entrada analógica y consigue que se enciendan más led cuanto más luz reciba.