Un dé de LED à l’aide d’un PIC 16F84 (ou 16F88) (7 / 12 étapes)

Étape 7: Générer des nombres aléatoires

Maintenant que nous pouvons exporter des données sur un écran LED Dice individuel, nous avons besoin d’un moyen de générer un nombre aléatoire.

Mathématiquement, générant un nombre réellement aléatoire est un exercice très complexe. Dans notre circuit simple de PIC, nous pouvons générer un nombre aléatoire par un couple de moyens ;

  • Un numéro apparemment aléatoire peut être obtenu en chronométrant combien de temps la touche est maintenue enfoncée, à l’aide d’une minuterie qui augmente très rapidement. (Il serait une personne très rare qui pourrait appuyer sur le bouton pour exactement 2243 mS chaque fois).
  • Alternativement, nous puissions mettre en oeuvre un générateur de nombres pseudo-aléatoires mathématique. Ceci nécessite l’utilisation de multiplication et de division. Un générateur Pseudo-aléatoire génère une très longue séquence de numéros qui finissent par se répète, après plusieurs cycles.

Dans notre projet, la méthode la plus simple que nous pouvons utiliser pour générer un nombre aléatoire est de goûter à la minuterie interne (TMR0), qui est sans cesse croissant à ¼ de la vitesse d’horloge (environ 256KHz), et stockez-le dans une variable en continu, tant que la touche est maintenue enfoncée.

Notre microprocesseur PIC 16F84 ou 16F88 a 68 emplacements de mémoire qui peuvent être utilisées comme variables. Pour définir une variable, nous simplement déclarer une constante qui fait référence à un emplacement de mémoire particulière et de stocker des nombres dans cet emplacement de mémoire tel que requis.

Une routine de code court pour exercer cette fonction serait comme suit :

; un emplacement de mémoire pour stocker notre nombre aléatoire

RandomA EQU 30 ; définir l’adresse de mémoire à

; stocker un nombre aléatoire

Button_Loop

MOVFW TMR0 ; Récupère la valeur courante de la minuterie

MOVWF RandomA ; stockez-la dans RandomA

BTFSS PortB, 0 ; Est le bouton toujours en baisse ?

GOTO Roll_Down ; non, sauter et lente

; vers le bas de l’écran

APPEL Display_Result ; Oui, afficher le rouleau actuel

APPEL Short_Delay ; Patientez quelques instants

CLRF Idea ; effacer les deux dés à nouveau

CLRF bissou

GOTO Button_Loop ; et boucle à nouveau.

Roll_Down: ; le reste du programme va ici.

; RandomA contient un nombre qui a été choisi au hasard

; dépend de combien de temps la touche a été enfoncée.

Articles Liés

Comment faire une chaîne de fée-lumière LED à l’aide de MR16

Comment faire une chaîne de fée-lumière LED à l’aide de MR16

cette instructable est un moyen super simple, facile et amusant de faire une chaîne de fée de LED à l'aide de spots LED MR16.C'est aussi mon premier instructable!, enfin après des années de divers de bricolage et de bricolage amusant. ^_^Donc, mise b
Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Arduino 16 LEDs à l’aide de deux registres à décalage 74HC595 (illimités broches)

Il s'agit de mon premier espoir instructable, que vous l'aimerez. J'ai été jouer avec LEDs pour un certain temps et j'ai réalisé que je suis assez bien limitée avec broches de l'Arduino et ne peut pas faire des projets énormes qui exige beaucoup d'ép
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
ESP8266 contrôle WS2812 Neopixel LED à l’aide de l’IDE Arduino - un tutoriel

ESP8266 contrôle WS2812 Neopixel LED à l’aide de l’IDE Arduino - un tutoriel

Salut tout le monde,Si vous êtes comme moi, vous avez été la recherche autour de l'internet pour un bon tutoriel sur l'utilisation de la ESP8266 avec neopixel LEDs (AKA le WS2812 ou WS2812b), programmée via l'IDE Arduino. Je n'ai pas trouvé tous en u
Smart Phone contrôlée des lumières LED à l’aide de HC-05 et Arduino UNO

