Go Down

Topic: progetto d'esame per diploma (Read 344 times) previous topic - next topic

bigloca93

May 07, 2013, 01:28 pm Last Edit: May 07, 2013, 08:29 pm by UweFederer Reason: 1
buongiorno a tutti. mi rivolgo a voi poichè ho un problema con il mio progetto d'esame. avevo in mente di fare una specie di "ping pong" con dei led comandati con un telecomando. utilizzo un arduino uno e un ricevitore ir tsop44. il gioco prevede 2 giocatori e ogni volta che raggiunge l'ultimo led il giocatore deve schiacciare il tasto del telecomando per far tornare indietro il segnale. accetto molto volentieri consigli per il programma. ho già un'idea per quanto riguarda il programma, ma non funziona!!!!! potete aiutarmi?? sono disperato, grazie mille a tutti in anticipo  :)

questo è il programma su cui vorrei basare il mio progetto, grazie mille a tutti :)

Code: [Select]
#include <IRremote.h>
int dato;
int pinArray[] = {0,1,2,3,4,5,6,7,8,9};
int count = 0, timer = 40;
int player0 = 0, player1 = 0;
int RECV_PIN = 14;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup(){
 // we make all the declarations at once
 for (count=0;count<10;count++) {
   pinMode(pinArray[count], OUTPUT);
 }
  Serial.begin(9600);
  pinMode(14, OUTPUT);
 pinMode(15, OUTPUT);
 digitalWrite(15, LOW);    // GND
 pinMode(16, OUTPUT);
 digitalWrite(16, HIGH);   // Vcc  
 
 irrecv.enableIRIn(); // Start the receiver
 

 while(player0==0)
 {
   delay(80);
   digitalWrite(0, HIGH);
   delay(80);
   digitalWrite(0, LOW);
   
   player0=digitalRead(14);
//    player1=digitalRead(15);
 }  
 player0=0; player1=0;
 delay(80);
}

void loop() {
 
 for(;; )
 {
   
 for (count=0;count<10;count++)
 {
    if (irrecv.decode(&results)) {
   dato = results.value;
   Serial.println(dato, DEC);
   
   if(dato==358||dato==2406)
     digitalWrite(8, HIGH);   // Vcc  
   digitalWrite(pinArray[count], HIGH);
   delay(timer);
   
   if(dato==357||dato==2405)
     digitalWrite(9, HIGH);   // Vcc  
   
   
   irrecv.resume(); // Receive the next value
   } {player1=2; break;}
   delay(timer);
 }
 if(player1==2) break;
 

   
 }
//Visualizza il vincitore del gioco
  while(player0==2) {delay(200); digitalWrite(9, HIGH); delay(200); digitalWrite(9, LOW);}
  while(player1==2) {delay(200); digitalWrite(0, HIGH); delay(200); digitalWrite(0, LOW);}
}

PaoloP

Regolamento --> http://arduino.cc/forum/index.php/topic,149082.0.html
Presentazioni --> http://arduino.cc/forum/index.php/topic,68174.0.html

Nel pin array hai messo i pin 0 e 1 che sono usati per la trasmissione seriale, dovresti shiftarli di 2.
Hai collegato il led al pin 0 usato dalla seriale.
Il digitalread(14) è collegato a un pin dichiarato come OUTPUT.

Spero che per la parte hardware sia più ferrato e abbia fatto abbondante uso delle resistenze.

Ma il diploma è per il 2014? Vero?  :smiley-sweat:

Alex96T


Ma il diploma è per il 2014? Vero?  :smiley-sweat:

ahahahha lo spero per lui  :smiley-mr-green:

bigloca93

ahahahahah no il diploma è per quest'anno... grazie mille, apporterò le modifiche. vi farò sapere!!!!!

ratto93

Se corri veloce come un fulmine, ti schianterai come un tuono.

Go Up