Professional Documents
Culture Documents
com/como-expandir-los-pines-de-arduino/
el
problema de no tener pines para conectarlo
todo
registro de desplazamiento
74HC595N
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(){
voidloop(){
intdato=3//Podramoshaberhechointdato=B00000011
digitalWrite(Pin_activacion,HIGH);
shiftOut(Pin_datos,Pin_reloj,LSBFIRST,dato);
digitalWrite(Pin_activacion,LOW);
delay(500);
}
Nota:
//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