Smart Phone contrôlée des lumières LED à l’aide de HC-05 et Arduino UNO

Bluetooth Module HC-05 est l'un de l'élément matériel qui vous permet de rapidement prototype vos idées qui requièrent un élément de contrôle sans fil/conjonctif plus couramment utilisé. Ce projet est une très brève démonstration de comment nous peut
Collier de déclaration de LED à l’aide de rondelles et ruban

Collier de déclaration de LED à l’aide de rondelles et ruban

Un collier simple à l'aide de trois LED s'allume, rondelles, plastique, rubans et fil conducteur. Le collier est une bonne introduction aux circuits.Matériaux:Assortiment de rondelles (trouvés dans le garage)deux époxyde clairrubansac en plastique bl
Constellations de LED à l’aide de Chibitronics

Constellations de LED à l’aide de Chibitronics

Observation des étoiles sont amusant et impressionnant, mais ne peuvent se faire sur la nuit nuageux ou pluvieux. À l'aide de chibitronics, vous pouvez faire votre propre ciel de nuit, y compris vos constellations préférées.Matériaux :Kit de démarrag
Lampe de bureau LED à l’aide de sugru, kit ikea de nick-accusés de réception négatifs et kitronik

Lampe de bureau LED à l’aide de sugru, kit ikea de nick-accusés de réception négatifs et kitronik

Je ne semblent jamais avoir assez de lumière sur mon bureau ces jours-ci, la lumière de ma lampe de bureau semble trop d'ombres et prend un peu trop longue pour être lumineux avec une moderne ampoule économie d'énergie.J'ai vu le nouveau Kit de lampe
Patrons de LED à l’aide de launchpad msp430

Patrons de LED à l’aide de launchpad msp430

il s'agit d'un simple programme micro-contrôleur où nous faisons led de lueur dans différents motifs attrayants à l'aide de launchpad msp430. J'ai trouvé qu'il y a beaucoup d'instructables sur arduino, mais très peu existent pour msp430, bien que msp
Bracelet de LED à l’aide de CD4049

Bracelet de LED à l’aide de CD4049

Voici un petit bracelet avec 6 LEDs qui pulse dans une configuration intéressante. Le circuit utilise un convertisseur continu-alternatif hexagonal CD4049 unique.Liste des éléments nécessaires :LEDs rouges x 3LEDs vertes x 3Tube en carton x 1IC CD404
Cartes de Noël LED à l’aide de PIC 10F200

Cartes de Noël LED à l’aide de PIC 10F200

il s'agit d'une instructable sur comment construire une carte de Noël avec microcontrôleur PIC 10F200.Comme ce PIC a six broches et la taille d'un transistor SMD, il est idéal pour les applications de faible encombrement et peut facilement être repro
STM32F103 Blink LED (à l’aide de Keil et STMCubeMX)

STM32F103 Blink LED (à l’aide de Keil et STMCubeMX)

Dans ce tutoriel, je vais montrer que vous décrit les étapes à LED clignote sur votre planche de STM32F103.Ce tutoriel est divisé en 4 étapes :Étape 1: Création de projet1-1: créer le projet à l'aide de STM32CubeMX1-2: mise en place de LED dans STM32
Comment faire le Fader de LED à l’aide de Digispark

Comment faire le Fader de LED à l’aide de Digispark

https://www.dropbox.com/s/zj1mg9ewo62ttw7/animoto_high_res.mp4MATÉRIAUX REQUIS(Dans l'ordre)article fournisseur Cat # résistance de 220 ohms de quantité digikey.com 220QBK-ND 3 LED RGB digikey.com 754-1492-ND 1 en-tête femelle 3 broches digikey.com S
Clignoter la LED à l’aide de vos ondes cérébrales

Clignoter la LED à l’aide de vos ondes cérébrales

Ce qui est Brainsense bandeau ?Brainsense est un casque élégant, monocanal, sans fil qui surveille l'activité de votre cerveau et EEG se traduit par des données significatives, vous pouvez comprendre. La plateforme de biocapteurs fournit une base pui