Création d’une grille de LED charlieplexed sur ATTiny85 (3 / 5 étapes)

Étape 3: Charlieplexing dans le logiciel - mise en route

Dans mon projet, j’ai utilisé la grille de 4 x 5 pour exécuter une simulation de jeu de la vie de Conway. Toutefois, avant que nous obtenions qui est complexe, nous allons couvrir quelques notions de base du logiciel pour montrer comment nous voyants dans cette configuration de charlieplexed.

Tout d’abord, j’ai défini mes broches A à E et spécifié qui bit sur PORTB ils vont se référer à. Cela rend plus facile de se référer à la ligne A à E ultérieurement dans le code :

#define LINE_A 0 //Pin 5 (PB0) sur ATtiny85
#define LINE_B 1 //Pin 6 (PB1) sur ATtiny85
#define LINE_C 2 //Pin 7 (PB2) sur ATtiny85
#define LINE_D 3 //Pin 2 (PB3) sur ATtiny85
#define LINE_E 4 //Pin 3 (PB4) sur ATtiny85

Pour allumer l’un des 20 LEDs, nous devons configurer notre 5 tiges d’une manière différente pour chaque LED. Pour allumer une LED, nous avons besoin d’une broche sur une sortie avec une haute tension, une broche sur une sortie avec une tension de terre, et toutes les autres tiges doivent être définis aux entrées pour empêcher le flux actuel.

Pour le rendre plus simple, nous vais mettre en place des tableaux pour stocker toutes les configurations DDRB (qui définit les modes d’entrées/sorties de chaque aiguille) et PORTB (qui définit la haute/basse tension de chaque aiguille).

Config de direction DDRB pour chaque LED (1 = sortie)
const char led_dir [20] = {}
(1 << LINE_A | 1 << LINE_E), //LED 0
(1 << LINE_B | 1 << LINE_E), //LED 1
(1 << LINE_C | 1 << LINE_E), //LED 2
(1 << LINE_D | 1 << LINE_E), //LED 3

(1 << LINE_E | 1 << LINE_D), //LED 4

(1 << LINE_A | 1 << LINE_D), //LED 5
(1 << LINE_B | 1 << LINE_D), //LED 6
(1 << LINE_C | 1 << LINE_D), //LED 7
(1 << LINE_D | 1 << LINE_C), //LED 8
(1 << LINE_E | 1 << LINE_C), //LED 9

(1 << LINE_A | 1 << LINE_C), //LED 10
(1 << LINE_B | 1 << LINE_C), //LED 11
(1 << LINE_C | 1 << LINE_B), //LED 12
(1 << LINE_D | 1 << LINE_B), //LED 13
(1 << LINE_E | 1 << LINE_B), //LED 14

(1 << LINE_A | 1 << LINE_B), //LED 15
(1 << LINE_B | 1 << LINE_A), //LED 16
(1 << LINE_C | 1 << LINE_A), //LED 17
(1 << LINE_D | 1 << LINE_A), //LED 18
(1 << LINE_E | 1 << LINE_A) //LED 19
};

PORT de sortie config pour chaque LED (1 = haut, 0 = faible)
const char led_out [20] = {}
(1 << LINE_A), //LED 0
(1 << LINE_B), //LED 1
(1 << LINE_C), //LED 2
(1 << LINE_D), //LED 3
(1 << LINE_E), //LED 4

(1 << LINE_A), //LED 5
(1 << LINE_B), //LED 6
(1 << LINE_C), //LED 7
(1 << LINE_D), //LED 8
(1 << LINE_E), //LED 9

(1 << LINE_A), //LED 10
(1 << LINE_B), //LED 11
(1 << LINE_C), //LED 12
(1 << LINE_D), //LED 13
(1 << LINE_E), //LED 14

(1 << LINE_A), //LED 15
(1 << LINE_B), //LED 16
(1 << LINE_C), //LED 17
(1 << LINE_D), //LED 18
(1 << LINE_E) //LED 19
};

Enfin, nous avons une fonction simple de faire ce travail, « light_led »

void light_led (char led_num) {//led_num doit être de 0 à 19
DDRB = led_dir [led_num] ;
PORTB = led_out [led_num] ;
}

void leds_off() {}
DDRB = 0 ;
PORTB = 0 ;
}

Par appel light_led avec un nombre de 0 à 19, nous pouvons allumer la LED souhaitée. De là, nous pouvons bâtir plus de complexité dans le logiciel pour stocker une grille de 4 x 5 et l’afficher dans les lumières.

Articles Liés

Création d’une grille de bateau de niveau 2 pour 3 canoës avec attaches

Création d’une grille de bateau de niveau 2 pour 3 canoës avec attaches

dans ce instructable je vais vous guider dans la construction d'un canot rack contenant un vieux canot de ville et deux Kayaks. Bien que cela a été conçu spécifiquement pour les navires à l'esprit, il doit s'adapter à la plupart des bateaux et avec q
Création d’une Application dans Xcode 2 sur Mac

Création d’une Application dans Xcode 2 sur Mac

