Advertisement
Guest User

prova

a guest
Oct 18th, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.12 KB | None | 0 0
  1. #define ARRAY_SIZE 50
  2.  
  3. //SENSORI e PIN SEDUTA
  4. //int p04 = 3; //sensore S3
  5. int p04 = 29; //sensore S3
  6. int p03 = 4; //sensore 5
  7. int p61 = 5; //ex sensore 7 ora S2
  8. int p05 = 7; //ex sensore 8 ora S1
  9.  
  10. int p58 = 2; //lettura sensori seduta
  11.  
  12. long sensorS3[ARRAY_SIZE]; //array per la media
  13. long sensor5[ARRAY_SIZE];
  14. long sensorS1[ARRAY_SIZE];
  15. long sensorS2[ARRAY_SIZE];
  16.  
  17. long sensorValueS3=0; //variabili da stampare nel monitor seriale
  18. long sensorValue5=0;
  19. long sensorValueS1=0;
  20. long sensorValueS2=0;
  21.  
  22. //SENSORI e PIN SCHIENALE
  23. int p62 = 8; //sensore 14
  24. int p63 = 27; //ex sensore 15 ora 3
  25. int p53 = 28; //sensore 18
  26. int p50 = 30; //sensore 19
  27.  
  28. int p60 = 24; //lettura sensori schienale
  29.  
  30. long sensor14[ARRAY_SIZE]; //array per la media
  31. long sensor3[ARRAY_SIZE];
  32. long sensor18[ARRAY_SIZE];
  33. long sensor19[ARRAY_SIZE];
  34.  
  35. long sensorValue14=0; //variabili da stampare nel monitor seriale
  36. long sensorValue3=0;
  37. long sensorValue18=0;
  38. long sensorValue19=0;
  39.  
  40. //FINO A QUI C'è TUTTA LA DEFINIZIONE DEI PIN DEI SENSORI, DEGLI ARRAY PER LA MEDIA E DELLE VARIABILI IN CUI MEMORIZZARE LA MEDIA CALCOLATA
  41.  
  42.  
  43. void setup() {
  44.   // put your setup code here, to run once:
  45. Serial.begin(115200);
  46. }
  47.  
  48. void loop() {
  49. //Acquisizione dei valori da mettere nell'array per farne la media
  50.  
  51. //LETTURA DI UN SOLO SENSORE
  52.     pinMode (p04, OUTPUT);  //leggo
  53.     pinMode (p03, INPUT);  //non leggo
  54.     pinMode (p61, INPUT);
  55.     pinMode (p05, INPUT);
  56.     pinMode (p62, INPUT); //NON leggo
  57.     pinMode (p63, INPUT);
  58.     pinMode (p53, INPUT);
  59.     pinMode (p50, INPUT);
  60.     digitalWrite(p04, LOW); //valore logico basso (alta impedenza)
  61.     sensorValueS3 = analogRead(p58); //lettura del valore dall'ADC della seduta e memorizzazione (NON NELL'ARRAY PERCHé VOLEVO PROVARE CON MENO OPERAZIONI POSSIBILI PER VEDERE IL MINIMO DEL TEMPO NECESSARIO)
  62.     currentTime = micros();
  63.     int numberSamples = 0;
  64.     Serial.println(micros());
  65.     while (currentTime < 1000000){
  66.         if(analogRead(p58))
  67.             numberCampions++; //Cosi conto quanti valori leggo in un secondo
  68.         currentTime = micros(); //aggiorno perchè il valore del timer è andato avanti finche non sarà pari a 1 secondo come regola del while
  69.     }
  70.     //Dal momento che arduino esegue il codice in loop puoi fare una media dei valri letti cosi
  71.     //quindi la parte del while precedente non servirebbe perche sarebbe la funzione getNumberSamples() scritta sotto
  72.     int avgSamples = 0
  73.     int i = 0
  74.     int sumSamples = 0
  75.     while(i<10000)
  76.         sumSamples+=getNumberSamples()
  77.     avgSamples=sumSamples/i
  78.     printf("Media Valori letti: %d\n", avgSamples );
  79. }
  80.  
  81. int getNumberSamples(){
  82.     int numberSamples = 0;
  83.     currentTime = micros();
  84.     Serial.println(micros());
  85.     while (currentTime < 1000000){
  86.         if(analogRead(p58))
  87.             numberSamples++; //Cosi conto quanti valori leggo in un secondo
  88.         currentTime = micros(); //aggiorno perchè il valore del timer è andato avanti finche non sarà pari a 1 secondo come regola del while
  89.     }
  90.     azzerareTimer//qui dovresti azzerare il timer con una delle funzioni di arduino
  91.     return numberSamples;
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement