Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: 4DGL-uLCD-SE MAX31855 mbed-rtos mbed
Fork of Coffee_Roaster_Threads by
Diff: main.cpp
- Revision:
- 2:c94244d1cab4
- Parent:
- 1:26267401354a
- Child:
- 3:0f0e79eff4a7
--- a/main.cpp Wed Nov 12 19:17:19 2014 +0000
+++ b/main.cpp Thu Nov 13 01:21:06 2014 +0000
@@ -3,6 +3,12 @@
#include "rtos.h"
#include "stdio.h"
#include "max31855.h"
+#include <mpr121.h>
+
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
uLCD_4DGL uLCD(p9,p10,p11); // serial tx, serial rx, reset pin;
SPI thermoSPI(p5,p6,p7); // setup SPI interface
@@ -13,10 +19,22 @@
DigitalIn up(p19); // User pushbutton up controller
DigitalIn down(p18); // User pushbutton down button controller
-int settemp = 75; // initial temperature set
+int settemp = 85; // initial temperature set
float ftemperature = 0; // float variable for temperature
float ctemperature = 0; // float variable for temperature
+int key_code=0;
+
+// Create the interrupt receiver object on pin 26
+InterruptIn interrupt(p26);
+
+// Setup the i2c bus on pins 28 and 27
+I2C i2c(p28, p27);
+
+// Setup the Mpr121:
+// constructor(i2c object, i2c address of the mpr121)
+Mpr121 mpr121(&i2c, Mpr121::ADD_VSS);
+
// Thread 1: print the elapsed time on line 1 of the uLCD (i.e., HH:MM:SS)
void elapsedtime(void const *args) { //elapsed timer for when program starts
int s = 00; //seconds
@@ -64,10 +82,46 @@
}
}
-// Thread 3: read in user input from buttons..
-void thermoset (void const *args) { //
- while(true){
- if (up==1){
+
+void fallInterrupt() {
+ int i=0;
+ int value=mpr121.read(0x00);
+ value +=mpr121.read(0x01)<<8;
+ // LED demo mod
+ i=0;
+ // puts key number out to LEDs for demo
+ for (i=0; i<12; i++) {
+ if (((value>>i)&0x01)==1) key_code=i+1;
+ }
+ led4=key_code & 0x01;
+ led3=(key_code>>1) & 0x01;
+ led2=(key_code>>2) & 0x01;
+ led1=(key_code>>3) & 0x01;
+}
+
+
+int main() {
+ max1.initialise(); //initialize thermocouple IC
+ uLCD.baudrate(3000000); //set LCD baudrate
+
+ interrupt.fall(&fallInterrupt);
+ interrupt.mode(PullUp);
+
+ Thread t1(elapsedtime); //run elapsed time counter
+ Thread t2(thermoread); //read and display temperature from thermocouple
+
+ while(1){ //hystersis program
+ key_code = 0;
+ four_slots.wait();
+ uLCD.color(0xFFFF00);
+ uLCD.locate(0,10); //col,row
+ //wait(0.1);
+ uLCD.printf("Test.");
+ uLCD.locate(0,11); //col,row
+ uLCD.printf("%2d", key_code);
+ four_slots.release();
+
+ if (key_code == 1){
settemp += 1;
four_slots.wait();
uLCD.color(0xFFFF00);
@@ -76,9 +130,9 @@
uLCD.locate(0,6); //col,row
uLCD.printf("%d",settemp);
four_slots.release();
- wait(.5);
+ //wait(.5);
}
- if (down==1){
+ if (key_code== 2){
settemp -= 1;
four_slots.wait();
uLCD.color(0xFFFF00);
@@ -87,26 +141,15 @@
uLCD.locate(0,6); //col,row
uLCD.printf("%d",settemp);
four_slots.release();
- wait(.5);
+ //wait(.5);
}
+
+ if(ftemperature < settemp-1){ //condition for 1 degree under
+ toggle=1; //turn on ssr for nichrome wire
+ }
+ if(ftemperature > settemp+1){ //condition for 1 degree over
+ toggle=0; //turn off ssr for nichrome wire
+ }
+ // wait(.1); //check every 1 second
}
}
-
-
-int main() {
- max1.initialise(); //initialize thermocouple IC
- uLCD.baudrate(3000000); //set LCD baudrate
- Thread t1(elapsedtime); //run elapsed time counter
- Thread t2(thermoread); //read and display temperature from thermocouple
- Thread t3(thermoset); //runs thread that checks to see if user has changed the temperature setpoint
-
- while(1){ //hystersis program
- if(ftemperature < settemp-1){ //condition for 1 degree under
- toggle=1; //turn on ssr for nichrome wire
- }
- if(ftemperature > settemp+1){ //condition for 1 degree over
- toggle=0; //turn off ssr for nichrome wire
- }
- wait(1); //check every 1 second
- }
-}
