Помощь новичку с led кубом 3х3х3
- Войдите на сайт для отправки комментариев
Ср, 04/03/2015 - 21:47
Есть куб 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 ; }