HOME

BEGINPAGINA

DOWNLOADS:

WEBRADIO

COMPOORT

DATAGRAFIEK

ARDUINO

DATALOGGER

Arduino DATALOGGER

hier laden

Voor meer analoge poorten kunt u het beste een

Arduino Nano gebruiken.

Arduino Nano

Arduino Nano

Het programma is gemaakt met de gratis Arduino IDE

Indien gewenst kan men een klein Oled display aan-

sluiten via de i2c bus. Hieronder een afbeelding bij een Uno

Oled display

Aansluitingen:

Arduino Display
GND Gnd
3.3V VDD
A5 SCK
A4 SDA

 

Datalogger programma voor Arduino Nano en

Oled 128x64 I2C display.


#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

Adafruit_SSD1306 display;
int meetwaarde, i;
float volt;
float nieuweTijd = 0;
float oudeTijd = 0;
float meetTijd = 0;
unsigned long monsterTijd = 5;//in seconden = 1000 millis
String commando=" ";

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//Oled display 128 x 32 pixels i2c bus
//heeft meestal het adres 0x3c of draai eerst
//i2c-scan om het adres te achterhalen.
display.begin(SSD1306_SWITCHCAPVCC,0x3c);
display.setTextColor(WHITE);
display.display();//geeft Adafruit splashscreen
delay(2000);
display.clearDisplay();

Serial.print("Een meting per ");
Serial.print(monsterTijd);
Serial.println(" seconde");
Serial.println("Een getal als periode in seconden");
Serial.println("Enkel woord als commando's: Begin en End");
Serial.println("Begin");
Serial.println("Sec A0 A1 A2 A3 A6 A7");

}

void loop() {
// put your main code here, to run repeatedly:
//6 kanalen A0 A1 A2 A3 A6 A7; A4 = SDA en A5 = SCK voor I2C
//seriele opdracht monstertijd in milliseconden

//Commando's via seriele poort
if(Serial.available()){
commando = Serial.readString();
monsterTijd = commando.toInt();
if(monsterTijd==0){monsterTijd=1;}
Serial.println(monsterTijd);
}
nieuweTijd = millis()/1000;
meetTijd = nieuweTijd - 2;
oudeTijd = nieuweTijd;
//display
display.setCursor(0,0);
display.print("DATALOGGER per ");
display.print(monsterTijd);
display.print(" sec");
display.setCursor(0,8);
display.print("tijd = " );
display.print(meetTijd,0);
display.print(" sec.");
//serieel
Serial.print(meetTijd,0);
Serial.print(" ");
//metingen
//A0
meetwaarde = analogRead(A0);
display.setCursor(0,16);
display.print("A0=");
display.print( meetwaarde);
Serial.print( meetwaarde);
Serial.print(" ");
//A1
meetwaarde = analogRead(A1);
volt = 5 * meetwaarde / 1024;
display.setCursor(0,24);
display.print("A1=");
display.print( meetwaarde);
Serial.print( meetwaarde);
Serial.print(" ");
//A2
meetwaarde = analogRead(A2);
volt = 5 * meetwaarde / 1024;
display.setCursor(45,16);
display.print("A2=");
display.print( meetwaarde);
Serial.print( meetwaarde);
Serial.print(" ");
//A3
meetwaarde = analogRead(A3);
volt = 5 * meetwaarde / 1024;
display.setCursor(45,24);
display.print("A3=");
display.print( meetwaarde);
Serial.print( meetwaarde);
Serial.print(" ");
//A4 in gebruik bij i2c bus
//A5 in gebruik bij i2c bus
//A6 niet aan gesloten bij arduino uno
meetwaarde = analogRead(A6);
volt = 5 * meetwaarde / 1024;
display.setCursor(90,16);
display.print("A6=");
display.print( meetwaarde);
Serial.print( meetwaarde);
Serial.print(" ");
//A7 niet aan gesloten bij arduino uno
meetwaarde = analogRead(A7);
volt = 5 * meetwaarde / 1024;
display.setCursor(90,24);
display.print("A7=");
display.print( meetwaarde);
display.display();
Serial.println( meetwaarde);
//wacht tot monstertijd voorbij is
display.clearDisplay();
while(nieuweTijd < (oudeTijd + monsterTijd)){

nieuweTijd = millis()/1000;
}
}