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

Nessun commento:

Posta un commento