Visualizzazione post con etichetta casuali. Mostra tutti i post
Visualizzazione post con etichetta casuali. Mostra tutti i post

mercoledì 3 giugno 2020

Arduino N° 52 - Numeri casuali con dado a sei facce.




< Segue da Arduino N° 51

 Achille De Santis

Arduino N°  53







  •   Estrazione di numeri casuali simulando un dado a sei facce.
  •   Visualizzazione su display a 7 segmenti.
  • Uso dei vettori per la definizione di variabili multiple.
  

Achille De Santis V5 del 22-05-2020 








/* 
 * -------------------- Inizio programma --------------------------------------
 * Estrazione numeri casuali con dado a sei facce.
 * Visualizzazione su display a 7 segmenti.
 * Uso dei vettori per la definizione di variabili multiple.
 * Achille De Santis V5 del 22-05-2020
 * ----------------------------------------------------------------------------
 * 
*/

// ------ display ----------------
#define a   13
#define b   12
#define c   11
#define d   10
#define e   9
#define f   8
#define g   7
// --------- comando -------------
#define button  2
// -------------------------------

const int T1=1000;
bool buttonState;
int i;
long ran;
int LED[]= {a,b,c,d,e,f,g};

// --- definizioni cifre ----------
const int uno[]=    {0,1,1,0,0,0,0};
const int due[]=    {1,1,0,1,1,0,1};
const int tre[]=    {1,1,1,1,0,0,1};
const int quattro[]={0,1,1,0,0,1,1};
const int cinque[]= {1,0,1,1,0,1,1};
const int sei[]=    {0,0,1,1,1,1,1};
// ---------------------------------

void setup ()
{
  Serial.begin (9600);
  for (i=0; i<=6; i++)    (pinMode (LED[i], OUTPUT));
  pinMode (button, INPUT_PULLUP);
  prova();
}

void SPENTO()    { for ( i=0; i<=6; i++) {digitalWrite(LED[i], LOW);  }}
void Accendi1()  { for ( i=0; i<=6; i++) {digitalWrite(LED[i], uno[i]);      Serial.print(uno[i]);     Serial.print(" "); }} 
void Accendi2()  { for ( i=0; i<=6; i++) {digitalWrite(LED[i], due[i]);      Serial.print(due[i]);     Serial.print(" "); }}
void Accendi3()  { for ( i=0; i<=6; i++) {digitalWrite(LED[i], tre[i]);      Serial.print(tre[i]);     Serial.print(" "); }}       
void Accendi4()  { for ( i=0; i<=6; i++) {digitalWrite(LED[i], quattro[i]);  Serial.print(quattro[i]); Serial.print(" "); }}
void Accendi5()  { for ( i=0; i<=6; i++) {digitalWrite(LED[i], cinque[i]);   Serial.print(cinque[i]);  Serial.print(" "); }}
void Accendi6()  { for ( i=0; i<=6; i++) {digitalWrite(LED[i], sei[i]);      Serial.print(sei[i]);     Serial.print(" "); }}

void prova()
{
  SPENTO(); 
  Accendi1(); delay(400);
  Accendi2(); delay(400);    
  Accendi3(); delay(400);
  Accendi4(); delay(400);
  Accendi5(); delay(400); 
  Accendi6(); delay(500);
  SPENTO();
}

void loop()
{
  buttonState = digitalRead(button);
  if (buttonState == LOW)
  {
    SPENTO();
    ran=random(1,7);
    Serial.print("\ta b c d e f g\n");
    Serial.print(ran); Serial.print("\t");  
    switch(ran)
      {
        case 1: Accendi1();  break;
        case 2: Accendi2();  break; 
        case 3: Accendi3();  break;
        case 4: Accendi4();  break; 
        case 5: Accendi5();  break; 
        case 6: Accendi6();  break; 
      }
    Serial.println();
  }
  delay(T1);
}
// ----------------- Fine Programma ---------------------------------------------


Simulazione: 

Argomenti correlati:

Dado Elettronico

Dado Elettronico V2





> Arduino N°  53

mercoledì 29 aprile 2020

Arduino N° 47 - Estrazione numeri al Lotto

 

< Segue da Arduino N°  46

 Achille De Santis

Arduino N° 48




Programma di esempio di estrazione numeri su una base di 90.
Nell'esempio, non viene esclusa la possibilità di estrazione dello stesso numero, in sequenza, come invece avviene nei giochi della "Tombola" o del "Lotto". In queste ultime tipologie di gioco, infatti, non è possibile estrarre lo stesso numero durante una stessa sessione; una volta estratto, infatti, il numero (o la tessera) viene tolto dalla popolazione di numeri estraibili.

Il numero estratto sarà visualizzato su schermo LCD, da collegare opportunamente.



prof. De Santis


/* ----------------------------- Inizio Programma ---------------------------------------
 * Estrazione numeri.
 * Utilizzare un pulsante N.A. sul piedino D7 verso massa.
 * Achille De Santis - V2.0
 */

#include <LiquidCrystal.h>    // LIBRERIA LCD
// ----------- I/O -------------
#define pinLed    13
#define bottone   7
// -----------------------------
int statoBottone;
int numero_estrazione;

// COLLEGAMENTO DELLO SCHERMO LCD
const int rs=12, en=11, d4=5, d5=4, d6=3, d7=2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void intestazione()
  { Serial.begin(9600);        // velocità seriale di comunicazione
    Serial.println(" _________ Tecnatron Creation ___________");
    Serial.println(" Titolo: Estrazione numeri  _______________");
    Serial.println(" prof. Achille De Santis - 14-03-2020  V2.0 .--");
  }
void stampaintestazione() { Serial.print("\nTutorial Arduino:\tUtilizzo di LCD"); } // a monitor
void stampaEstrazione()   { Serial.print("\n NUM. VINCENTE: \t"); Serial.print(numero_estrazione); }

void setup()
{
  pinMode(bottone, INPUT_PULLUP);                 // evita incertezze
  pinMode(pinLed, OUTPUT);
  lcd.begin(16, 2);               // Indica che lo schermo è formato da 2 righe da 16 caratteri
  Serial.begin(9600);
  stampaintestazione();
}
void loop()
  {
    numero_estrazione = random(1,90);
    statoBottone=digitalRead(bottone);
   
    if (statoBottone == 1)              // Se il pulsante NON è premuto
      {
        lcd.setCursor(0, 0);            // posiziona a colonna zero, riga zero
        lcd.print("Tutorial Arduino");
        lcd.setCursor(0, 1);            // posiziona a colonna zero, riga uno
        lcd.print("Utilizzo di LCD");
      }
    else if (statoBottone == 0)         // Se il pulsante è premuto
      {
        lcd.setCursor(0, 0);
        lcd.print(" NUM. VINCENTE: ");
        lcd.setCursor(0,1);
        lcd.print(" ");
        lcd.println(numero_estrazione); // stampa numero estratto
        stampaEstrazione();                    // visualizza a monitor
        delay(4000);
      }
}
// ----------------------------- Fine Programma ---------------------------------------


Simulazione:

Argomenti correlati:
Dado Elettronico
Dado Elettronico V2


Arduino N° 48