Buon giorno, caro lettore del mio articolo, oggi in questo articolo vorrei dirti come assemblare il gioco "tiro alla fune" su arduino
Questo è ciò di cui hai bisogno:
1. Arduino Uno
2.2 condensatori per 0,1 microfarad
3.14 resistori da 220 ohm
4. Scala LED o 10 LED a 3 volt
5. Tagliere
6. 2 pulsanti dell'orologio
7. tweeter piezoelettrico
8. Trigger di inversione di Schmitt
9. ponticelli
Quindi, prima programmiamo l'arduino
Ecco uno schizzo:
Successivamente, raccogliamo tutto secondo questo schema:
dovresti ottenere qualcosa del genere:
dopo che la "corda" si è spostata sul lato 1 dei giocatori il gioco termina, puoi riavviarlo premendo il pulsante sull'arduino stesso
Spero che questo progetto ti sia piaciuto e con te la palla DeNiS Geek pro100, per ora è tutto!
Questo è ciò di cui hai bisogno:
1. Arduino Uno
2.2 condensatori per 0,1 microfarad
3.14 resistori da 220 ohm
4. Scala LED o 10 LED a 3 volt
5. Tagliere
6. 2 pulsanti dell'orologio
7. tweeter piezoelettrico
8. Trigger di inversione di Schmitt
9. ponticelli
Quindi, prima programmiamo l'arduino
Ecco uno schizzo:
#define BUZZER_PIN 0
#define FIRST_BAR_PIN 4
#define BAR_COUNT 10
#define MAX_SCORE 20
// variabili globali utilizzate negli interrupt (vedi sotto)
// deve essere contrassegnato come instabile (volatile)
punteggio int volatile = 0;
void setup ()
{
per (int i = 0; i & lt; BAR_COUNT; ++ i)
pinMode (i + FIRST_BAR_PIN, OUTPUT);
pinMode (BUZZER_PIN, OUTPUT);
// Interruption (interrupt inglese) sospende il main
// programma, esegue la funzione specificata, quindi riprende
// programma principale. Abbiamo bisogno di un interruzione al clic di un pulsante,
// cioè quando si cambia il segnale da alto a basso, ad es. su
// fronte (discendente) verso il basso
attachInterrupt (INT1, pushP1, FALLING); // INT1 è il 3 ° pin
attachInterrupt (INT0, pushP2, FALLING); // INT0 è il 2 ° pin
}
void pushP1 () {++ score; } // Funzione di interruzione del 1 ° giocatore
void pushP2 () {--score; } // Funzione di interruzione del 2 ° giocatore
void loop ()
{
tono (BUZZER_PIN, 2000, 1000); // dà un segnale per iniziare.
// mentre nessuno dei giocatori ha vinto, aggiorniamo la "corda"
while (abs (score) & lt; MAX_SCORE) {
int bound = map (punteggio, -MAX_SCORE, MAX_SCORE, 0, BAR_COUNT);
int left = min (associato, BAR_COUNT / 2 - 1);
int right = max (associato, BAR_COUNT / 2);
per (int i = 0; i & lt; BAR_COUNT; ++ i)
digitalWrite (i + FIRST_BAR_PIN, i & gt; = sinistra && i & lt; = destra);
}
tono (BUZZER_PIN, 4000, 1000); // dà un segnale di vittoria
while (true) {} // "sospende" la scheda fino al riavvio
}
Successivamente, raccogliamo tutto secondo questo schema:
dovresti ottenere qualcosa del genere:
dopo che la "corda" si è spostata sul lato 1 dei giocatori il gioco termina, puoi riavviarlo premendo il pulsante sull'arduino stesso
Spero che questo progetto ti sia piaciuto e con te la palla DeNiS Geek pro100, per ora è tutto!