EEPROM.write met meerdere analoge sensoren

Hallo,

Ik voor een project op school bezig met onderzoek doen naar blauwalg.
Wij willen met een Arduino (Uno) via twee analoge sensoren de temperatuur en de lichtsterkte meten.
Ik had een script gevonden om dit op een SD-kaart te schrijven, maar deze is na twee weken nog steeds niet binnen.

Nu kwam onze begleidende docent met het idee dat er ook een intern opslag systeem zit in een Arduino.
Dit hebben we uitgezochten en heet "EEPROM". Ik heb een script waarmee hij op dit moment 1 sensor leest.
Deze sensor zit in de analoge poort 1.
Dit script is om te schrijven: http://arduino.cc/en/Tutorial/EEPROMWrite
Dit script is om de EEPROM te lezen: http://arduino.cc/en/Tutorial/EEPROMRead
Dit script is om de EEPROM leeg te maken: http://arduino.cc/en/Tutorial/EEPROMClear

Ik heb op meerdere manieren geprobeerd om een tweede sensor toe te voegen zodat die meegeschreven kan worden.
Het lezen daarvan lukt wel en ik kan dit vervolgens makkelijk in een excel bestand zetten.
Het leeg maken lukt ook.
Het enige probleem is dus hoe ik een tweede sensor toe kan voegen in het script om te schrijven.

Ik hoop dat iemand me kan helpen.
Anders ga ik het opnieuw proberen in het engelse forum :wink:

Gr. Jesse (3 VWO)

Ik snap niet zo goed wat er niet gaat.
voor 1 sensor heb je vast iets als

  // need to divide by 4 because analog inputs range from
  // 0 to 1023 and each byte of the EEPROM can only hold a
  // value from 0 to 255.
  int val = analogRead(0) / 4;
 
  // write the value to the appropriate byte of the EEPROM.
  // these values will remain there when the board is
  // turned off.
  EEPROM.write(addr, val);
 
  // advance to the next address.  there are 512 bytes in
  // the EEPROM, so go back to 0 when we hit 512.
  addr = addr + 1;

voor 2 sensors heb je zo iets als

  // need to divide by 4 because analog inputs range from
  // 0 to 1023 and each byte of the EEPROM can only hold a
  // value from 0 to 255.
  int val = analogRead(0) / 4;
 
  // write the value to the appropriate byte of the EEPROM.
  // these values will remain there when the board is
  // turned off.
  EEPROM.write(addr, val);
 
  // advance to the next address.  there are 512 bytes in
  // the EEPROM, so go back to 0 when we hit 512.
  addr = addr + 1;
  // need to divide by 4 because analog inputs range from
  // 0 to 1023 and each byte of the EEPROM can only hold a
  // value from 0 to 255.
  int val2 = analogRead(1) / 4;
 
  // write the value to the appropriate byte of the EEPROM.
  // these values will remain there when the board is
  // turned off.
  EEPROM.write(addr, val2);
 
  // advance to the next address.  there are 512 bytes in
  // the EEPROM, so go back to 0 when we hit 512.
  addr = addr + 1;

Maar met 512 bytes en 2 bytes per meting heb je 256 metingen. Dan ga je echt niet teveel moeten meten.

Met vriendelijke groet
Jantje

Oke, enorm bedankt.

Ik zal het dinsdag proberen (lang weekend, hij is nu met 1 sensor aan het meten)
Mocht het niet lukken laat ik het wel weten :slight_smile:
Dat van die aantal metingen hadden we al uitgerekend, maar toch bedankt :wink:

Gr. Jesse