Hola, alguien sabe como hacer el desplazamiento vertical en arduino en ide sin librerias externas adjunto codigo de desplazamiento horizontal
int times = 10;
int D = 0;
int K = 0;
byte I[22]={255,255,255, 60, 60, 0, 0, 60, 60, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte T[22]={255,255,255, 252, 252, 0, 0, 252, 252, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte V[22]={255,255,225, 199, 159, 63, 63, 159, 199, 225,255,255,255,255,255,255,255,255,255,255,255,255};
byte F[22]={255,255,255, 0, 0, 228, 228, 252, 255, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte S[22]={255,255,255, 49, 36, 36, 36, 140, 255, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte CC[22]={255,255,255, 129, 0, 60, 60, 60, 24, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte H[22]={255,255,255, 0, 0, 231, 231, 0, 0, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte M[22]={255,255,0, 0, 249, 243, 243, 249, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255};
byte A[22]={255,255,255, 3, 1, 204, 204, 1, 3, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte N[22]={255,255,0, 0, 240, 227, 143, 31, 0, 0,255,255,255,255,255,255,255,255,255,255,255,255};
byte NN[20]={255,255,0, 0, 240, 227, 143, 31, 0, 0,255,255,255,255,255,255,255,255,255,255};
byte emo1[22]={255, 255, 255, 231, 231, 255, 255, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte emo2[22]={255, 255, 195, 219, 219, 195, 255, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte emo3[20]={255, 129, 145, 157, 157, 145, 129, 255,255,255,255,255,255,255,255,255,255,255,255,255};
byte emo4[20]={129, 110, 82, 94, 94, 82, 110, 129,255,255,255,255,255,255,255,255,255,255,255,255};
void setup() {
DDRD = B11111111;
for (int x=9;x<19;x++){
pinMode(x,OUTPUT);
}
}
void loop() {
ITV();
//itv();
fischmann();
emoji();
}
void ITV(){
delay(1000);
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = I[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = T[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = V[D+chars];
}
}
}
}
void fischmann(){
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = F[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = I[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = S[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = CC[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = H[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = M[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = A[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = N[D+chars];
}
}
}
for(int chars=0;chars<8;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = NN[D+chars];
}
}
}
}
void emoji(){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
PORTD = emo1[D];
D++;if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
}
}
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
PORTD = emo2[D];
D++;if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
}
}
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
PORTD = emo3[D];
D++;if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
}
}
for(int reps=0;reps<100;reps++){
for(int C=8;C<16;C++){
PORTD = emo4[D];
D++;if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
}
}
}
void itv(){
DDRD = B00000000;
for (int x=9;x<19;x++){
pinMode(x,INPUT);
}
delay(1000);
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = I[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = T[D+chars];
}
}
}
for(int chars=0;chars<10;chars++){
for(int reps=0;reps<times;reps++){
for(int C=8;C<16;C++){
D++; if(D>7){D=0;}
digitalWrite(C,HIGH);
delay(1);
digitalWrite(C,LOW);
PORTD = V[D+chars];
}
}
}
}