10
1 E&P SAREA - RED Adibide honetan, sarrera aldagai berri kotxeak alerta-egoera batean egon dad Behin etengailua sakatuta, kliska egite bitartean, berriz ere pultsadorea sakatu En este ejemplo introduciremos una nu LEDs. Con el fin que nuestro coche se m accione un LED siempre se mantenga e mientras el que está a su lado se activar KONEXIORAKO PLANOA | PLAN D E&C | ARDUINO 3 bat sartuko dugu (INPUT) LED argiak aktibatzen gait din, LED argi bat beti kliskatuta egongo da pultsadore en zegoen argia guztiz piztuko da bere ondorengoa u arte. ueva variable de entrada (INPUT) que será el encargad mantenga siempre en estado de alerta, dejaremos que en estado de parpadeo. Una vez se pulse el botón, s rá en espera de accionar nuevamente el pulsador y as NO DE CONEXIONE S tasuna izango duena. Gure ea sakatu ez den bitartean. a kliska egoera jartzen den do de activar/desactivar los e mientras el pulsador no se se encenderá por completo sí sucesivamente.

E&P SAREA - RED E&C | ARDUINO 3

Embed Size (px)

DESCRIPTION

Adibide honetan, sarrera aldagai berri bat sartuko dugu (INPUT) LED argiak aktibatzen gaitasuna izango duena. Gure kotxeak alerta-egoera batean egon dadin, LED argi bat beti kliskatuta egongo da pultsadorea sakatu ez den bitartean. Behin etengailua sakatuta, kliska egiten zegoen argia guztiz piztuko da bere ondorengoa kliska egoera jartzen den bitartean, berriz ere pultsadorea sakatu arte. En este ejemplo introduciremos una nueva variable de entrada (INPUT) que será el encargado de activar/desactivar los LEDs. Con el fin que nuestro coche se mantenga siempre en estado de alerta, dejaremos que mientras el pulsador no se accione un LED siempre se mantenga en estado de parpadeo. Una vez se pulse el botón, se encenderá por completo mientras el que está a su lado se activará en espera de accionar nuevamente el pulsador y así sucesivamente.

Citation preview

Page 1: E&P SAREA - RED E&C | ARDUINO 3

1 E&P SAREA - RED E&C

Adibide honetan, sarrera aldagai berri bat sartuko dugu (INPUT) LED argiak aktibatzen gaitasuna izango duena.

kotxeak alerta-egoera batean egon dadin, LED argi bat beti kliskatuta egongo da pultsadorea sakatu ez den bitartean.

Behin etengailua sakatuta, kliska egiten zegoen argia guztiz piztuko da bere ondorengoa kliska egoera jartzen den

bitartean, berriz ere pultsadorea sakatu arte.

En este ejemplo introduciremos una nueva variable de entrada (INPUT) que será el encargado de activar/desactivar los

LEDs. Con el fin que nuestro coche se mantenga siempre en estado de alerta, dejaremos que mientras el pulsador no se

accione un LED siempre se mantenga en estado de parpadeo. Una vez se pulse el botón, se encenderá por completo

mientras el que está a su lado se activará en espera de accionar nuevamente el pulsador y así sucesivamente.

KONEXIORAKO PLANOA | PLANO DE CONEXIONE

RED E&C | ARDUINO 3

Adibide honetan, sarrera aldagai berri bat sartuko dugu (INPUT) LED argiak aktibatzen gaitasuna izango duena.

egoera batean egon dadin, LED argi bat beti kliskatuta egongo da pultsadorea sakatu ez den bitartean.

in etengailua sakatuta, kliska egiten zegoen argia guztiz piztuko da bere ondorengoa kliska egoera jartzen den

bitartean, berriz ere pultsadorea sakatu arte.

En este ejemplo introduciremos una nueva variable de entrada (INPUT) que será el encargado de activar/desactivar los

