génèrent des nombres Aléatoires est très simple. Pour cela, il existe la Fonction random().
Nous essayons juste une fois avec un petit Sketch, un Nombre généré et la série du Moniteur émet:
void setup() { Serial.begin(9600); Serial.print("nombre Aléatoire entre 1 et 6: "); Serial.print(random(1,7)); Serial.print("\n"); } void loop() { // put your main code here to run repeatedly: }
Nous invitons le Sketch sur nos Nano, ouvrir la série du Moniteur, assurez-9600 Baud, et nous nous réjouissons de:
Nombre aléatoire entre 1 et 6: 2
, C'était pas si difficile? Pourquoi écrire M. Neumann faire un Blog?
Si vous avez maintenant le Bouton de Réinitialisation à Quelques reprises exprime, il devient évident:
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6: 2
Dans la Documentation officielle, bien sûr, est que le moyen d'randomSeed() doit initialiser le générateur de nombres aléatoires, et recommande de le faire à l'aide analogRead() le code Pin lire la n'est pas connecté.
Par Hasard, je suis à la Bibliothèque TrueRandom de sirleech rencontré. Celle-ci offre une Fonction TrueRandom.random(), qui, comme la random() Fonction peut être appelée, mais sans plus de Préparation fiables nombres Aléatoires fournit.
La Bibliothèque, il est chez GitHub soushttps://github.com/sirleech/TrueRandom
Nous adaptons donc nos Sketch un peu:
#include <TrueRandom.h> // La Bibliothèque de l'intégrer void setup() { Serial.begin(9600); Serial.print("nombre Aléatoire entre 1 et 6: "); Serial.print(random(1,7)); Serial.print("\n"); Serial.print("nombre Aléatoire entre 1 et 6 avec TrueRandom: "); Serial.print(TrueRandom.random(1,7)); Serial.print("\n"); } void loop() { // put your main code here to run repeatedly: }
ce Sketch, nous invitons nos Nano, et voilà, il est maintenant, à chaque Redémarrage du système, un autre Nombre est généré:
nombre Aléatoire entre 1 et 6 avec TrueRandom: 2
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6 avec TrueRandom: 1
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6 avec TrueRandom: 4
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6 avec TrueRandom: 2
nombre Aléatoire entre 1 et 6: 2
nombre Aléatoire entre 1 et 6 avec TrueRandom: 6
TrueRandom mais a encore plus à offrir. Il permet ainsi à la Fonction TrueRandom.memfill(adresse, longueur), une zone de la mémoire à l'Adresse indiquée avec des nombres Aléatoires de le remplir.
Il suffit de MAC Adresses ou Uuid doit être généré.
Nous concluons maintenant64 Matrice à LED d'Affichageà nos Nano, en font un Dé.
La première modification dans le Blog de la de 7. Juin décrit le Fichier MD_MAX72xx_font.cpp comme suit:
3, 0x42, 0x7f, 0x40, // 49 - '1'
5, 0x72, 0x49, 0x49, 0x49, 0x46, // 50 - '2'
5, 0x21, 0x41, 0x49, 0x4d, 0x33, // 51 - '3'
5, 0x18, 0x14, 0x12, 0x7f, 0x10, // 52 - '4'
5, 0x27, 0x45, 0x45, 0x45, 0x39, // 53 - '5'
5, 0x3c, 0x4a, 0x49, 0x49, 0x31, // 54 - '6'
remplacer par:
8,0x0,0x0,0x0,0x18,0x18,0x0,0x0,0x0, // 49 - '1'
8,0x3,0x3,0 x 0,0x18,0x18,0x0,0xC0,0xC0, // 50 - '2'
8,0x3,0x3,0 x 0,0x18,0x18,0x0,0xC0,0xC0, // 51 - '3'
8,0xC3,0xC3,0x0,0x0,0x0,0x0,0xC3,0xC3, // 52 - '4'
8,0xC3,0xC3,0x0,0x18,0x18,0x0,0xC3,0xC3, // 53 - '5'
8,0 xDB,0xDB,0x0,0x0,0x0,0x0,0xDB,0xDB, // 54 - '6'
Et pour Finir, nous ne lions pas les MD_MAX72xx et MD_Parola des Bibliothèques et de donner le Chiffre de la Matrice:
#include <TrueRandom.h> #include <MD_MAX72xx.h> #include <MD_Parola.h> #include <SPI.h> #define MAX_DEVICES 1 #define CLK_PIN 13 // ou SCK #define DATA_PIN 11 // ou MOSI #define CS_PIN 10 // ou SS // Connexion matérielle SPI MD_Parola P = MD_Parola(CS_PIN, MAX_DEVICES); #define DÉLAI 100 // en millisecondes nul configuration() { Série.commencer(9600); Série.imprimer("Nombre aléatoire entre 1 et 6:"); Série.imprimer(aléatoire(1,7)); Série.imprimer("\ n"); Série.imprimer("Nombre aléatoire entre 1 et 6 avec TrueRandom:"); uint8_t rnd = TrueRandom.aléatoire(1,7); Série.imprimer(rnd); Série.imprimer("\ n"); P.commencer(); P.imprimer(" "); retard(500); P.imprimer(rnd); } nul boucle() { // mettez ici votre code principal, à exécuter de manière répétée: }
Un nouveau numéro est maintenant généré et affiché pour chaque redémarrage (appuyez sur le bouton de réinitialisation).
1 commentaire
Peter Nohle
Hallo. Ich habe den Sketch an 3 Nanos probiert. Bei allen leuchtet nur alle 64 LEDs der Matrix. Als blutiger Anfänger habe ich jetzt im Code nix auffälliges entdeckt. Nach dem Upload des Sketches der fehlerfrei verläuft, blinken nach einem Reset auch kurz zwei Leds
auf dem Nano. Das heißt er arbeitet das Setup ab. Nur… Die Matrix bringt keine Änderung. Alle leuchten. Die cpp hab ich angepaßt. Was mache ich falsch?