Sesion 4 - Codigos

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 15

Multiples LED

// Para realizar un seguimiento de todos los pines LED, usaremos una "matriz".
// Una matriz le permite almacenar un grupo de variables y referirse a ellas
// por su posición o "índice". Aquí estamos creando una serie de
// seis varibles enteras:

int ledPins[] = {4,5,6,7,8,9};

void setup()
{
// crea una variable local para almacenar el índice de qué pin queremos controlar
int index;

// Para el ciclo for () a continuación, estas son las tres declaraciones:

// 1. index = 0; Antes de comenzar, haga index = 0.


// 2. índice <= 5; Si el índice es menor o igual a 5, ejecute el siguiente código
// 3. index ++ Poner "++" después de una variable significa "agregarle una".

// Cuando la prueba en la declaración 2 es finalmente falsa, el código


// continuará.

// Este ciclo for () hará que index = 0, luego ejecute pinMode ()


// más la declaración entre paréntesis. Entonces hará lo mismo
// para index = 2, index = 3, etc. hasta index = 5.

for(index = 0; index <= 5; index++)


{
pinMode(ledPins[index],OUTPUT);
}
}

void loop()
{
// Este loop () llama funciones que hemos escrito más abajo.
// Hemos desactivado algunos de estos al comentarlos (poniendo "//" en frente de ellos).
// Para probar diferentes pantallas LED, elimine el "//"
// delante de los que te gustaría ejecutar, y agrega "//"
// delante de los que no comentar (y deshabilitar) aquellos líneas.

// Ilumina todos los LED a su vez


oneAfterAnotherNoLoop();

// Igual que oneAfterAnotherNoLoop


//oneAfterAnotherLoop();

// Enciende un LED a la vez, desplazándote por la línea


//oneOnAtATime();

// Enciende los LED en el medio de los bordes


//pingPong();

//marquee();

// Parpadea los LED al azar


//randomLED();
}
/*
oneAfterAnotherNoLoop()
Esta función encenderá un LED, uno a uno, luego se enciende
el siguiente LED y repite hasta que todos los LED estén encendidos.
Y los apagará en el orden inverso.
*/

void oneAfterAnotherNoLoop()
{
// tiempo (milisegundos) para pausar entre cada LED
int delayTime = 100;

// enciende todos los LED:

digitalWrite(ledPins[0], HIGH); // Enciende el LED # 0 (pin 4)


delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[1], HIGH); // Enciende el LED # 1 (pin 5)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[2], HIGH); // Enciende el LED # 2 (pin 6)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[3], HIGH); // Enciende el LED # 3 (pin 7)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[4], HIGH); // Enciende el LED # 4 (pin 8)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[5], HIGH); // Enciende el LED # 5 (pin 9)
delay(delayTime); // espera delayTime milisegundos
// apaga todos los LED:

digitalWrite(ledPins[5], LOW); // Apaga el LED # 5 (pin 9)


delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[4], LOW); // Apaga el LED # 4 (pin 8)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[3], LOW); // Apaga el LED # 3 (pin 7)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[2], LOW); // Apaga el LED # 2 (pin 6)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[1], LOW); // Apaga el LED # 1 (pin 5)
delay(delayTime); // espera delayTime milisegundos
digitalWrite(ledPins[0], LOW); // Apaga el LED # 0 (pin 4)
delay(delayTime); // espera delayTime milisegundos
}

/*
oneAfterAnotherLoop()

Esta función hace exactamente lo mismo que oneAfterAnotherNoLoop (),


pero aprovecha los ciclos for () y la matriz para hacerlo con menor
líneas de código
*/

void oneAfterAnotherLoop()
{
int index;
int delayTime = 100; // milisegundos para pausar entre cada LED
//haga esto más pequeño para un cambio más rápido
// Encienda todos los LED:

// Este ciclo for () aumentará el índice de 0 a 5


// (poner "++" después de una variable significa agregarle una)
// y luego usará digitalWrite () para encender ese LED.

for(index = 0; index <= 5; index++)


{
digitalWrite(ledPins[index], HIGH);
delay(delayTime);
}

// Apague todos los LED:

// Este ciclo for () aumentará el índice de 5 a 0


// (poner "-" después de una variable significa restarle una)
// y luego usará digitalWrite () para apagar ese LED.

for(index = 5; index >= 0; index--)


{
digitalWrite(ledPins[index], LOW);
delay(delayTime);
}
}

/*
oneOnAtATime()
Esta función pasará por los LED,
iluminando solo uno a la vez.
*/

void oneOnAtATime()
{
int index;
int delayTime = 100; // milisegundos para pausar entre LED
// haga esto más pequeño para un cambio más rápido

// paso a través de los LED, de 0 a 5

for(index = 0; index <= 5; index++)


{
digitalWrite(ledPins[index], HIGH); // encienda el LED
delay(delayTime); // pausa para frenar
digitalWrite(ledPins[index], LOW); // apaga el LED
}
}