LEDs. Con el fin que nuestro coche se mantenga siempre en estado de alerta, dejaremos que mientras el pulsador no se

se mantenga en estado de parpadeo. Una vez se pulse el botón, se encenderá por completo

mientras el que está a su lado se activará en espera de accionar nuevamente el pulsador y así sucesivamente.

| PLANO DE CONEXIONES

Adibide honetan, sarrera aldagai berri bat sartuko dugu (INPUT) LED argiak aktibatzen gaitasuna izango duena. Gure

egoera batean egon dadin, LED argi bat beti kliskatuta egongo da pultsadorea sakatu ez den bitartean.

in etengailua sakatuta, kliska egiten zegoen argia guztiz piztuko da bere ondorengoa kliska egoera jartzen den

En este ejemplo introduciremos una nueva variable de entrada (INPUT) que será el encargado de activar/desactivar los

LEDs. Con el fin que nuestro coche se mantenga siempre en estado de alerta, dejaremos que mientras el pulsador no se

se mantenga en estado de parpadeo. Una vez se pulse el botón, se encenderá por completo

mientras el que está a su lado se activará en espera de accionar nuevamente el pulsador y así sucesivamente.

Page 2: E&P SAREA - RED E&C | ARDUINO 3

2 E&P SAREA - RED E&C

BREADBOARD GAINEKO ESKEMA | ESQUEMA DEL

PROGRAMAZIO KODEA | CÓDIGO DE PROGRAMACI

// Argi jokoa 3 - Kotxe fantastikoa

// gelditu arte, ondorengoa kliskatu egoera hasten den einean.

// LED argiak izango dira eta algaezin egingo ditugu “const” erabiliz.

const int ROJO = 11;

const int AMBAR = 10;

const int VERDE = 9;

const int BLANCO = 6;

RED E&C | ARDUINO 3

SKEMA | ESQUEMA DEL MONTAJE SOBRE BREADB

CÓDIGO DE PROGRAMACIÓN

fantastikoa – argia kliskatu egoera batean mantendu pultsarea sakatu arte, fijo

// gelditu arte, ondorengoa kliskatu egoera hasten den einean.

LED argiak izango dira eta algaezin egingo ditugu “const” erabiliz.

MONTAJE SOBRE BREADBOARD

argia kliskatu egoera batean mantendu pultsarea sakatu arte, fijo

Page 3: E&P SAREA - RED E&C | ARDUINO 3

3 E&P SAREA - RED E&C

const int PULSADOR = 12;

void setup()

{

pinMode(ROJO, OUTPUT); // pinMode pin bat sarrera edo irteera moduan definitzen duen funtzioa da.

pinMode(BLANCO, OUTPUT); //

(sarrera)/OUTPUT

pinMode(VERDE, OUTPUT);

pinMode(BLANCO, OUTPUT);

pinMode(PULSADOR, INPUT);

}

void loop()

{

int Pulso;

int Veces=0; // Erabiliko ditugun aldagaiak

int Vuelta = 300; // klikatu denbora definitu

digitalWrite(ROJO, LOW); // Lehendabizi LED argi guztiak itzalita utziko ditugu.

digitalWrite(AMBAR, LOW);

digitalWrite(VERDE, LOW);

digitalWrite(BLANCO, LOW);

delay(10);

RED E&C | ARDUINO 3

pinMode pin bat sarrera edo irteera moduan definitzen duen funtzioa da.

); // pinMode(zein pinaren gainean aritu nahi dugun, INPUT

); // (irteera)

ditugun aldagaiak

katu denbora definitu

Lehendabizi LED argi guztiak itzalita utziko ditugu.

pinMode pin bat sarrera edo irteera moduan definitzen duen funtzioa da.

