Étape 4: Programmer avec Arduino
Une fois que le Cube est câblé à votre circuit de prototype, écrire du code de test !Une fonction intelligente, j’ai développé afin de réaliser efficacement la sortie vers les décodeurs est ci-dessous et aussi trouvée dans le code lié. C’est où se produit évidemment la magie noire au niveau du bit.
/* //delay, this is the absoloute minimum time the light will be displayed./**
* Displays the anode column with the given number value; [0, 24].
*/
void displayNum(int num){
//constrain the argument to be between 0 and 24 inclusive.
num = constrain(num, 0, 24);
* AND: selects the bit, the bit at weight will be 1 if the pin is to be high
* >>: shifts the selected bit to the end of the word, making the value a 0 or 1
* first result is lsb
* digitalWrite: write the approptiate result (HIGH or LOW)
* to the appropriate decoder pin
*/
for(int weight=1, pin=0; pin < DECODER_BITS; weight*=2, pin++)
digitalWrite(decoderPins[pin] ,(num & weight) >> pin);
//ensures adequate delay for decoders as well.
delayMicroseconds(MICRO);
}
Le reste du code que j’ai utilisé est attaché ici aussi bien. Il est divisé en 4 pièces principales.
LEDs.h :
Contient toutes les définitions de broches et tableaux contenant épingles pour les itérations rapides.
DisplayBasics.pde :
Contient quelques « formes de base » dans le cube, pour une utilisation dans les modèles.
Patterns.pde :
Contient des modèles qui permet d’afficher le cube. Chacun est documenté dans le code et peut être vu dans la vidéo à l’étape de l’intro de ce instructable.
LEDCubePCB.pde :
Il s’agit de la version finale de mon code et ses fonctions setup() et loop(). vous remarquerez que je choisis quel motif à afficher au réarmement basé sur la position du potentiomètre (étape suivante discuté). J’encourage une meilleure façon de changer les modes, également discutés à l’étape suivante.