Étape 5: Branchez-le tout dedans et charger le firmware
Maintenant votre coeur de huit bits devrait être désormais prêt à brancher et charger du firmware. Le croquis ci-joint des impulsions juste le coeur monte et descend. Si vous avez copié ma conception et écrire vos propres croquis n’oubliez pas que j’ai sélectionné des résistances avec ohm plus faible que les LEDs peuvent gérer sur une longue période de temps. Donc si vous laisser n’importe quel LED pendant une longue période de temps il y a une bonne chance vous allez faire sauter. Règle simple : keep it moving et gardez inférieure à 1/3 allumé et vous _should_ bien (au moins c’est ma compréhension, corrigez-moi si je me trompe).
8 bit cœur Arduino Sketch :
Battement de coeur de 8 bits
Une esquisse d’exécuter sur le cœur de 8 bits avec madas personnalisé calendrier
et matrice de LED personnalisable pour réorganisation facile, comme j’avais besoin.
Par : PuZZleDucK
Licence : GPL3
Date : 28/01/2014
int arraySize = 17 ; Nombre de LEDs dans ton coeur... plus de moyens que tu m’aimes.
int ledArray [17] = {4,3,2, A0, A1, A2, A3, A4, A5, 12, 11, 10, 9, 8, 7, 6, 5} ; Notez le style « européen » à partir de 4.
volatils longtemps = 0 ; Fou de chronométrage...
void setup() {/ / Just ensemble toutes nos broches de sortie
pour (int i = 0; i < arraySize; i ++) {}
pinMode (ledArray [i], sortie) ;
}
}
void loop() {}
temps ++ ; Indicateur de temps d’avance
Si (temps == L 2147483647) {}
temps == 0 ; La fin, vers le début.
}
À l’aide de modula arithmatic à oposing LEDs s’allument
digitalWrite (ledArray [arraySize-((time-1) % arraySize) -1] haute) ;
digitalWrite (ledArray [temps % arraySize], HIGH) ;
Delay(50) ; Vous pouvez penser 100 pourrait être plus romantique, mais j’ai trouvé 50 d’être un bel équilibre entre ennuyeux et induire de la saisie.
digitalWrite (ledArray [arraySize-((time-1) % arraySize) -1], faible) ;
digitalWrite (ledArray [temps % arraySize], faible) ;
} //loop
J’ai utilisé cela pour le débogage... Je prie que vous n’aurez jamais besoin.
mais si vous le faites sont idéal comme ceci : blinkN (temps % arraySize, arraySize % temps + 1) ; Il se met à clignoter chaque broche à son tour avec son propre numéro de commande.
void blinkN (int code pin, int count) {}
pour (int i = 0; i < count; i ++) {}
digitalWrite (tige, haute) ;
Delay(100) ; Vous pouvez penser 50 serait plus rapide... mais je ne compte plus que rapide: p
digitalWrite (broches, faible) ;
Delay(100) ;
}
} //blinkN