pinMode(zein pinaren gainean aritu nahi dugun, INPUT

Page 4: E&P SAREA - RED E&C | ARDUINO 3

4 E&P SAREA - RED E&C

while(Veces < 5) // whilefuntzioa Veces <5 aginpean burutu egingo den sekuentzia da.

//”Veces” pultsadoreak zenbat aldiz sakatu den hartzen du

{

Pulso = digitalRead(PULSADOR);

if (Pulso == LOW) //

{Veces = Veces + 1;} // "Veces" aldagaiari

//

//

// Baina… Noiz bukatuko da “While” funtzioa?

//(adibidez “Veces” = 5, 6…). Hau gertatu e

//ez da irakurriko.

// "switch" eta "if" antzekoak dira, baino “switch” kasu gehiago hartzen ditu

// aldagaia izango da kasua erabakitzeko balioa. Hau da, “Veces”

// “Veces”-ren balioa izango da kasua, “While”

switch(Veces)

{

case 0:

delay(Vuelta);

break;

RED E&C | ARDUINO 3

funtzioa Veces <5 aginpean burutu egingo den sekuentzia da.

”Veces” pultsadoreak zenbat aldiz sakatu den hartzen du

(PULSADOR); // Aurrekoaren verdina, baina “Pulso” aldagaia sortu da non

//guardar el valor leido del pulsador 2.

// Bigarren pultsagailua sakatu ezkero…

;} // "Veces" aldagaiari 1 gehituko diogu. Lehenengo aldian

// "Veces = 0 + 1" egingo du. Bigarrenean “Veces” 1 izango da, orduan

// "Veces = 1 + 1" egitean “Veces” 2 izango da.

Noiz bukatuko da “While” funtzioa?"Veces" 5 baino txikiagoa ez denean gertatuko da

= 5, 6…). Hau gertatu ezkero, “While” funtzioaren barnean dagoen programa

eta "if" antzekoak dira, baino “switch” kasu gehiago hartzen ditu. Parente

// aldagaia izango da kasua erabakitzeko balioa. Hau da, “Veces” 0 baldin bada, “Case 0:” irakurriko du.

ren balioa izango da kasua, “While”-aren baldintza gezurra izan arte.

funtzioa Veces <5 aginpean burutu egingo den sekuentzia da.

Aurrekoaren verdina, baina “Pulso” aldagaia sortu da non

egingo du. Bigarrenean “Veces” 1 izango da, orduan

5 baino txikiagoa ez denean gertatuko da

zkero, “While” funtzioaren barnean dagoen programa

Parentesisan dagoen

0 baldin bada, “Case 0:” irakurriko du.

Page 5: E&P SAREA - RED E&C | ARDUINO 3

5 E&P SAREA - RED E&C

case 1:

digitalWrite(ROJO, HIGH); // Piztu eta itzaltzeko kodea

delay(Vuelta);

digitalWrite(ROJO, LOW);

delay(Vuelta);

break;

case 2:

digitalWrite(ROJO, HIGH);

digitalWrite(AMBAR, HIGH);

delay(Vuelta);

digitalWrite(AMBAR, LOW);

delay(Vuelta);

break;

case 3:

digitalWrite(ROJO, HIGH); // LED Gorria eta ambarra piztuta egongo dira eta verdea kliska egingo du.

digitalWrite(AMBAR, HIGH);

digitalWrite(VERDE, HIGH

delay(Vuelta);

digitalWrite(VERDE, LOW);

delay(Vuelta);

break;

case 4:

digitalWrite(ROJO, HIGH);

RED E&C | ARDUINO 3

Piztu eta itzaltzeko kodea (kliska), “Vuelta” denbora igarotuz.

);// LED Gorria piztuta utziko du eta ambarra kliska egingo du.

LED Gorria eta ambarra piztuta egongo dira eta verdea kliska egingo du.

HIGH);

); // Zuria kliska egingo du eta besteak piztuta egongo dira.

, “Vuelta” denbora igarotuz.

ambarra kliska egingo du.

LED Gorria eta ambarra piztuta egongo dira eta verdea kliska egingo du.

