Resumen de bloque 3
Señales Analogica
- Como has aprendido anteriormente, las señales digitales solo tienen dos estados opuestos: 1 ó 0. Si pulsas y sueltas un botón, su estado cambiará de uno a otro. Un LED está encendido o apagado.Las señales analógicas tienen niveles continuos. Así que si tienes un sensor de luz, puedes obtener muchos valores diferentes que expresan cómo de iluminada está la habitación, y no sólo clara/oscura.En tu placa controladora, puedes obtener los valores analógicos de los pines analógicos. Sobre la placa puedes ver un grupo de pines marcados como ANALOG IN, que llevan el nombre de A0 a A5.
-
Escribiendo señales analógicas
- La placa emplea pines PWM (del inglés Pulse Width Modulation) para enviar valores analógicos.Cuando se utiliza un pin digital para escribir HIGH o LOW, se obtiene 0 V o el voltaje de alimentación (5 V o 3,3 V dependiendo de la placa). Los pines PWM tienen una habilidad diferente, puedes utilizarlos para obtener un nivel de tensión entre 0 V y el voltaje de alimentación. Con esto, puedes modificar el brillo de un LED desde apagado hasta totalmente encendido.Para utilizar esta habilidad especial de los pines PWM, tendrás que usar la función analogWrite(). Esta función necesita dos parámetros, el número del pin PWM, y el nivel de salida.
Sensor de luz
- El sensor de luz, en este caso un fototransistor, es un componente que reacciona a la cantidad de luz, detecta la luminosidad y en función de ella, el sensor devuelve un valor analógico diferente.
- Con el sensor, como por ejemplo una lámpara que se enciende automáticamente cuando la habitación se oscurece o que un robot siga una linterna, pero vamos a empezar por lo básico.
Cómo funciona
- Se declaran las variables, ledPin , sensorPin y potPin (para almacenar el pin al que está conectado el potenciómetro).
- Como estamos empleando un LED como actuador digital, se configura el pin 9 como salida en la función setup().
- En la función loop() se declara la variable value para almacenar el valor analógico leído en el pin A1.
- Se declara la variable threshold para almacenar el valor analógico leído en el pin A5.
- Si value es mayor que threshold, se apaga el LED.
- Si value no es mayor que threshold, se enciende el LED.
- El programa espera durante 10 milisegundos.
Puerto serie
- La placa controladora se conecta a tu ordenador usando un cable USB. El modo en que las placas "hablan" con el ordenador consiste en algo llamado puerto serie. Este se puede usar para intercambiar datos relativamente complicados entre la placa y el ordenador. En lugar de señales digitales o analógicas puedes enviar o recibir texto.
Cómo funciona
- En la función setup(), se inicializa la comunicación por el puerto serie a una velocidad de 9600 bits por segundo.
- En la función loop(), se envía el mensaje “Hola Caracola” por el puerto serie.
- El programa espera durante 1000 milisegundos.
- Repite la función loop().
ENVIANDO VALORES DEL SENSOR DE LUZ
Algo importante en lo que utilizarás la comunicación serie es para comprobar el funcionamiento de tus programas. De esta manera, más que mandar mensajes estáticos por el puerto serie, puedes mandar valores dinámicos que cambien con el tiempo. Esto es útil cuando quieres usar un sensor analógico y no sabes exactamente qué valores lee. -
Cómo funciona
- En la función setup(), se inicializa la comunicación por el puerto serie a una velocidad de 9600 bits por segundos.
- En la función loop() se declara la variable sensorValue para almacenar la lectura analógica del pin A1.
- Se envía el valor sensorValue por el puerto serie.
- El programa espera durante 100 milisegundos. Esta pausa solo sirve para facilitar la lectura de todos los valores enviados por el puerto serie.
Recibiendo del ordenador
- Para recibir información por el puerto serie, necesitarás dos comandos: Serial.available() y Serial.read().
Cómo funciona
- Se declaran las variables ledPin y incomingByte. La variable incomingByte se empleará para almacenar la información recibida.
- En la función setup(), se inicializa la comunicación por el puerto serie a una velocidad de 9600 bits por segundo.
- Se configura el pin 13 como salida.
- Sólo leeremos del puerto serie cuando hay datos entrantes. Por tanto, lo primero que comprobamos con en la función loop() es si la cantidad de bytes recibidos es mayor que 0.
- Si el número de bytes no es mayor que 0, el programa ignora el código entre llaves. Puesto que no hay más código que ejecutar después de la sentencia if, el programa salta al principio de la función loop().
- Si es número de bytes es mayor que 0, se lee la información y se almacena en la variable incomingByte.
Comentarios
Publicar un comentario