Example project for the Rioux Chem control box
Rioux Chem Control Box
This is the example project for the Rioux Chem Control Box. I have posted some youtube videos to guide you through the hardware and software:
Rioux Chem Control Box - Hardware
http://www.youtube.com/watch?v=MoZ92GRYa4s
Rioux Chem Control Box - Software - Part I
http://www.youtube.com/watch?v=_MwaTLL4dyA==
Rioux Chem Control Box - Software - Part II
http://www.youtube.com/watch?v=j_P89izfgoQ
main.cpp
- Committer:
- wavenumber
- Date:
- 2021-09-20
- Revision:
- 7:de452fceafc1
- Parent:
- 3:cb48919cd5e8
File content as of revision 7:de452fceafc1:
#include "mbed.h"
#include "CHEM_BOX_INTERFACE.h"
Timer ControlLoopTimer;
float CurrentTemperature;
#define VT100_RED "\033[31;40m"
#define VT100_GREEN "\033[32;40m"
#define VT100_YELLOW "\033[33;40m"
#define VT100_BLUE "\033[34;40m"
#define VT100_MAGENTA "\033[35;40m"
#define VT100_CYAN "\033[36;40m"
#define VT100_WHITE "\033[37;40m"
#define VT100_RESET "\033c"
extern void WriteRAW_DAC_Value(uint8_t Channel,uint16_t Data);
int main()
{
int i;
char * Color = VT100_WHITE;
//This function always needs called before you do anythign wit the CHEM BOX.
InitChemBox();
GREEN_LED = 1;
RED_LED = 0;
//Beep 6 times
for(i=0;i<6;i++)
{
Buzz(.05); //Since the Buzz function immediately returns we should wait a bit before calling it again in the loop
wait(.1); //I want a 50% duty cycle so I will wait twice as long as my previous Buzz() call
GREEN_LED = !GREEN_LED;
RED_LED = !RED_LED;
}
GREEN_LED = 1;
RED_LED = 0;
//Here is the main super loop
//reset and start our control loop Timer
ControlLoopTimer.reset();
ControlLoopTimer.start();
while(1)
{
//Call this often if you want the USB interface/Terminal
ProcessTerminal();
//Call this process incoming lines from the pump
ProcessRS232();
/*
if(ControlLoopTimer.read_ms() >= 1000)
{
ControlLoopTimer.reset();
PC.printf(VT100_RESET);
}*/
/*
//control loop example
//We will do something ever 250mS.
//Use a timer and an if statement we won't hold the microprocessor from do other things in the main super loop!
if(ControlLoopTimer.read_ms >= 250)
{
ControlLoopTimer.reset();
//if 250mSec has elapsed then do our control loop
CurrentTemperature = ReadThermocouple(0);
if(CurrentTemperature < 15.5)
{
EnableHeater(0);
}
else
{
DisableHeater(0);
}
FlushDigitalIO(); //Remeber, the digital outs are queued up until this is called!
}
*/
}
}
Eli Hughes

