Étape 6: Un test croquis
- Copyright (c) 2009 qs
*
- Balayage horizontales et verticales pixels
*
- Matrice de LED rangée: 1-5 ; Col: 1-6
- Carte PORTB == D8:D12 broche [ligne + 7]: + v
- PORTD == D2:D7 goupille [8-col] ; GND
- Notre sortie : col::D2:D7 - ve (basse), tandis que row::D8:D13 + ve
*/
int delayTime = 80 ; incréments de 1 ms avant la prochaine LED
changer de 1 à 100 et voir ce qui se passe
int delayStep ;
int ledPin, col, rang ;
void setup() / / exécuter une seule fois, au démarrage de l’esquisse
{
pour (ledPin = 2; ledPin < = 12 ; ledPin ++) / / Standard setup pour LMP
{pinMode (ledPin, sortie); / / définit la broche numérique en sortie
digitalWrite (ledPin, (ledPin < = 7)) ; et définit tous les OFF
}
}
void loop() / / run maintes et maintes fois
/ * Carte PORTB == D8:D13
- PORTD == D0:D7
- Notre sortie : col::D7:D2
- (8-col) - ve (basse)
- tout en row::D8:D13 + ve
- (ligne + 7) + ve (haute)
*/
{
pour (ligne = 1; rangée < = 5; ligne ++) {/ / Vertical : de gauche à droite
digitalWrite(row+7,HIGH) ; Activez la ligne entière
pour (col = 1; col < = 6; col ++) {/ / puis un pixel par col
digitalWrite(8-col,LOW) ; obtient en marche
Delay(delayTime) ; pour un moment
digitalWrite(8-col,HIGH) ; puis OFF
} / / avant le prochain
digitalWrite (ligne + 7, faible) ; Nous avons finis avec cette ligne
}
pour (col = 6; col > = 1; col--) {/ / en remontant à droite à gauche
digitalWrite(8-col,LOW) ; Un raccourci : laisser le col activé
pour (rang = 5; rangée > = 1; ligne--) {}
digitalWrite(row+7,HIGH) ; Allumez 1 pixel
Delay(delayTime) ; Patientez un instant
digitalWrite(row+7,LOW) ; puis en route...
}
digitalWrite(8-col,HIGH) ; fini avec cette colonne
}
}