Zuria kliska egingo du eta besteak piztuta egongo dira.

Page 6: E&P SAREA - RED E&C | ARDUINO 3

6 E&P SAREA - RED E&C

digitalWrite(AMBAR, HIGH

digitalWrite(VERDE, HIGH

digitalWrite(BLANCO, HIGH

delay(Vuelta);

digitalWrite(BLANCO, LOW

delay(Vuelta);

break;

}

}

delay(Vuelta); // Atseden denbora

}

// Juego de luces 3 – Coche Fantastico

// comience el parpadeo de la inmediatamente después.

//Asignacion de los LED's como constantes "const" para que no puedan cambiar.

const int ROJO = 11;

const int AMBAR = 10;

const int VERDE = 9;

const int BLANCO = 6;

const int PULSADOR = 12;

void setup()

{

pinMode(ROJO, OUTPUT); // pinMode es una función que define un pin como entrada o salida.

pinMode(BLANCO, OUTPUT); //

pinMode(VERDE, OUTPUT); //

RED E&C | ARDUINO 3

HIGH);

HIGH);

HIGH);

LOW);

// Atseden denbora

Coche Fantastico – parpadeo de una luz hasta que el pulsador la deje fija y

// comience el parpadeo de la inmediatamente después.

como constantes "const" para que no puedan cambiar.

// pinMode es una función que define un pin como entrada o salida.

); //Ponemos pinMode( [el pin sobre el que queremos actuar], INPUT

//(entrada) / OUTPUT (salida)

parpadeo de una luz hasta que el pulsador la deje fija y

// pinMode es una función que define un pin como entrada o salida.

Ponemos pinMode( [el pin sobre el que queremos actuar], INPUT

Page 7: E&P SAREA - RED E&C | ARDUINO 3

7 E&P SAREA - RED E&C

pinMode(BLANCO, OUTPUT);

pinMode(PULSADOR, INPUT);

}

void loop()

{

int Pulso;

int Veces=0; // Variables que vamos a utilizar.

int Vuelta = 300; // Tiempo de parpadeo

digitalWrite(ROJO, LOW); // Primero dejamos todos los LED's

digitalWrite(AMBAR, LOW);

digitalWrite(VERDE, LOW);

digitalWrite(BLANCO, LOW);

delay(10);

while(Veces < 5) // El ciclo while

//condición (este caso que "Veces" sea menor a 5)sea cierta. La variable

//"Veces" recoje las veces que se ha pulsado un pulsador.

{

Pulso = digitalRead(PULSADOR);

if (Pulso == LOW) // Si pulsamos el pulsador 2.

{Veces = Veces + 1;} // A "Veces" le sumamos 1. La primera vez, como empieza de 0, hace

RED E&C | ARDUINO 3

// Variables que vamos a utilizar.

// Tiempo de parpadeo

// Primero dejamos todos los LED's apagados

while funciona de tal manera que al hacer una acción mientras la

condición (este caso que "Veces" sea menor a 5)sea cierta. La variable

"Veces" recoje las veces que se ha pulsado un pulsador.

PULSADOR); // Lo mismo de antes, solo que creamos la variable "Pulso" para

//guardar el valor leido del pulsador 2.

// Si pulsamos el pulsador 2...

;} // A "Veces" le sumamos 1. La primera vez, como empieza de 0, hace

al hacer una acción mientras la

condición (este caso que "Veces" sea menor a 5)sea cierta. La variable

// Lo mismo de antes, solo que creamos la variable "Pulso" para

;} // A "Veces" le sumamos 1. La primera vez, como empieza de 0, hace

Page 8: E&P SAREA - RED E&C | ARDUINO 3

8 E&P SAREA - RED E&C

//

//

// Pero... ¿cuándo acaba el bucle "while"? Esto se da cuando la condición que tiene (que "Veces"

