En esta práctica se abordó cómo programar los diversos sensores que tiene la tarjeta Circuit Playground, específicamente se programaron los sensores de:
El siguiente vídeo muestra cómo la tarjeta lee los valores de sus sensores.
}
Retos propuestos
También se realizaron dos retos, uno de ellos el opcional.
El primer reto es hacer que cuando se gire a la derecha la tarjeta circuit Playground se encienda un neopixel. El segundo reto es hacer que se encienda un neopixel dependiendo de donde se incline la tarjeta.
En el siguiente vídeo se observa el resultado de los retos.
{
CircuitPlayground.begin();
Serial.begin(9600);
}
void loop()
{
int movimiento = (CircuitPlayground.motionY());//La variable "movimiento" toma el valor del eje Y.
Serial.print("Valor derecha: ");//Se imprime la leyenda en el puerto serial
Serial.println(movimiento);//Se imprime el valor de la variable a la leyenda
if(movimiento<0)// condición que valor que la variable es menor a cero
{
CircuitPlayground.setPixelColor (2,181,51,255);//valor verdadero. Se enciende el neopixel #2, con un color fusia
delay (500);
}
else
{
CircuitPlayground.clearPixels();// Valor falso, se apagan los neopixeles encendidos.
delay (500);
}
}
void setup()
{
CircuitPlayground.begin();
Serial.begin(9600);// se abre puerto serial
}
void loop()
{
derechaIzquierda();//procedimiento declarados abajo
adelanteAtras();
CircuitPlayground.clearPixels(); //apaga los neopixeles encendidos
}
//Procedimiento para adelante y atrás//
void adelanteAtras()
{
int movAdelante = (CircuitPlayground.motionX());//Se le asigna a la variable "movAdelante" el valor del eje x
Serial.print("Valor giro2: ");//Se imprime leyenda en el puerto serial
Serial.println(movAdelante);//Se le agrega a la leyenda el valor de la variable
if(movAdelante>0)//Se compara la variable si es mayor a cero
{
CircuitPlayground.setPixelColor (4,181,51,255);//Condición verdadera se enciende el neopixel 4 y 5
CircuitPlayground.setPixelColor (5,181,51,255);
delay (100);
}
else //condición falsa
{
if(movAdelante<0)//se agrega otro if a la condición falsa
{
CircuitPlayground.setPixelColor (9,181,51,255);//condición verdadera del segundo if, se enciende neopixel 9 y 0
CircuitPlayground.setPixelColor (0,181,51,255);
delay (100);
}
else
{
}
}
}
//Procedimiento para derecha e izquierda//La explicación de la programación es la misma que la del procedimiento anterior
void derechaIzquierda()
{
int movimiento = (CircuitPlayground.motionY());
Serial.print("Valor giro: ");
Serial.println(movimiento);
if(movimiento>0)
{
CircuitPlayground.setPixelColor (7,181,51,255);
delay (100);
}
else
{
if(movimiento<0)
{
CircuitPlayground.setPixelColor (2,181,51,255);
delay (100);
}
else
{
}
}
}
- Sonido
- Temperatura
- Luz
- Botones
- Deslizador
El siguiente vídeo muestra cómo la tarjeta lee los valores de sus sensores.
La programación completa junto con los comentarios de la programación los encontrará a continuación:
#include <Adafruit_CircuitPlayground.h> // librería que necesita arduino para hacer funcionar la tarjeta Circuit
void setup()
{
Serial.begin(9600); //abre el puerto serial. Esto permitirá ver el valor de los sensores en el monitor de serie desde herramientas.
}
void loop()
{
//Botones(); Deshabilitado, para ver el valor del sensor solo borre las barras al inicio del procedimiento
//SensorInterruptor();
//SensorLuz();
//SensorSonido();
SensorTemperatura(); //Procedimiento habilitado.
}
//Procedimiento para Botones// Se debe declarar en el loop
void Botones()
{
int ValorBotonDerecho=CircuitPlayground.rightButton(); //La Variable "ValorBotonDerecho" toma el valor del botón derecho de la circuit.
int ValorBotonIzquierdo=CircuitPlayground.leftButton();//La Variable "ValorBotonDerecho" toma el valor del botón izquierdo de la circuit.
Serial.print("Valor del boton es derecho es: "); //Se imprime una leyenda en el monitor de serie.
Serial.println(ValorBotonDerecho);//Se imprime el valor de la variable en el monitor de serie con la leyenda.
delay(500);
Serial.print("Valor del boton izquierdo es: ");
Serial.println(ValorBotonIzquierdo);
delay(500);
}
//Procedimiento para el interruptor//
void SensorInterruptor() // Nombre del procedimiento se debe declarar en el "Loop"
{
int ValorInterruptor=CircuitPlayground.slideSwitch();//Se declara variable para que tome valor de deslizador
if (ValorInterruptor==0)//condición que compara valor del deslizador
{
Serial.print("Posicion interruptor: Derecha");//Se agrega mensaje en el puerto serial
Serial.println();//Se imprime valor del mensaje
delay(500);
}
else
{
Serial.print("Posicion interruptor: Izquierda");
Serial.println();
delay(500);
}
}
//Procedimiento para Sensor de Luz// se debe declarar en el "Loop"
void SensorLuz()
{
int ValorSensorLuz=CircuitPlayground.lightSensor();//Variable toma el valor del sensor de luz de la tarjeta
Serial.print("Valor detectado de luz es de: ");//Se agrega leyenda al puerto serial
Serial.println(ValorSensorLuz);//Se imprime leyenda junto con el valor de la variable
delay(500);
}
//Procedimiento para el sensor de sonido//se debe declarar en el "Loop"
void SensorSonido()
{
int ValorSensorSonido=CircuitPlayground.soundSensor();
Serial.print("Valor detectado de sonido es de: ");//Se agrega leyenda al puerto serial
Serial.println(ValorSensorSonido);//Se imprime leyenda junto con el valor de la variable
delay(500);
}
//Procedimiento Sensor de temperatura//
void SensorTemperatura()
{
int ValorSensorTemperatura=CircuitPlayground.temperature();
Serial.print("Valor detectado de temperatura es de: ");//Se agrega leyenda al puerto serial
Serial.println(ValorSensorTemperatura);//Se imprime leyenda junto con el valor de la variable
delay(500);
}
Retos propuestos
También se realizaron dos retos, uno de ellos el opcional.
El primer reto es hacer que cuando se gire a la derecha la tarjeta circuit Playground se encienda un neopixel. El segundo reto es hacer que se encienda un neopixel dependiendo de donde se incline la tarjeta.
En el siguiente vídeo se observa el resultado de los retos.
Programación para el reto #1
void setup(){
CircuitPlayground.begin();
Serial.begin(9600);
}
void loop()
{
int movimiento = (CircuitPlayground.motionY());//La variable "movimiento" toma el valor del eje Y.
Serial.print("Valor derecha: ");//Se imprime la leyenda en el puerto serial
Serial.println(movimiento);//Se imprime el valor de la variable a la leyenda
if(movimiento<0)// condición que valor que la variable es menor a cero
{
CircuitPlayground.setPixelColor (2,181,51,255);//valor verdadero. Se enciende el neopixel #2, con un color fusia
delay (500);
}
else
{
CircuitPlayground.clearPixels();// Valor falso, se apagan los neopixeles encendidos.
delay (500);
}
}
Programación para el reto opcional
#include <Adafruit_CircuitPlayground.h>void setup()
{
CircuitPlayground.begin();
Serial.begin(9600);// se abre puerto serial
}
void loop()
{
derechaIzquierda();//procedimiento declarados abajo
adelanteAtras();
CircuitPlayground.clearPixels(); //apaga los neopixeles encendidos
}
//Procedimiento para adelante y atrás//
void adelanteAtras()
{
int movAdelante = (CircuitPlayground.motionX());//Se le asigna a la variable "movAdelante" el valor del eje x
Serial.print("Valor giro2: ");//Se imprime leyenda en el puerto serial
Serial.println(movAdelante);//Se le agrega a la leyenda el valor de la variable
if(movAdelante>0)//Se compara la variable si es mayor a cero
{
CircuitPlayground.setPixelColor (4,181,51,255);//Condición verdadera se enciende el neopixel 4 y 5
CircuitPlayground.setPixelColor (5,181,51,255);
delay (100);
}
else //condición falsa
{
if(movAdelante<0)//se agrega otro if a la condición falsa
{
CircuitPlayground.setPixelColor (9,181,51,255);//condición verdadera del segundo if, se enciende neopixel 9 y 0
CircuitPlayground.setPixelColor (0,181,51,255);
delay (100);
}
else
{
}
}
}
//Procedimiento para derecha e izquierda//La explicación de la programación es la misma que la del procedimiento anterior
void derechaIzquierda()
{
int movimiento = (CircuitPlayground.motionY());
Serial.print("Valor giro: ");
Serial.println(movimiento);
if(movimiento>0)
{
CircuitPlayground.setPixelColor (7,181,51,255);
delay (100);
}
else
{
if(movimiento<0)
{
CircuitPlayground.setPixelColor (2,181,51,255);
delay (100);
}
else
{
}
}
}
Comentarios
Publicar un comentario