This program operates a pH meter and requires an Excel spreadsheet template available at www.kissinstrments.com
main.cpp@0:f6b418db17d2, 2016-07-22 (annotated)
- Committer:
- KISScientific
- Date:
- Fri Jul 22 00:03:25 2016 +0000
- Revision:
- 0:f6b418db17d2
pH-V12 version 1
Who changed what in which revision?
User | Revision | Line number | New 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 |