Merge Dev into mainline (#1)

* Removing USB
Need to refine the drive to the iron tip

* Update README.md

* * Rewrite all code from scratch
* Only kept settings
* New font
* New PID
* New Menus
* Use Hardware I2C
* Faster System
* Better Heating Time
* No USB
* Full Menu System
This commit is contained in:
Ben V. Brown
2016-09-30 00:27:55 +10:00
committed by GitHub
parent 278d29bf4c
commit 0b26e669af
77 changed files with 3669 additions and 10430 deletions

41
workspace/ts100/src/PID.c Normal file
View File

@@ -0,0 +1,41 @@
/*
* PID.c
*
* Created on: 20 Sep 2016
* Author: ralim
*/
#include "PID.h"
#define MAXPIDOUTPUT 50000
//This function computes the new value for the ON time of the system
//This is the return value from this function
int32_t computePID(uint16_t setpoint) {
int32_t ITerm = 0;
static int16_t lastReading = 0;
uint16_t currentReading = readIronTemp(0, 1); //get the current temp of the iron
int16_t error = (int16_t) setpoint - (int16_t) currentReading; //calculate the error term
ITerm += (pidSettings.ki * error);
if (ITerm > MAXPIDOUTPUT)
ITerm = MAXPIDOUTPUT;
else if (ITerm < 0)
ITerm = 0; //cap at 0 since we cant force the iron to cool itself :)
int16_t DInput = (currentReading - lastReading); //compute the input to the D term
int32_t output = (pidSettings.kp * error) + (ITerm)
- (pidSettings.kd * DInput);
if (output > MAXPIDOUTPUT)
output = MAXPIDOUTPUT;
else if (output < 0)
output = 0;
lastReading = currentReading; //storing values for next iteration of the loop
return output;
}
/*Sets up the pid values*/
void setupPID(void) {
pidSettings.kp = 22;
pidSettings.ki = 7;
pidSettings.kd = 2;
}