Bonjour ! C'est MacWorldWizardz ici encore aujourd'hui pour vous montrer comment générer une application (entièrement fonctionnelle) dans Xcode sur Mac ! C'est assez simple, basé sur le type d'application que vous souhaitez construire, compiler et fa
Création d’une planche à roulettes de LED

Création d’une planche à roulettes de LED

en ce Instructable, nous enseigne vous comment créer une planche à roulettes qui s'allume à l'aide de contreplaqué, voyants et autres matériaux.Etape 1: Acheter 7-Ply WoodNous avons acheté 7 multiplis de home depot. Le bois que nous avons commencé pa
Contrôler une matrice de LED

Contrôler une matrice de LED

Les tableaux de LED sont beaucoup de plaisir et plus facile que vous pouvez penser au contrôle. Dans ce Instructable, vous apprendrez comment une matrice de LED est construite et fonctionne et comment conduire en utilisant une puce de pilote MAX7219.
Création d’une Machine de guerre bricolage maison costume hors Articles ménagers

Création d’une Machine de guerre bricolage maison costume hors Articles ménagers

Salut! Je vais prendre vous à travers les étapes nécessaires à la création de la combinaison de la Machine de guerre, que l'on aperçoit sur la photo ci-dessus. Ce costume a été construit pour un projet d'école et m'a pris environ 5-6 mois, pour créer
Projet facile - contrôle une lumière LED avec Python en utilisant une framboise Pi

Projet facile - contrôle une lumière LED avec Python en utilisant une framboise Pi

Ce sera le projet Raspberry Pi GPIO LED plus facile jamais. Si vous suivez ce guide il devrait prendre moins de 20 minutes à installer et sont en cours d'exécution. L'objectif de ce projet est d'obtenir un seul voyant clignotant basé sur un programme
Transformer votre photo préférée en une peinture murale à l’aide d’une grille - tout le monde peut le faire !

Transformer votre photo préférée en une peinture murale à l’aide d’une grille - tout le monde peut le faire !

Avez toujours rêvé de peindre quelque chose, je ne savais pas par où commencer. J'aime qu'avec un peu de peinture vous pouvez changer complètement une pièce. Quand ma fille a demandé un papillon sur son mur, j'ai pensé qu'il était temps de l'essayer.
Une Menorah de LED à l’aide de Stickers Circuit Chibitronics

Une Menorah de LED à l’aide de Stickers Circuit Chibitronics

En décembre notre hackerspace, espace Crash à Culver City, a organisé une soirée construire Instructables, mettant en vedette Chibitronics Circuit autocollants. Avec Channukah le coin de la rue, j'ai pensé qu'une menorah LED serait un projet parfait
Une grille simple paroi pour outils électriques avec le métal de jardin

Une grille simple paroi pour outils électriques avec le métal de jardin

J'ai besoin organiser certaines de mes outils électriques qui d'où s'étend tout autour en font un énorme tracas quand j'essaie de faire n'importe quel proyect. Je ne voulais pas dépenser un centime, à l'exception de consumibles comme électrodes pour
Création d’un modèle 3D Simple sur la Fusion 360 et une trajectoire d’outil MYDIYCNC

Création d’un modèle 3D Simple sur la Fusion 360 et une trajectoire d’outil MYDIYCNC

BonjourTory à MyDIYCNC ici. Aujourd'hui, je veux vous montrer comment utiliser un élément très utile du logiciel d'Autodesk appelé : Fusion 360. Avec ce logiciel, vous pouvez créer des modèles 3D simples, aux modèles 3D complexe.Ce que j'espère pour
Incroyable horloge binaire dans une matrice de LED

Incroyable horloge binaire dans une matrice de LED

Bonjour, tous!!Il s'agit de mon projet d'une horloge binaire à l'aide de la matrice de LED 8 x 8 et notamment des caractéristiques intéressantes.Toutes les informations du jour, mois, année, heure, minutes, numéro de la semaine de l'année sont présen
Guide de création d’une table de montage séquentiel

Guide de création d’une table de montage séquentiel

cette instructable est un guide sur Comment faire pour créer une table de montage séquentiel. Il s'agit d'un processus assez simple, et tout ce qu'il faut, c'est un peu de plaisir et d'imagination. Il y a beaucoup de méthodes sur la création d'une ta
Comment faire pour souder les fils sur une bande de LED commune

Comment faire pour souder les fils sur une bande de LED commune

il s'agit d'une amorce très rapide et simple sur la façon de souder les fils sur une bande de LED commune.Vous aurez besoin :Ciseaux ou fil coupe (disponible pour utilisation de TechShop)Dénudeurs de fils (disponibles pour utilisation de TechShop)Fer
Création d’une application Android à l’aide de Ionic

Création d’une application Android à l’aide de Ionic

Ionique est un cadre qui rend l'écriture apps pour presque toutes les plateformes extrêmement facile. Si vous connaissez un peu de css, js et html vous pouvez créer un Android / iOS ou Windows app.Cette instructable mettra l'accent sur la façon de cr