Title: if
Course: Tecnología 4º ESO.

Q: ¿Cuál es la última instrucción de un if?
A: endif

Q: ¿Cuál es la última palabra de la primera línea de una instrucción if?
A: then

Q: ¿Cuál es la palabra que tiene como significado entonces en la programación de un if?
A: then

Q: ¿Cuál es la palabra que tiene como significado si no en la programación de un if?
A: else

Q: Si tenemos pulsadores conectados a las entradas 5,6 y 7¿Cómo se escribe la primera línea de una bifurcación en el que la condición es que se pulse el pulsador 5?
A: if pin5 = 1 then

Q: Si tenemos pulsadores conectados a las entradas 5,6 y 7¿Cómo se escribe la primera línea de una bifurcación en el que la condición es que no se pulse el pulsador 6?
A: if pin6=0 then

Q: Si tenemos pulsadores conectados a las entradas 5,6 y 7¿Cómo se escribe la primera línea de una bifurcación en el que la condición es que no se pulse el pulsador 6 pero que sí se pulse el pulsador 7?
A: if pin6 = 0 and pin7 = 1 then / if pin7 = 1 and pin6 = 0 then

Tenemos una controladora con pulsadores conectados a las entradas 5, 6 y 7 y leds conectados a las salidas de la 0 a la 7. ¿Cómo funcionaría el siguiente programa?

if pin7=1 then
high 6
low 5
else
low 6
high 5
endif

Tenemos una controladora con pulsadores conectados a las entradas 5, 6 y 7 y leds conectados a las salidas de la 0 a la 7. ¿Cómo funcionaría el siguiente programa?

if pin6=0 then
high 0
else
low 0
endif

Q: Si tenemos pulsadores conectados a las entradas 5,6 y 7¿Cómo se escribe la primera línea de una bifurcación en el que la condición es que se pulse el pulsador 5?
A: if pin5=1 then

Q: Tenemos una controladora con pulsadores conectados a las entradas 5, 6 y 7 y leds conectados a las salidas de la 0 a la 7. Queremos que si se pulsa el pulsador 5 se enciende únicamente el led 4 pero si no se pulsa, debe lucir únicamente el 5

¿Dónde habría que poner el else?

if pin5=1 then
high 4
low 5
low 4
high 5
endif
- después de low 5
- después de low 4
- después de high 5
- después de high 4
- no hace falta else
A: después de low 5

Q: Completa el programa para que funcione como el siguiente ejemplo:

do
[...]
high 3
[...]
low 3
[...]
[...]
A: if pin6 = 1 then; else; endif; loop

Q: Completa el programa para que funcione como el siguiente ejemplo:

inicio:
[...]
high 5
[...]
low 5
[...]
[...] inicio
A: if pin7 = 1 then; else; endif; goto

Q: Completa el programa para que funcione como el siguiente ejemplo:

[...]
[...]
high 5
[...]
low 5
[...]
goto inicio
A: inicio:; if pin7 = 1 then; else; endif

Entradas digitales

Las entradas digitales nos permiten pasar información desde el exterior al robot. Una entrada digital sólo puede ser interpretada de dos maneras por la controladora. Si se trata de un pulsador la información que se enviará es si está o no está pulsado.
La entrada se nombra con la palabra pin seguida (sin espacio) del número de la misma. pin5 es la entrada 5. El valor de la entrada puede ser 0 ó 1.
- Si la entrada digital está conectada a positivo el valor pinentrada(por ejempo pin5 si hablamos de la entrada 5).
- Si está conectada a negativo, el valor es 0.

Conexiones

En la siguiente imagen puedes ver cómo está configurada la placa. Las entradas está a la izquierda si pones el puerto de conexión al ordenador hacia arriba. Observa que hay dos puntos de conexión por cada entrada
[Image: placa ptolosa]

Hay que conectar una resistencia de 10kΩ entre la entrada y negativo. El pulsador se conecta entre el positivo y la entrada (por eso las conexiones de las entradas están duplicadas).
En el siguiente dibujo se observa cómo debe quedar la conexión si miráramos la placa de lado:

[Image: conexiones de entrada digital]

Cuando el pulsador está pulsado el valor del pinentrada (entrada es un número entre el 0 y el 7, dependiendo de la entrada que estemos usando) es igual a 1.
Si no está pulsado es igual a 0.

IF

Las bifurcaciones condicionales van a ser la estrategia fundamental que usemos cuando queramos que un robot interaccione con el entorno y se comporte de diferentes maneras según sea este.

Una bifurcación condicional empieza con la palabra if y termina con la palabra endif. Tambien tendrá siempre la palabra then y podra tener o no (es optativa) la palabra else.

Para entenderla conviene traducir:
- if -> si;
- then ->entonces;
- else -> sino;
- endif -> fin de la bifurcación

La sintaxis es

ifcondiciónthen
instrucciones que se realizan si la concición se cumple
else
instrucciones que se ejecutarán si la condición no se cumple
endif

Operadores lógicos

En las condiciones de un if se pueden usar operadores lógicos como and, or o no. Si unimos dos condiciones con un and, sólo se valorará como verdadera cuando se cumplan las dos de manera simultánea. Mientras que si lo hacemos con un or, la condición se cumplirá cuando se cumpla cualquiera de las condiciones individuales. Por ejemplo:

- para que la condición pin6=1 and pin7=1 se cumpla, deben pulsarse las dos entradas simultáneamente
- la condición pin6=1 or pin7=1 se cumplirá cuando se puse cualquiera de las dos entradas

Entrada desconectada

Cuando una entrada no está conectada ni al polo positivo ni al negativo, bien sea directamente o a través de una resistenciasu valor es indeterminado no se sabe si es 1 o 0.
Por ese motivo cuando conectamos una entrada a positivo con un pulsador, debemos conectarla a negativo a través de una resistencia para que cuando el pulsador se desconecte el valor no esté indeterminado.

Condición

La condición es una expresión que puede ser valorada como cierta o falsa, por ejemplo si una entrada está pulsada o no. Hay más posibles condiciones.

Si usamos pulsadores conectados como se ha descrito anteriormente, pin_ = 1 significa entrada pulsada y pin_ = 0 significa que no esta pulsada.

Q: Si tenemos pulsadores conectados a las entradas 5,6 y 7¿Cómo se escribe la primera línea de una bifurcación en el que la condición es que no se pulse el pulsador 6 pero que sí se pulse el pulsador 7?
A: if pin6=0 and pin7=1 then / if pin7=1 and pin6=0 then

Q: Completa el programa para que funcione como el siguiente ejemplo:

do
[...]
high 3
[...]
low 3
[...]
[...]
A: if pin6=1 then; else; endif; loop

Q: Completa el programa para que funcione como el siguiente ejemplo:

inicio:
[...]
high 5
[...]
low 5
[...]
[...] inicio
A: if pin7=1 then; else; endif; goto

Q: Completa el programa para que funcione como el siguiente ejemplo:

[...]
[...]
high 5
[...]
low 5
[...]
goto inicio
A: inicio:; if pin7=0 then; else; endif