Can't find the bug(s?)
hello.
i attempting program led cube, controlled ir.
the cube 7x7x7.
the column starts @ 0. goes 48. column 1, 20 , 21 high. not supposed high.
i appreciate if take swift obvious bugs.
i've used i/o 0-48, 50, , a0-a6.
the first half of code:
thank you.
i attempting program led cube, controlled ir.
the cube 7x7x7.
the column starts @ 0. goes 48. column 1, 20 , 21 high. not supposed high.
i appreciate if take swift obvious bugs.
i've used i/o 0-48, 50, , a0-a6.
the first half of code:
code: [select]
//////////////////////////////////////////////////////////////////////////////////////////
// a. slettevold // led cube // 7x7x7 & 2x2x2 // qb ub // don't directly @ // //
/////////////////////////////////////// include //////////////////////////////////////////
#include "irremote.h" //
/////////////////////////////////////// konstanter ///////////////////////////////////////
int receiver = 50;
double kol[49] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48};
byte lag[7] = {a0, a1, a2, a3, a4, a5, a6};
/////////////////////////////////////// objekter /////////////////////////////////////////
irrecv irrecv(receiver);
decode_results results;
/////////////////////////////////////// variabler ////////////////////////////////////////
int sisteir = 0;
int tidsvariabel = 95;
//int teller = 0; not nececary
//int x = 0; not nececary
//int y = 0; not nececary
int minne = 0; //pausing
int katalogir = 0; //neste/forrige (next/past program)
int tilfeldigprogram = 0;
int tilfeldiggjentagelse = 0;
int tilfeldigdelay = 0;
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// setup ////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void setup(){
//serial.begin(9600);
irrecv.enableirin(); // start receiver
pinmode(kol[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48], output);
pinmode(lag[a0, a1, a2, a3, a4, a5, a6], output);
}
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// loop /////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void loop(){
if (irrecv.decode(&results)) // have received ir signal?
{
//serial.println(results.value, hex);
translateir();
irrecv.resume(); // receive next value
}
visprogram();
if(katalogir == 1){sisteir--;katalogir = 0;}
if(katalogir == 2){sisteir++;katalogir = 0;}
}
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// translateir //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void translateir(){
switch(results.value){
case 0xfd10ef:
serial.println(" ch- "); //ble tilbake programmer
slukklyset();
katalogir = 1;
break;
case 0xff629d:
serial.println(" ch ");
slukklyset();
sisteir = 1;
break;
case 0xfd50af:
serial.println(" ch+ "); //ble fram programmer
slukklyset();
katalogir = 2;
break;
case 0xff22dd:
serial.println(" prev ");
slukklyset();
sisteir = 4;
break;
case 0xff02fd:
serial.println(" next ");
slukklyset();
sisteir = 5;
break;
case 0xfda05f:
serial.println(" play/pause ");
if(minne == 0){minne = sisteir;sisteir = 0;}
else if(minne > 0){sisteir = minne;minne = 0;}
break;
case 0xfd906f:
serial.println(" vol- ");
slukklyset();
sisteir = 7;
break;
case 0xfd807f:
serial.println(" vol+ ");
slukklyset();
sisteir = 8;
break;
case 0xfdb04f:
serial.println(" eq ");
slukklyset();
sisteir = 9;
break;
case 0xfd30cf:
serial.println(" 0 ");
slukklyset();
sisteir = 10;
break;
case 0xfd609f:
serial.println(" |<< ");
if (tidsvariabel >= 92){tidsvariabel = tidsvariabel + 1;}
if(tidsvariabel <= 91){tidsvariabel = tidsvariabel + 5;}
if(tidsvariabel >= 100){tidsvariabel = 99;}
serial.println(tidsvariabel);
break;
case 0xfd20df:
serial.println(" >>| ");
if(tidsvariabel >= 92){tidsvariabel = tidsvariabel - 1;}
if(tidsvariabel <= 91){tidsvariabel = tidsvariabel - 5;}
if(tidsvariabel < 50){tidsvariabel = 50;}
serial.println(tidsvariabel);
break;
case 0xfd08f7:
serial.println(" 1 ");
slukklyset();
sisteir = 13;
break;
case 0xfd8877:
serial.println(" 2 ");
slukklyset();
sisteir = 14;
break;
case 0xfd48b7:
serial.println(" 3 ");
slukklyset();
sisteir = 15;
break;
case 0xfd28d7:
serial.println(" 4 ");
slukklyset();
sisteir = 16;
break;
case 0xfda857:
serial.println(" 5 ");
slukklyset();
sisteir = 17;
break;
case 0xfd6897:
serial.println(" 6 ");
slukklyset();
sisteir = 18;
break;
case 0xfd18e7:
serial.println(" 7 ");
slukklyset();
sisteir = 19;
break;
case 0xfd9867:
serial.println(" 8 ");
slukklyset();
sisteir = 20;
break;
case 0xfd58a7:
serial.println(" 9 ");
slukklyset();
sisteir = 21;
break;
default:
//serial.println(results.value, hex);
break;
}
}
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// visprogram ///////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void visprogram(){
switch(sisteir){
case 17:
program1(tidsvariabel);
break;
case 18:
lysshow();
break;
case 19:
program2(tidsvariabel);
break;
case 20:
program4(tidsvariabel);
break;
case 21:
program3(tidsvariabel);
break;
}
}
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// testirdelay //////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void testirdelay(int teller){
while(teller < 100){ // teller < timer
if (irrecv.decode(&results)){translateir();break;}
teller++;
if (teller >= 100){break;}
}
}
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// slukklyset ///////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void slukklyset(){
for(int l=0; l<7; l++){digitalwrite(lag[l], low);}
for(int k=0; k<49; k++){digitalwrite(kol[k], low);}
}
thank you.
code: [select]
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// lysshow //////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void lysshow(){
tilfeldigprogram = random(1, 4); //forandre ettersom antall programmer
tilfeldiggjentagelse = random(1, 10);
while(tilfeldiggjentagelse < 15){
tilfeldigdelay = random(80, 100);
switch(tilfeldigprogram){
case 1:
program1(tilfeldigdelay);
break;
case 2:
program2(tilfeldigdelay);
break;
case 3:
program3(tilfeldigdelay);
break;
case 4:
program4(tilfeldigdelay);
break;
}
tilfeldiggjentagelse++;
}
}
//////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////// program //////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////
void program2(int tilfeldigdelay){
if(sisteir == 18){tidsvariabel = tilfeldigdelay;}
/* for(int x=0; x<7; x++){
digitalwrite(lag[x], high);
for(int y=0; y<49; y++){
digitalwrite(kol[y], high);
testirdelay(98);
digitalwrite(kol[y], low);
}
digitalwrite(lag[x], low);
}*/
}
void program3(int tilfeldigdelay){
if(sisteir == 18){tidsvariabel = tilfeldigdelay;}
/*digitalwrite(lag[x], high);
digitalwrite(kol[y], high);
if(x >= 1){x = 0;}
else if(x < 0){x = 0;}
else {x++;}
if(y >= 3){y = 0;}
else if(y < 0){y = 0;}
else {y++;}
digitalwrite(kol[y], low);
digitalwrite(lag[x], low);
testirdelay(tidsvariabel);*/
}
void program1(int tilfeldigdelay){
if(sisteir == 18){tidsvariabel = tilfeldigdelay;}
for(int x=0; x<7; x++){digitalwrite(lag[x], high);}
//digitalwrite(kol[0], high);
//testirdelay(tidsvariabel);
//digitalwrite(kol[0], low);
for(int x=0; x<7; x++){digitalwrite(lag[x], low);}
}
/*void program4(int tilfeldigdelay){
if(sisteir == 18){tidsvariabel = tilfeldigdelay;}
for(int x=0; x<7; x++){
digitalwrite(lag[x], high);
for(int y=0; y<49; y++){digitalwrite(kol[y], high);}
//testirdelay(100);
delaymicroseconds(1250);
digitalwrite(lag[x], low);
for(int y=0; y<49; y++){digitalwrite(kol[y], low);}
//digitalwrite(lag[x], low);
}
}*/
void program4(int tilfeldigdelay){
if(sisteir == 18){tidsvariabel = tilfeldigdelay;}
for(int x=0; x<7; x++){
digitalwrite(lag[x], high);
for(int y=0; y<49; y++){digitalwrite(kol[y], high);}
//testirdelay(100);
//delaymicroseconds(1250);
for(int y=0; y<49; y++){digitalwrite(kol[y], low);}
digitalwrite(lag[x], low);
}
}
Arduino Forum > Using Arduino > Programming Questions > Can't find the bug(s?)
arduino
Comments
Post a Comment