Les entrades digitals són interruptors, polsadors, sensors, qualsevol element que s'usi per controlar un element de sortida com un motor o un LED. digitalRead dóna només dos valors, HIGH i LOW, ja que es tracta de senyals digitals.
Per veure com funciona, farem un contador binari amb 3 LEDs, contant de 0 a 7. Fes el muntatge següent:
- Tres leds als pins 6,7 i 8
- Un polsador al pin 13
Copieu el codi al IDE d'Arduino
void setup()
{
pinMode(13,INPUT_PULLUP);// polsador a la sortida
pinMode(6,OUTPUT);// es defineixen els 3 leds
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
}
void loop()
{
int val=0;// es defineix una variable que és la lectura del polsador
int x=0; // comptador de polsades del polsador
val=digitalRead(13); // es defineix l'entrada digital del poldador
if (val == HIGH) { // condició if, quan es pulsi el polsador, puja el comptador de pulsos
x=x + 1;
}
if (x == 8) { // quan el nombre de pulsos sigui 8, es reinicia
x=0;
}
if (((x == 1) || (x == 3)) || ((x == 5) || (x == 7))) { // si es compleixen aquestes 3 condicions, s'encen el led 6
digitalWrite(6,HIGH);
}else { // si no es compleixen el led s'apaga
digitalWrite(6,LOW);
}
if (((x == 2) || (x == 3)) || ((x == 6) || (x == 7))) {
digitalWrite(7,HIGH);
}else {
digitalWrite(7,LOW);
}
if (((x == 4) || (x == 5)) || ((x == 6) || (x == 7))) {
digitalWrite(8,HIGH);
}else {
digitalWrite(8,LOW);
}
delay(200);
}
- digitalRead(13): el polsador està a la variable 13. Per escursar el programa es renombra com a val.
- digitalWrite(6,LOW): hi ha les sortides digitals, en aquest cas la 6, que se li dona l'ordre LOW, apagat.
- if(x==4 || x==5 || x==6 || x==7) digitalWrite(8,HIGH): si el que hi ha dintre els parentesi, es cumpleix, es produeix la instrucció que ve després, en aquest cas encen la sortida 8 (HIGH)
- else {digitalWrite(8,LOW): si no es compleix la instrucció if, es cumpleix el que hi ha a l'ordre else, en aquest cas apaga la sortida 8 (LOW)
Posa un quart LED de manera que es pugui comptar fins a 15
Cap comentari:
Publica un comentari a l'entrada