You are on page 1of 4

Cmo expandir los pines de Arduino https://geekytheory.

com/como-expandir-los-pines-de-arduino/

el
problema de no tener pines para conectarlo
todo

registro de desplazamiento
74HC595N

ambos casos necesitamos slo 3 pines

shiftOut

valor entero

//PinconectadoalpinST_CPdel74HC595
#definePin_activacion9
//PinconnectadoalpinSH_CPdel74HC595
#definePin_reloj10
////PinconectadoalpinDSdel74HC595
#definePin_datos8

voidsetup(){
pinMode(Pin_activacion,OUTPUT);
pinMode(Pin_reloj,OUTPUT);
pinMode(Pin_datos,OUTPUT);
}

voidloop(){

1 de 4 intdato=3//Podramoshaberhechointdato=B00000011 24/7/17 15:59


Cmo expandir los pines de Arduino https://geekytheory.com/como-expandir-los-pines-de-arduino/

voidloop(){

intdato=3//Podramoshaberhechointdato=B00000011
digitalWrite(Pin_activacion,HIGH);

shiftOut(Pin_datos,Pin_reloj,LSBFIRST,dato);

digitalWrite(Pin_activacion,LOW);

delay(500);
}

Nota:

MSBFIRST (big endian)

//Definimoslospinesdenuestroregistro
#definelatch_pin9
#definedata_pin8
#defineclock_pin10

//Configuramoslospinescomosalidas
voidsetup(){
for(intn=8;n<11;n++)pinMode(n,OUTPUT);
2 de 4 } 24/7/17 15:59
Cmo expandir los pines de Arduino https://geekytheory.com/como-expandir-los-pines-de-arduino/

//Configuramoslospinescomosalidas
voidsetup(){
for(intn=8;n<11;n++)pinMode(n,OUTPUT);
}

voidloop(){
//Bucleparaactivarlasecuencia
for(intsec=0;sec<8;sec++){
digitalWrite(latch_pin,HIGH);
shiftOut(data_pin,clock_pin,MSBFIRST,animacion(sec));
delay(50);
digitalWrite(latch_pin,LOW);
}
}

//Lafuncindevuelveunnumerobinarioquesecorrespondeconnuestra
//animacinencadamomentodelasecuencia
intanimacion(intsec_){
intframe=0;
switch(sec_){
case0:frame=B00000001;
break;
case1:frame=B00000010;
break;
case2:frame=B01000000;
break;
case3:frame=B00010000;
break;
case4:frame=B00001000;
break;
case5:frame=B00000100;
break;
case6:frame=B01000000;
break;
case7:frame=B00100000;
break;
}
returnframe;
}

#definelatch_pin9
#definedata_pin8
#defineclock_pin10

voidsetup(){
for(intn=8;n<11;n++)pinMode(n,OUTPUT);
}

//MapeoA,B,C,D,E,F,G,H
intuno[]={0,1,1,0,0,0,0,0};
intdos[]={1,1,0,1,1,0,1,1};

voidloop(){

digitalWrite(latch_pin,HIGH);
shiftOut(data_pin,clock_pin,MSBFIRST,AdaptacionMapeo(dos));
delay(50);
digitalWrite(latch_pin,LOW);

}
3 de 4 24/7/17 15:59
Cmo expandir los pines de Arduino https://geekytheory.com/como-expandir-los-pines-de-arduino/

delay(50);
digitalWrite(latch_pin,LOW);

}

intAdaptacionMapeo(int*num){
intresultado=0;
for(intcifra=0;cifra<8;cifra++){
intex=1;
for(intexp=0;exp<cifra;exp++){
ex*=2;
}
resultado+=num[cifra]*ex;
}
returnresultado;
}

4 de 4 24/7/17 15:59

You might also like