(adicionei na mensagem original a datasheet da matrix)Desculpa mas não o encontro, poderias postar aqui um link?! Obrigado
Não se esqueçam dos pull downs, eu esqueci-me e o led verde ficou laranja.. feito estúpido fui testar o vermelho.. puff ardeu, já tenho um dos leds verdes queimados :lol:
A minha sorte é que tinha comprado a matrix
visto que fui excluido deste passatempo sem saber exactamente qual a razão.. só me resta ficar à espera das vossas conclusões e tutoriais :P
É verdade, por cada led queimado, é um dia de penalização eheheheeh!haha tenho que me despachas que já estou a dever 1 dia.. lol
e quanto ao concurso? temos vencedor ou não? ;Dacho que não, fifas.
k cena brutal.. estas matrizes são mta esquisitas.. n era essa tua que n dava nd no teste de todos os leds ligados?yap...era a minha...nao dava nadinha....tava de férias....loool ;D
e oublá: a coluna 7 dos vermelhos n ficou toda ligada como no meu? modificaste alguma coisa no código pra chegar a esse resultado?
Está muito giro fifas.. mete lá o código bom, ou partilha ai para eu te ajudar a corrigir isto para ver se o delphi se despacha.
#include "TimerOne.h"
byte rows[8] = {9, 14, 8, 12, 1, 7, 2, 5};
byte cols[8] = {13, 3, 4, 10, 6, 11, 15, 16};
byte pins[16] = {5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6};
byte screen[8] = {0, 0, 0, 0, 0, 0, 0, 0};
volatile byte screenRow = 0;
volatile byte screenCol = 0;
void setup() {
Timer1.initialize(100);
for (int i = 2; i <= 17; i++)
pinMode(i, OUTPUT);
Timer1.attachInterrupt(doubleBuffer);
}
// interrupt routine
void doubleBuffer() {
// reset the previous iteration
digitalWrite(translatePin(rows[screenRow]), HIGH); // set previous off
digitalWrite(translatePin(cols[screenCol]), LOW); // set previous off
// go to the next iteration...
// go to the next screenCol, wrap if necessary
screenCol++;
if (screenCol >= 8) {
screenCol = 0;
// when screenCol wraps, go to the next screenRow, wrap if necessary
screenRow++;
if (screenRow >= 8) {
screenRow = 0;
}
}
// set this iteration
if((screen[screenRow]>>screenCol)&B1 == B1) {
digitalWrite(translatePin(rows[screenRow]), LOW); // set this on
digitalWrite(translatePin(cols[screenCol]), HIGH); // set this on
} else {
digitalWrite(translatePin(rows[screenRow]), HIGH); // set this off
digitalWrite(translatePin(cols[screenCol]), LOW); // set this off
}
}
byte translatePin(byte original) {
return pins[original - 1];
}
void allOFF() {
for (int i = 0; i < 8; i++)
screen[i]=0;
}
void on(byte row, byte column) {
screen[column-1] |= (B1<<(row-1));
}
void off(byte row, byte column) {
screen[column-1] &= ~(B1<<(row-1));
}
// looping some LEDs routine
void loop() {
on(1,3); on(1,4); on(1,5); on(1,6);
on(2,2); on(2,4); on(2,5); on(2,7);
on(3,2); on(3,3); on(3,4); on(3,5); on(3,6); on(3,7);
on(5,2); on(5,4); on(5,5); on(5,7);
on(6,1); on(6,2); on(6,4); on(6,5); on(6,7); on(6,8);
on(7,1); on(7,2); on(7,4); on(7,5); on(7,7); on(7,8);
on(8,1); on(8,2); on(8,4); on(8,5); on(8,7); on(8,8);
delay(400);
}
allOFF();
delay(1000);
on(1,1); on(1,2); on(1,3); on(1,4); on(1,5); on(1,6); on(1,7); on(1,8);
on(2,1); on(2,2); on(2,3); on(2,4); on(2,5); on(2,6); on(2,7); on(2,8);
on(3,1); on(3,2); on(3,3); on(3,4); on(3,5); on(3,6); on(3,7); on(3,8);
on(4,1); on(4,2); on(4,3); on(4,4); on(4,5); on(4,6); on(4,7); on(4,8);
on(5,1); on(5,2); on(5,3); on(5,4); on(5,5); on(5,6); on(5,7); on(5,8);
on(6,1); on(6,2); on(6,3); on(6,4); on(6,6); on(6,6); on(6,7); on(6,8);
on(7,1); on(7,2); on(7,3); on(7,4); on(7,5); on(7,6); on(7,7); on(7,8);
on(8,1); on(8,2); on(8,3); on(8,4); on(8,5); on(8,6); on(8,7); on(8,8);
delay(400);
Ricardo.....manda a coluna vermelha dar uma volta e faz isso :P ou entao faz com os vermelhos, ou tambem nao da? :P
Tive de colocar a morada em inglês pode ocorrer algum problema?Fica descansado que o máximo que te pode acontecer é pedirem-te para pagar e tu recusares. Ninguém te vai obrigar a nada!
Quando enviam os envelopes enfiam na caixa de correio, mas uma vez vinha numa caixa de cartão, e os chips vinham embalados aos pares numa caixa plástica com espuma anti-estática assim:
(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww.bsom.org%2Fwp-content%2Fuploads%2F2009%2F01%2Fmaximics.jpg&hash=2fe646499c9d175bb8f69d7b17a4c8be1f5da6bb)
:o parece que não falta €€€€ para se darem a "luxos" destes com samples...
Esta tive de ir aos correios buscar.
O máximo que demorou foi 1 mês, e o minimo foi pouco menos de duas semanas.