Recensisci!
Diventa un recensore per ricevere prodotti gratuiti o scontati!
Iscriviti
Se desideri, puoi effettuare un'iscrizione gratuita al forum per entrare nella nostra community.
Ricerca Avanzata
Pubblicità Adsense
Answers
Se necessiti di aiuto, clicca il pulsante "Cerco Aiuto" (disponibile anche per i non iscritti).
Ultimi argomenti
» Gioco con Arduino: Sniper Words
Da Admin Lun Gen 22, 2018 9:57 pm

» Mi si è bruciano Arduino, come mai?
Da Admin Mer Gen 17, 2018 4:24 pm

» Recensione hub USB per PC di Aukey (esterno o autoalimentato)
Da Admin Dom Gen 14, 2018 10:28 pm

» accesso remoto via web arduino porta bloccata
Da Admin Dom Gen 14, 2018 10:26 pm

» Recensione robot programmabile RCMoment
Da Admin Dom Gen 14, 2018 5:30 pm

» E' possibile aumentare la velocità dei servomotori con Arduino?
Da Admin Dom Gen 14, 2018 5:28 pm

» Come realizzare un impianto antincendio con Arduino - v1.0
Da Admin Ven Gen 12, 2018 3:02 pm

» Noleggio stampanti multifunzioni Brescia
Da Admin Mer Gen 10, 2018 2:19 pm

» Timer relè con arduino
Da falcio1515 Lun Gen 08, 2018 2:33 pm

I postatori più attivi del mese
Admin
 
falcio1515
 
FrankyFRD42
 
misterxfiles
 
HardAngelDark
 
Answers
 
sergio52
 

Come controllare un joystick con Arduino - Codice & Circuito

Vedere l'argomento precedente Vedere l'argomento seguente Andare in basso

Come controllare un joystick con Arduino - Codice & Circuito

Messaggio Da Admin il Dom Dic 24, 2017 11:29 am


La guida del progetto

In questo articolo verrà mostrato il codice per il progetto mostrato nel tutorial del joystick con Arduino. Consiste nell'accedere quattro led, posizionati corrispettivamente a nord, sud, ovest e est. Il compito del joystick è accenderli, in base al suo posizionamento dell'asse.

Il joystick ha le seguenti proprietà: Ha due assi X e Y. In base alla posizione della leve restituisce diversi valori analogici. Solitamente, come quello del video, hanno anche un bottone che si può premere. In questo progetto farà accendere tutti e quattro i led velocemente in 5 millisecondi.

Il circuito

Il circuito è molto semplice, trattandosi di un modulo. In base al modello potrebbe cambiare quindi consiglio sempre la visione del datasheet del componente che si possiede.
Per il collegamento dei LED il circuito è sempre lo stesso, collegati nei PIN digitali 2, 3, 4 e 5.

Il codice

Il codice Wiring è quanto segue:
Codice:
int nord = 2;
int ovest = 3;
int sud = 4;
int est = 5;
int bottone = 6;
int X = A1;
int Y = A0;
int X_let = 0;
int Y_let = 0;
int bottone_let = 0;

void setup() {
    pinMode(nord, OUTPUT);  
    pinMode(ovest, OUTPUT);
    pinMode(sud, OUTPUT);
    pinMode(est, OUTPUT);
    pinMode(bottone, INPUT);
    pinMode(X, INPUT);
    pinMode(Y, INPUT);
    digitalWrite(bottone, HIGH);
    Serial.begin(9600);
}

void loop() {
  //monitor seriale
    Serial.print("Bottone:  ");
    Serial.print(digitalRead(bottone));
    Serial.print("\n");
    Serial.print("Asse X: ");
    Serial.print(analogRead(X));
    Serial.print("\n");
    Serial.print("Asse Y: ");
    Serial.println(analogRead(Y));
    Serial.print("\n\n");
    delay(100);
  
  
  //codice programma
  
    X_let = analogRead(X);
    Y_let = analogRead(Y);
    bottone_let = digitalRead(bottone);
    
    if (Y_let<270) {
      digitalWrite(nord, HIGH);
      digitalWrite(ovest, LOW);
      digitalWrite(sud, LOW);
      digitalWrite(est, LOW);
    }
    
    if (Y_let>1000) {
      digitalWrite(nord, LOW);
      digitalWrite(ovest, LOW);
      digitalWrite(sud, HIGH);
      digitalWrite(est, LOW);
    }
    
    if (X_let<270) {
      digitalWrite(nord, LOW);
      digitalWrite(ovest, LOW);
      digitalWrite(sud, LOW);
      digitalWrite(est, HIGH);
    }
    
    if (X_let>1000) {
      digitalWrite(nord, LOW);
      digitalWrite(ovest, HIGH);
      digitalWrite(sud, LOW);
      digitalWrite(est, LOW);
    }
    
    if ((X_let>=400 && X_let<=600) && (Y_let>=400 && Y_let<=600)) {
      digitalWrite(nord, LOW);
      digitalWrite(ovest, LOW);
      digitalWrite(sud, LOW);
      digitalWrite(est, LOW);
    }
    
    if (bottone_let == 0) {
        for (int i=0; i<5; i++) {
          digitalWrite(nord, HIGH);
          digitalWrite(ovest, HIGH);
          digitalWrite(sud, HIGH);
          digitalWrite(est, HIGH);
          delay(50);
          digitalWrite(nord, LOW);
          digitalWrite(ovest, LOW);
          digitalWrite(sud, LOW);
          digitalWrite(est, LOW);
          delay(50);
        }
    }
    
    
}

Cosa acquistare

Per la realizzazione di questo progetto, oltre alla breadboard ed ai cavi, sono necessari i seguenti componenti.

➞ Trovi i componenti su Amazon.it:
- Joystick Arduino: http://amzn.to/2BtOPHx
- Arduino Uno: http://amzn.to/2prHIO4
avatar
Admin
♔ Amministratore

Messaggi Messaggi : 4255
Crediti Crediti : 11866
Reputazione Reputazione : 187
Data d'iscrizione Data d'iscrizione : 08.03.11
Età Età : 19
Località Località : Brescia

Vedi il profilo dell'utente http://www.wikiinfo.net

Tornare in alto Andare in basso

Vedere l'argomento precedente Vedere l'argomento seguente Tornare in alto


 
Permessi di questa sezione del forum:
Non puoi rispondere agli argomenti in questo forum