< Segue da Arduino N° 51 | > 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
/*
* -------------------- 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 ---------------------------------------------
Argomenti correlati:
Dado Elettronico
Dado Elettronico V2
Nessun commento:
Posta un commento