//sea menor a 5) no se cumpla

//salir de lo que tenga dentro (el "switch" con sus case).

// "switch" es muy parecido a "if", solo que contempla más casos. Depende de la variable "Veces".

//Esto significa que cuando "Veces" sea 0, el programa hará lo que ponga en "case 0:" y saldrá,

//cuando "Veces" sea 1, hará lo que mande case 1: y saldrá... Hasta que la condición del "while" sea

//falsa.

switch(Veces)

{

case 0:

delay(Vuelta);

break;

case 1:

digitalWrite(ROJO, HIGH); // Encender y apagar el LED Rojo con un retardo.

delay(Vuelta);

digitalWrite(ROJO, LOW);

delay(Vuelta);

break;

RED E&C | ARDUINO 3

// "Veces = 0 + 1", la segunda vuelta, "Veces" será igual a 1por lo tanto,

// hará "Veces = 1 + 1", y tomará el valor 2.

// Pero... ¿cuándo acaba el bucle "while"? Esto se da cuando la condición que tiene (que "Veces"

sea menor a 5) no se cumpla(por ejemplo en "Veces" = 5, 6...). Lo que hace es inmediatamente

salir de lo que tenga dentro (el "switch" con sus case).

// "switch" es muy parecido a "if", solo que contempla más casos. Depende de la variable "Veces".

significa que cuando "Veces" sea 0, el programa hará lo que ponga en "case 0:" y saldrá,

//cuando "Veces" sea 1, hará lo que mande case 1: y saldrá... Hasta que la condición del "while" sea

// Encender y apagar el LED Rojo con un retardo.

"Veces = 0 + 1", la segunda vuelta, "Veces" será igual a 1por lo tanto,

// Pero... ¿cuándo acaba el bucle "while"? Esto se da cuando la condición que tiene (que "Veces"

(por ejemplo en "Veces" = 5, 6...). Lo que hace es inmediatamente

// "switch" es muy parecido a "if", solo que contempla más casos. Depende de la variable "Veces".

significa que cuando "Veces" sea 0, el programa hará lo que ponga en "case 0:" y saldrá,

//cuando "Veces" sea 1, hará lo que mande case 1: y saldrá... Hasta que la condición del "while" sea

Page 9: E&P SAREA - RED E&C | ARDUINO 3

9 E&P SAREA - RED E&C

case 2:

digitalWrite(ROJO, HIGH);

digitalWrite(AMBAR, HIGH);

delay(Vuelta);

digitalWrite(AMBAR, LOW);

delay(Vuelta);

break;

case 3:

digitalWrite(ROJO, HIGH); // Mantener el Rojo y Ambar y parpadear el Verde.

digitalWrite(AMBAR, HIGH);

digitalWrite(VERDE, HIGH

delay(Vuelta);

digitalWrite(VERDE, LOW);

delay(Vuelta);

break;

case 4:

digitalWrite(ROJO, HIGH);

digitalWrite(AMBAR, HIGH

digitalWrite(VERDE, HIGH

digitalWrite(BLANCO, HIGH

delay(Vuelta);

digitalWrite(BLANCO, LOW

delay(Vuelta);

break;

RED E&C | ARDUINO 3

); // Mantener encendido el LED Rojo y hacer parpadear el LED Ambar

// Mantener el Rojo y Ambar y parpadear el Verde.

HIGH);

); // Mantener, Rojo, Ambar y Verde y parpadear el Blanco.

HIGH);

HIGH);

HIGH);

LOW);

Mantener encendido el LED Rojo y hacer parpadear el LED Ambar.

// Mantener, Rojo, Ambar y Verde y parpadear el Blanco.

Page 10: E&P SAREA - RED E&C | ARDUINO 3

10 E&P SAREA - RED E&C

}

}

delay(Vuelta); // Reposo para que no

}

RED E&C | ARDUINO 3

// Reposo para que no salte inmediatamente.