Помощь новичку с led кубом 3х3х3

Нет ответов
mkvmaks
Offline
Зарегистрирован: 07.07.2013

Есть куб 3х3х3. В качестве обучения хотелось  написать функцию, которая проходила бы по  каждому светодиоду и применяла бы эффект затухания через шим.

int led9=11;  // транзистор (столбец)
int led10=12; // транзистор (столбец)
int led11=13; // транзистор (столбец)

int led0 = 2;
int led1= 3;
int led2= 4;
int led3= 5;
int led4= 6;
int led5= 7;
int led6= 8;
int led7= 9;
int led8= 10;

int x,y,z=0;

int b = 0;



void setup ()
{
    Serial.begin(9600);
    pinMode(led0, OUTPUT); 
    pinMode(led1, OUTPUT); 
    pinMode(led2, OUTPUT); 
    pinMode(led3, OUTPUT); 
    pinMode(led4, OUTPUT); 
    pinMode(led5, OUTPUT); 
    pinMode(led6, OUTPUT); 
    pinMode(led7, OUTPUT); 
    pinMode(led8, OUTPUT); 
    
    pinMode(led9, OUTPUT); 
    pinMode(led10, OUTPUT); 
    pinMode(led11, OUTPUT); 
    
}


void loop (){
for (x=0; x<2; x++){
  for (y=0; y<2; y++){
    for (z=0; z<2; z++){
     b=128;     
     xyzb(x,y,z,128); }
     
  }
}


}

int xyzb (int x, int y,int z,int b)
{
  int result = 0;
     digitalWrite(led0,0); 
     digitalWrite(led1, 0); 
     digitalWrite(led2, 0); 
     digitalWrite(led3, 0); 
     digitalWrite(led4, 0); 
     digitalWrite(led5, 0); 
     digitalWrite(led6, 0); 
     digitalWrite(led7, 0); 
     digitalWrite(led8, 0); 
     
     digitalWrite(led9, 0); 
     digitalWrite(led10, 0); 
     digitalWrite(led11, 0); 


  if ((x=0) & (y=0) & (z=0)) {digitalWrite(led0,1);}  
  if ((x=1) & (y=0) & (z=0)) {digitalWrite(led1,1);} 
  if ((x=2) & (y=0) & (z=0)) {digitalWrite(led2,1);} 
  if ((x=0) & (y=1) & (z=1)) {digitalWrite(led3,1);} 
  if ((x=1) & (y=1) & (z=1)) {digitalWrite(led4,1);} 
  if ((x=2) & (y=1) & (z=1)) {digitalWrite(led5,1);} 
  if ((x=0) & (y=2) & (z=2)) {digitalWrite(led6,1);} 
  if ((x=1) & (y=2) & (z=2)) {digitalWrite(led7,1);} 
  if ((x=2) & (y=2) & (z=2)) {digitalWrite(led8,1);} 
  
  if (z=0) {analogWrite(led9,128);}
  if (z=1) {analogWrite(led10,128);}
  if (z=2) {analogWrite(led11,128);}
  
  result=0;   
  return x,y,z,b ;
}