こて先温度計 Sodering Iron Tips Thermometer

Dependencies:   AQM0802 MAX31855 mbed

Committer:
takafuminaka
Date:
Mon Jul 20 13:40:05 2015 +0000
Revision:
0:441d8f05d7de
???????????????

Who changed what in which revision?

UserRevisionLine numberNew contents of line
takafuminaka 0:441d8f05d7de 1 //**********************
takafuminaka 0:441d8f05d7de 2 // こて先温度計:Soldering Iron Tips Thermometer with MAX31855K
takafuminaka 0:441d8f05d7de 3 //
takafuminaka 0:441d8f05d7de 4 // こて先温度計シールド:Thermocouple Shield for Soldering Iron
takafuminaka 0:441d8f05d7de 5 // https://www.switch-science.com/catalog/2322/
takafuminaka 0:441d8f05d7de 6 // 3.3V用にSJ1, SJ2をショートして使用しています
takafuminaka 0:441d8f05d7de 7 // It is the shield with MAX31855K and K-type thermocouple.
takafuminaka 0:441d8f05d7de 8 //
takafuminaka 0:441d8f05d7de 9 // Universal Embedded Board for LPC11U68 by HAPI-TechSolution
takafuminaka 0:441d8f05d7de 10 // https://www.switch-science.com/catalog/2316/
takafuminaka 0:441d8f05d7de 11 //
takafuminaka 0:441d8f05d7de 12 // I2C接続の小型LCD搭載ボード(3.3V版): 8x2 LCD display
takafuminaka 0:441d8f05d7de 13 // https://www.switch-science.com/catalog/1405/
takafuminaka 0:441d8f05d7de 14 // 8x2 LCD with AQM0802 controller
takafuminaka 0:441d8f05d7de 15 //
takafuminaka 0:441d8f05d7de 16 //**********************
takafuminaka 0:441d8f05d7de 17 #include "mbed.h"
takafuminaka 0:441d8f05d7de 18 #include "AQM0802.h"
takafuminaka 0:441d8f05d7de 19 #include "max31855.h"
takafuminaka 0:441d8f05d7de 20
takafuminaka 0:441d8f05d7de 21 #define NEED_CONSOLE_OUTPUT 0
takafuminaka 0:441d8f05d7de 22 #define NEED_LCD_OUTPUT 1
takafuminaka 0:441d8f05d7de 23
takafuminaka 0:441d8f05d7de 24 #if NEED_CONSOLE_OUTPUT
takafuminaka 0:441d8f05d7de 25 Serial pc(USBTX, USBRX);
takafuminaka 0:441d8f05d7de 26 #define PC(...) { pc.printf(__VA_ARGS__); }
takafuminaka 0:441d8f05d7de 27 #else
takafuminaka 0:441d8f05d7de 28 #define PC(...) /* nothing */
takafuminaka 0:441d8f05d7de 29 #endif /* #if NEED_CONSOLE_OUTPUT */
takafuminaka 0:441d8f05d7de 30
takafuminaka 0:441d8f05d7de 31 I2C i2c(SDA, SCL);
takafuminaka 0:441d8f05d7de 32 SPI spi(P0_9, P0_8, P1_29);
takafuminaka 0:441d8f05d7de 33 max31855 max1(spi, P0_2);
takafuminaka 0:441d8f05d7de 34
takafuminaka 0:441d8f05d7de 35 #if NEED_LCD_OUTPUT
takafuminaka 0:441d8f05d7de 36 AQM0802 lcd(i2c);
takafuminaka 0:441d8f05d7de 37 #endif
takafuminaka 0:441d8f05d7de 38
takafuminaka 0:441d8f05d7de 39 int main()
takafuminaka 0:441d8f05d7de 40 {
takafuminaka 0:441d8f05d7de 41 char msg1[10],msg2[10];
takafuminaka 0:441d8f05d7de 42 float fvalue;
takafuminaka 0:441d8f05d7de 43 float chiptemp;
takafuminaka 0:441d8f05d7de 44 int faultCode;
takafuminaka 0:441d8f05d7de 45
takafuminaka 0:441d8f05d7de 46 //Initialise chip (starts internal timer)
takafuminaka 0:441d8f05d7de 47 max1.initialise();
takafuminaka 0:441d8f05d7de 48 wait(2);
takafuminaka 0:441d8f05d7de 49
takafuminaka 0:441d8f05d7de 50 sprintf(msg1,"Temp");
takafuminaka 0:441d8f05d7de 51 fvalue = max1.read_temp();
takafuminaka 0:441d8f05d7de 52 wait_ms(500);
takafuminaka 0:441d8f05d7de 53
takafuminaka 0:441d8f05d7de 54 while(1){
takafuminaka 0:441d8f05d7de 55 fvalue = max1.read_temp();
takafuminaka 0:441d8f05d7de 56 PC("%d\n",fvalue);
takafuminaka 0:441d8f05d7de 57
takafuminaka 0:441d8f05d7de 58 if (fvalue > 2000.){
takafuminaka 0:441d8f05d7de 59 faultCode = fvalue - 2000;
takafuminaka 0:441d8f05d7de 60 if((faultCode & 4 ) != 0){
takafuminaka 0:441d8f05d7de 61 sprintf(msg2,"Short Vc");
takafuminaka 0:441d8f05d7de 62 PC("ERROR: Short to VCC");
takafuminaka 0:441d8f05d7de 63 }else if((faultCode & 2 ) != 0){
takafuminaka 0:441d8f05d7de 64 sprintf(msg2,"Short G ");
takafuminaka 0:441d8f05d7de 65 PC("ERROR: Short to GND");
takafuminaka 0:441d8f05d7de 66 }else if((faultCode & 1 ) != 0){
takafuminaka 0:441d8f05d7de 67 PC("ERROR: Open Circuit");
takafuminaka 0:441d8f05d7de 68 sprintf(msg2,"Open ");
takafuminaka 0:441d8f05d7de 69 }
takafuminaka 0:441d8f05d7de 70 } else {
takafuminaka 0:441d8f05d7de 71 sprintf(msg2,"%6.2f%cC",fvalue,0xf2);
takafuminaka 0:441d8f05d7de 72 }
takafuminaka 0:441d8f05d7de 73
takafuminaka 0:441d8f05d7de 74 chiptemp = max1.chipTemp * 0.25;
takafuminaka 0:441d8f05d7de 75 // sprintf(msg1,"%6.2f%cC",chiptemp,0xf2);
takafuminaka 0:441d8f05d7de 76
takafuminaka 0:441d8f05d7de 77 PC("%7.2f : %7.2f\n",fvalue, chiptemp);
takafuminaka 0:441d8f05d7de 78
takafuminaka 0:441d8f05d7de 79 #if NEED_LCD_OUTPUT
takafuminaka 0:441d8f05d7de 80 lcd.locate(0,0);
takafuminaka 0:441d8f05d7de 81 lcd.print(msg1);
takafuminaka 0:441d8f05d7de 82 lcd.locate(0,1);
takafuminaka 0:441d8f05d7de 83 lcd.print(msg2);
takafuminaka 0:441d8f05d7de 84
takafuminaka 0:441d8f05d7de 85 #endif
takafuminaka 0:441d8f05d7de 86 wait_ms(500);
takafuminaka 0:441d8f05d7de 87 }
takafuminaka 0:441d8f05d7de 88
takafuminaka 0:441d8f05d7de 89 }