Не могу понять как задать смену матриц с помощью потенциометра
- Войдите на сайт для отправки комментариев
Сб, 28/05/2016 - 19:42
Нужно задать смену светодиодных матриц с пощью потенциометра. Не могу понять как сделать смену матриц.
вот код
#define TEST { \
{0, 1, 0, 1, 0, 0, 0, 1}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0} \
}
#define TEST2 { \
{0, 0, 0, 1, 1, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0}, \
{0, 0, 0, 0, 0, 0, 0, 0} \
}
byte col = 0;
byte leds[8][8];
int pins[17]= {-1, 5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6};
int cols[8] = {pins[13], pins[3], pins[4], pins[10], pins[06], pins[11], pins[15], pins[16]};
int rows[8] = {pins[9], pins[14], pins[8], pins[12], pins[1], pins[7], pins[2], pins[5]};
int pattern = 0;
const int numPatterns = 2;
byte patterns[numPatterns][8][8] = {
TEST2,TEST
};
void setup(){
for (int i = 1; i <= 16; i++) {
pinMode(pins[i], OUTPUT);
}
setPattern(pattern);
}
void setPattern(int pattern) {
for (int i = 0; i < 8; i++) {
for (int j = 0; j < 8; j++) {
leds[i][j] = patterns[pattern][i][j];
}
}
}
void loop(){
display();
pattern = ++pattern % numPatterns;
}
void display() {
digitalWrite(cols[col], HIGH);
col++;
if (col == 8) {
col = 0;
}
for (int row = 0; row < 8; row++) {
if (leds[col][7 - row] == 1) {
digitalWrite(rows[row], HIGH);
}
else {
digitalWrite(rows[row], LOW);
}
}
digitalWrite(cols[col], LOW);
}