|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
|
Matrice di led e PIC: mi spiegate un po come funziona?
Ciao raga
sto iniziando un progetto nel quale vorrei costruire un display a matrice di led, sul quale far scorrere (per il momento mi basta riuscire a visualizzarle, poi si vedrà Ora innanzi tutto vorrei capire bene, se qualcuno riesce a spiegarmi, come funziona una matrice a led, ovvero come pilotare tutti quei led semplicemente con poche uscite a disposizione. Da quel poco che ne so il trucco dovrebbe essere nella velocità di accensione dei led che a causa della persistenza dell'img sembrano poi tutti accesi (almeno quelli che devono esserlo), però non capisco come posso, con poche uscite, comandare anche tanti led (ad esempio QUI con 5 uscite comanda 20 led
__________________
Lego ™ Fans Club |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: May 2003
Città: venezia
Messaggi: 18696
|
Le matrici di led vengono pilotate su righe e su colonne .
Sulle righe in genere sono inviati i dati per accendere i led , mentre le colonne vengono accese in sequenza dalla prima all' ultima , e alla fine il ciclo ricomincia e si ripete all' infinito . Sincronizzando l' accensione delle righe con l' accensione delle colonne puoi ottenere l' accensione solo dei led che desideri . |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Aug 2005
Città: Genova
Messaggi: 2285
|
quindi ad esempio se voglio scrivere uno zero supponiamo di 5 colonne devo fare una cosa di questo tipo giusto?
![]() buttando giù un codice moooolto veloce potrei fare una routine di questo tipo? Codice:
...declarations...
int zero[]={126,129,129,129,126,0}; //126=01111110 e 129=10000001
// lo zero finale è lo spazio tra un carattere e l'altro
void main(){
while(true){
for(int i=0,i<6,i++){
PORTB=zero[i];
//incrementa colonna
}
}
}
Codice:
void display_char(*int ptr){
for(int i=0,i<6,i++){
PORTB=ptr[i];
//incrementa colonna
}
}
....code......
display_char(zero);
__________________
Lego ™ Fans Club Ultima modifica di Dani88 : 12-09-2008 alle 08:57. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 21:52.




