/*
pingPong()

Esta función pasará por los LED,


iluminando uno a la vez en ambas direcciones.
*/

void pingPong()
{
int index;
int delayTime = 100; // milisegundos para pausar entre LED
// haga esto más pequeño para un cambio más rápido

// paso a través de los LED, de 0 a 5

for(index = 0; index <= 5; index++)


{
digitalWrite(ledPins[index], HIGH); // encienda el LED
delay(delayTime); // pausa para frenar
digitalWrite(ledPins[index], LOW); // apaga el LED
}

// paso a través de los LED, de 5 a 0

for(index = 5; index >= 0; index--)


{
digitalWrite(ledPins[index], HIGH); // encienda el LED
delay(delayTime); // pausa para frenar
digitalWrite(ledPins[index], LOW); // apaga el LED
}
}

/*
marquee()

Esta función imitará "luces de persecución" como las de los letreros.


*/
void marquee()
{
int index;
int delayTime = 200; // milisegundos para pausar entre LED
// Hazlo más pequeño para un cambio más rápido

// Recorre los primeros cuatro LED


// (Iluminaremos uno en los 3 inferiores y uno en los 3 superiores)

for(index = 0; index <= 2; index++) // Paso de 0 a 3


{
digitalWrite(ledPins[index], HIGH); //Enciende un LED
digitalWrite(ledPins[index+3], HIGH); // Omita cuatro y encienda ese LED
delay(delayTime); // Pausa para ralentizar la secuencia.
digitalWrite(ledPins[index], LOW); // Apaga el LED
digitalWrite(ledPins[index+3], LOW); // Salta cuatro y apaga ese LED
}
}

/*
randomLED()

Esta función encenderá LED aleatorios. ¿Puedes modificarlo para que


también los enciende por momentos aleatorios?
*/

void randomLED()
{
int index;
int delayTime;

//La función random () devolverá un número semialeatorio cada

index = random(5); // elige un número aleatorio entre 0 y 5


delayTime = 100;

digitalWrite(ledPins[index], HIGH); // enciende el LED


delay(delayTime); // pausa para frenar
digitalWrite(ledPins[index], LOW); // Apaga el LED
}
Lectura de un Boton
//Primero configuraremos las constantes para los pines a los que conectaremos las terminales
del RGB
// Esto nos permitirá identificar cada color en el código de abajo.

// Pin de botón (pushbutton)


const int buttonPin = 3;

// Pines del led RGB


const int redPin = 11;
const int greenPin = 10;
const int bluePin = 9;

// Crea una variable para almacenar un contador y ponerlo en 0


int counter = 0;
void setup()
{

// Configura los pines del pushbutton para que sean una Entrada:
pinMode(buttonPin, INPUT);

// Configura los pines del led RGB para que sea Salidas:
pinMode(redPin, OUTPUT);
pinMode(greenPin,OUTPUT);
pinMode(bluePin,OUTPUT);
}
void loop()
{
// Varible local para guardar el estado del pushbutton
int buttonState;

// Lee el estado digital del buttonPin con la función digitalRead() y almacena


// el valor en la variable buttonState
buttonState = digitalRead(buttonPin);

// Si el botón es presionado, incrementa el contador y espera un poco para


// darle tiempo a que el botón se libere.
if (buttonState == LOW) // Prende el LED
{
counter++;
delay(150);
}

// Utiliza el ciclo IF para revisar el valor del contador .


// Si el contador es igual a 0, todos los pines se apagarán
if(counter == 0)
{
digitalWrite(redPin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,LOW);
}

// si el contador es igual a 1, el redPin está en estado algo (encendido)


else if(counter == 1)
{
digitalWrite(redPin,HIGH);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,LOW);
}

// si el contador es igual a 2, el greenPin está en estado algo (encendido)


else if(counter ==2)
{
digitalWrite(redPin,LOW);
digitalWrite(greenPin,HIGH);
digitalWrite(bluePin,LOW);
}

// si el contador es igual a 3, el bluePin está en estado algo (encendido)


else if(counter ==3)
{
digitalWrite(redPin,LOW);
digitalWrite(greenPin,LOW);
digitalWrite(bluePin,HIGH);
}

// de lo contario, reinicia el contador a 0 (lo cual apagará todos los pins)


else
{
counter =0;
}
}
Fotoresistor
int sensorValue = 0;

void setup()
{
pinMode(A0, INPUT);
Serial.begin(9600);

pinMode(9, OUTPUT);
}

void loop()
{
// leer el valor del sensor
sensorValue = analogRead(A0);
// imprime la lectura del sensor para que sepas su rango
Serial.println(sensorValue);
// mapear la lectura del sensor a un rango
analogWrite(9, map(sensorValue, 0, 1023, 0, 255));
delay(100); // esperar 100 mili segundos
}

También podría gustarte