dimarts, 26 de febrer del 2013

Curs de nadal

Aqui teniu el dossier en pdf.

https://docs.google.com/file/d/0B9Uffn97VTGEX3JlZThBV2U3MEU/edit?usp=sharing

Control dels Led's de la Motor Driver Shield

Encendre un led amb un polsador.


Material:


Podem escollir entre el led de la sortida 8 o 9 (jo ho fare amb els 2).



Definim els leds al principi del programa:





Ara definim el polsador i una variable per guardar l'estat del polsador:





Fixeu-vos que en la variable "estat" no forcem cap número perquè serà el que llegim del polsador. En els altres casos si que forcem un valor perquè és el número de la sortida que li correspon.


Ara hem declarat les variables i ara les configurarem. El Arduino no és "intel · ligent" només fa càlculs, de manera que li hem de dir per cada variable si és sortida (OUTPUT) o entrada (INPUT):

void setup()
{
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(pulsador,INPUT);
}


Els 2 leds els declarem com sortides (OUTPUT) perquè donen informació a l'exterior, però en canvi el polsador el declarem com a entrada (INPUT) perquè ens dóna informació a nosaltres (ON / OFF).

Nota: La variable "estat" no cal configurar al "void setup ()" perquè és només una variable en una posició de memòria en què guardarem el valor que llegim del polsador.

Ara anem a començar el porgrama de veritat, el nostre "Main", la part principal. Per això farem servir una funció pre-programada anomenada "loop", que ens repetirà indefinidament tot el que li escriguem dins.



void loop()
{
AQUI ANIRA EL NOSTRE PROGRAMA

}


Anem a aprendre a utilitzarel comando "digitalRead ()". S'usa per llegir una entrada (INPUT) digital, ens donarà un valor alt (HIGH) o baix (LOW), per a això hem d'escriure:





Amb això li diem que llegeixi la variable "polsador" i que ens guardi aquest valor a la variable "estat".

Com ja tenim el valor guardat a "estat", ara podem començar a treballar amb ell.

Per apagar i encendre els leds utilitzarem la condició "if" i "else":


if(CONDICIÓ)

{
EL QUE FARA SI ES CUMPLEIX LA CONDICIÓ
}
else
{
EL QUE FARA SI NO ES CUMPLEIX LA CONDICIÓ
}

Al final el "loop" ens quedara així:

void loop()
{
estat=digitalRead(pulsador);
if(estat==HIGH)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
}
else
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
}
}



Programa complet:

int led1=8;
int led2=9;
int pulsador=7;
int estat;

void setup()
{
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(pulsador,INPUT);
}

void loop()
{
estat=digitalRead(pulsador);
if(estat==HIGH)
{
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
}
else
{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
}
}