d
Dependencies: xtoff RF24Network mbed
main.cpp
- Committer:
- gimohd
- Date:
- 2018-07-12
- Revision:
- 0:a1bd5b12a602
File content as of revision 0:a1bd5b12a602:
#include "mbed.h" Serial pc(USBTX, USBRX); // Read the voltage AnalogIn ain(A2); /*I2C I2C i2c(D4, D5); //Slave address //char SLAVE_ADDRESS = 0b11110000; // 7 bits => 0b1111000 = 0x78 char * i2cRead(){ char data[2]; i2c.read(SLAVE_ADDRESS, data, 2); pc.printf("%s\r\n",data); return data; } */ float TARE_VALUE = 0 ; float CALIBRATION_VALUE = 0 ; int CALIBRATION_MASS = 1131; int SAMPLE_AMOUNT = 2000; float analogRead() { float beginval = 0; for(int i = 0; i < 100; i++) { beginval += ain.read(); } float gemiddeld = beginval/100; pc.printf("Gemiddelde %f\r\n", gemiddeld); float curval = 0; int del = 0 ; for(int i = 0; i < SAMPLE_AMOUNT; i++) { if ( ain.read()< gemiddeld +0.001012*2 && ain.read()> gemiddeld -0.001012*2){ curval += ain.read(); }else { del ++; } } pc.printf("Deleted %d\r\n", del); return (curval + beginval) /(SAMPLE_AMOUNT-del + 100); } float calculateMass(float value) { return ((TARE_VALUE - value)*(CALIBRATION_MASS))/(TARE_VALUE - CALIBRATION_VALUE); } void log(char c[]) { pc.printf("%s\r\n", c); } void tare() { TARE_VALUE = analogRead(); pc.printf("Tare %f\r\n", TARE_VALUE); } void init() { pc.printf("### INITIALISING ###\r\n"); tare(); pc.printf("### INIT COMPLETE ###\r\n"); } int main() { init(); while (1) { if(pc.readable()) { switch (pc.getc()) { case 't': tare(); break; case 'c': CALIBRATION_VALUE = analogRead(); pc.printf("Callibrate %f\r\n", CALIBRATION_VALUE); break; case 'y': float mass = calculateMass(analogRead()); pc.printf("MASS %f\r\n", mass); break; }; } wait_ms(500); } return 0; }