Registreer FAQ Berichten van vandaag


Ga terug   Scholieren.com forum / Technologie / Software & Hardware
Reageren
 
Topictools Zoek in deze topic
Oud 17-06-2014, 10:18
DiegoH_Concepts
Avatar van DiegoH_Concepts
DiegoH_Concepts is offline
Dag lezers!

Ik heb een for-loop nodig die 100 keer analogRead(A0) uitvoert en dan door 100 deelt. Zou de handigert/slimmert die ff kunnen schrijven zodat ik weer vooruit kan?

Ik ben bezig om met een ntc temperatuur te meten, wat ik al heb is de formule:
Code:
  
  int I = analogRead(A0);
  float A = 7.7;
  float B = 265;
  float ans = (I-B)/A;
zo heb ik hem in de code gezet, keuze voor float bij B heeft met afwijkingen te maken, en bij ans om een betere meting te doen.

Hoop op een antwoord! Vast wel actieve C++/Arduino gebruikers hier!

Ciao!
Met citaat reageren
Advertentie
Oud 17-06-2014, 14:06
ThomasJu
ThomasJu is offline
http://arduino.cc/en/Reference/For


Wat moet hij vervolgens met die waarde doen? want alleen die variabelen assignen heeft niet veel nut. Ik heb een voorbeeldje gemaakt waarin hij ze allemaal in een array stopt. (deze zou je daarna kunnen versturen)
Code:
int sensor_values[100];

void setup() {

}

void loop() {
	for (int i=0; i < 100; i++){
		int value = analogRead(A0);
		sensor_values[i] = value;
		delay(10);
   } 
}
Met citaat reageren
Oud 18-06-2014, 09:07
DiegoH_Concepts
Avatar van DiegoH_Concepts
DiegoH_Concepts is offline
Hij moet de uiteindelijke waarde (uit de berekening) Serial.print(en)
alvast bedankt voor dat voorbeeldje van de loop
Met citaat reageren
Oud 18-06-2014, 11:11
ThomasJu
ThomasJu is offline
Maar dan heb je het for loopje helemaal niet nodig.

Alles wat in de loopfunctie ( "void loop() {}") staat wordt elke keer herhaald. Dus als je alleen die sensor waarde wil printen dan kan dat ook zonder for loop.
Met citaat reageren
Oud 19-06-2014, 19:36
DiegoH_Concepts
Avatar van DiegoH_Concepts
DiegoH_Concepts is offline
Nee, want ik wil een gemiddelde van 100 metingen omdat mijn NTC een beetje afwijkt, maar ik denk dat ik het nu door heb

UPDATE:
ben zo dom geweest om mijn Arduino op school te laten, zou dit werken?:
Code:
void setup(){
  Serial.begin(9600);
}

void loop(){
  int noname = forLoop();
  int I = analogRead(A0);
  float A = 7.7;
  float B = 265;
  float ans = (I-B)/A;
}

int forLoop(){
  int waarde = 0;
  for (int waarde; waarde < 100; waarde++){
    return (analogRead(A0))/100;
  }
}

Laatst gewijzigd op 19-06-2014 om 19:55.
Met citaat reageren
Oud 19-06-2014, 21:41
ThomasJu
ThomasJu is offline
Vast niet. Ik zit momenteel mobiel, dus ik kan het niet compilen.

Maar die metingen zo doet hij binnen een paar milliseconden, dus ik weet sowieso niet hoeveel zin het heeft om daar een gemiddelde uit te nemen.

Maar er staan een aantal rare dingen in je code.
Er wordt nog nergens iets opgeteld voor het gemiddelde. Wel deel je al door 100. Je kan ook sowieso ff dat haakje van die return goed zetten.

Ik zou zelf ook gewoon die extra functie er uit halen. En de initialisatie van 'waarde' zou ik in het argument van de for loop doen.
Met citaat reageren
Advertentie
Reageren


Regels voor berichten
Je mag geen nieuwe topics starten
Je mag niet reageren op berichten
Je mag geen bijlagen versturen
Je mag niet je berichten bewerken

BB code is Aan
Smileys zijn Aan
[IMG]-code is Aan
HTML-code is Uit

Spring naar

Soortgelijke topics
Forum Topic Reacties Laatste bericht
Software & Hardware Weerstation Arduino
DiegoH_Concepts
6 01-03-2016 16:20


Alle tijden zijn GMT +1. Het is nu 22:06.