This program operates a pH meter and requires an Excel spreadsheet template available at www.kissinstrments.com

Dependencies:   mbed

Committer:
KISScientific
Date:
Fri Jul 22 00:03:25 2016 +0000
Revision:
0:f6b418db17d2
pH-V12 version 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
KISScientific 0:f6b418db17d2 1
KISScientific 0:f6b418db17d2 2 // The following is C++ code for the microcontroller pH meter.
KISScientific 0:f6b418db17d2 3
KISScientific 0:f6b418db17d2 4 #include "mbed.h"
KISScientific 0:f6b418db17d2 5 #include "USBSerial.h"
KISScientific 0:f6b418db17d2 6
KISScientific 0:f6b418db17d2 7 //DigitalOut reset(p8);
KISScientific 0:f6b418db17d2 8 Serial pc(USBTX, USBRX);
KISScientific 0:f6b418db17d2 9 AnalogIn input1(p15);
KISScientific 0:f6b418db17d2 10 DigitalOut d1(p16);
KISScientific 0:f6b418db17d2 11 DigitalOut d2(p17);
KISScientific 0:f6b418db17d2 12 AnalogOut offset(p18);
KISScientific 0:f6b418db17d2 13 DigitalOut d4(p19);
KISScientific 0:f6b418db17d2 14 DigitalOut d5(p20);
KISScientific 0:f6b418db17d2 15 DigitalOut myled1(LED1);
KISScientific 0:f6b418db17d2 16 DigitalOut myled2(LED2);
KISScientific 0:f6b418db17d2 17 DigitalOut myled3(LED3);
KISScientific 0:f6b418db17d2 18 DigitalOut myled4(LED4);
KISScientific 0:f6b418db17d2 19 unsigned short pHvalue;
KISScientific 0:f6b418db17d2 20 unsigned short avg;
KISScientific 0:f6b418db17d2 21 float Ioffset = 0.3;
KISScientific 0:f6b418db17d2 22 float Noffset = 0.3;
KISScientific 0:f6b418db17d2 23 char ch;
KISScientific 0:f6b418db17d2 24 int i = 1;
KISScientific 0:f6b418db17d2 25
KISScientific 0:f6b418db17d2 26 void rec_param(float& Noffset)
KISScientific 0:f6b418db17d2 27 {
KISScientific 0:f6b418db17d2 28 pc.putc(0x0C); // Write to computer serial port
KISScientific 0:f6b418db17d2 29 ch = pc.getc();
KISScientific 0:f6b418db17d2 30 while (ch != ' ') {
KISScientific 0:f6b418db17d2 31 ch = pc.getc();
KISScientific 0:f6b418db17d2 32 }
KISScientific 0:f6b418db17d2 33 pc.scanf("%f", &Noffset);
KISScientific 0:f6b418db17d2 34 return;
KISScientific 0:f6b418db17d2 35 }
KISScientific 0:f6b418db17d2 36
KISScientific 0:f6b418db17d2 37 int main(void)
KISScientific 0:f6b418db17d2 38 {
KISScientific 0:f6b418db17d2 39 rec_param(Noffset);
KISScientific 0:f6b418db17d2 40 wait(0.5);
KISScientific 0:f6b418db17d2 41 Ioffset = Noffset;
KISScientific 0:f6b418db17d2 42 offset = Ioffset;
KISScientific 0:f6b418db17d2 43
KISScientific 0:f6b418db17d2 44 while(1) {
KISScientific 0:f6b418db17d2 45 myled1 = myled2 = myled3 = myled4 = 0;
KISScientific 0:f6b418db17d2 46 if(pc.readable()) {
KISScientific 0:f6b418db17d2 47 myled4 = 1;
KISScientific 0:f6b418db17d2 48 myled1 = myled2 = myled3 = 0;
KISScientific 0:f6b418db17d2 49 ch = pc.getc();
KISScientific 0:f6b418db17d2 50 //check for stop
KISScientific 0:f6b418db17d2 51 if (ch == 'Q') {
KISScientific 0:f6b418db17d2 52 myled4 = 0;
KISScientific 0:f6b418db17d2 53 ch = ' ';
KISScientific 0:f6b418db17d2 54 }
KISScientific 0:f6b418db17d2 55 if (ch == 'S') {
KISScientific 0:f6b418db17d2 56 myled3 = 1;
KISScientific 0:f6b418db17d2 57 pHvalue = input1.read_u16();
KISScientific 0:f6b418db17d2 58 pc.putc((pHvalue>>8)&0xFF);
KISScientific 0:f6b418db17d2 59 pc.putc((pHvalue>>0)&0xFF);
KISScientific 0:f6b418db17d2 60 wait(.003); //added this 2-16 , .005
KISScientific 0:f6b418db17d2 61 }
KISScientific 0:f6b418db17d2 62 myled3 = 0;
KISScientific 0:f6b418db17d2 63 }
KISScientific 0:f6b418db17d2 64 }
KISScientific 0:f6b418db17d2 65 }
KISScientific 0:f6b418db17d2 66