Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ARRAY_SIZE 50
- //SENSORI e PIN SEDUTA
- //int p04 = 3; //sensore S3
- int p04 = 29; //sensore S3
- int p03 = 4; //sensore 5
- int p61 = 5; //ex sensore 7 ora S2
- int p05 = 7; //ex sensore 8 ora S1
- int p58 = 2; //lettura sensori seduta
- long sensorS3[ARRAY_SIZE]; //array per la media
- long sensor5[ARRAY_SIZE];
- long sensorS1[ARRAY_SIZE];
- long sensorS2[ARRAY_SIZE];
- long sensorValueS3=0; //variabili da stampare nel monitor seriale
- long sensorValue5=0;
- long sensorValueS1=0;
- long sensorValueS2=0;
- //SENSORI e PIN SCHIENALE
- int p62 = 8; //sensore 14
- int p63 = 27; //ex sensore 15 ora 3
- int p53 = 28; //sensore 18
- int p50 = 30; //sensore 19
- int p60 = 24; //lettura sensori schienale
- long sensor14[ARRAY_SIZE]; //array per la media
- long sensor3[ARRAY_SIZE];
- long sensor18[ARRAY_SIZE];
- long sensor19[ARRAY_SIZE];
- long sensorValue14=0; //variabili da stampare nel monitor seriale
- long sensorValue3=0;
- long sensorValue18=0;
- long sensorValue19=0;
- //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
- void setup() {
- // put your setup code here, to run once:
- Serial.begin(115200);
- }
- void loop() {
- //Acquisizione dei valori da mettere nell'array per farne la media
- //LETTURA DI UN SOLO SENSORE
- pinMode (p04, OUTPUT); //leggo
- pinMode (p03, INPUT); //non leggo
- pinMode (p61, INPUT);
- pinMode (p05, INPUT);
- pinMode (p62, INPUT); //NON leggo
- pinMode (p63, INPUT);
- pinMode (p53, INPUT);
- pinMode (p50, INPUT);
- digitalWrite(p04, LOW); //valore logico basso (alta impedenza)
- 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)
- currentTime = micros();
- int numberSamples = 0;
- Serial.println(micros());
- while (currentTime < 1000000){
- if(analogRead(p58))
- numberCampions++; //Cosi conto quanti valori leggo in un secondo
- currentTime = micros(); //aggiorno perchè il valore del timer è andato avanti finche non sarà pari a 1 secondo come regola del while
- }
- //Dal momento che arduino esegue il codice in loop puoi fare una media dei valri letti cosi
- //quindi la parte del while precedente non servirebbe perche sarebbe la funzione getNumberSamples() scritta sotto
- int avgSamples = 0
- int i = 0
- int sumSamples = 0
- while(i<10000)
- sumSamples+=getNumberSamples()
- avgSamples=sumSamples/i
- printf("Media Valori letti: %d\n", avgSamples );
- }
- int getNumberSamples(){
- int numberSamples = 0;
- currentTime = micros();
- Serial.println(micros());
- while (currentTime < 1000000){
- if(analogRead(p58))
- numberSamples++; //Cosi conto quanti valori leggo in un secondo
- currentTime = micros(); //aggiorno perchè il valore del timer è andato avanti finche non sarà pari a 1 secondo come regola del while
- }
- azzerareTimer//qui dovresti azzerare il timer con una delle funzioni di arduino
- return numberSamples;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement