Isaac Mather
Published © GPL3+

Hobbyist Hydraulic Press

Automate the controls for a hydraulic press.

BeginnerShowcase (no instructions)1 hour887
Hobbyist Hydraulic Press

Story

Read more

Code

pressure sensor

C/C++
It's a pressure sensor
#include "jhd1313m1.hpp"
#include <sstream>
#include <string>
#include "grove.hpp"
//include "led.hpp"

using namespace std;

upm::GroveRotary*    knob1     = new upm::GroveRotary(1);

string convertint(int number)
{
    stringstream ss; 
    ss << number;
    return ss.str();
}


 int linearregression(int x) 
{
    return x*6.843+1000;
}


   void updatelcd(upm::GroveRotary* knob, upm::Jhd1313m1* lcd)
{
    int             inputpressure = 0;  
    int 	    inputpressure1 = 0;
    //do I need to add inputpressure1 as an int here?
    lcd->setCursor(0,0);
    lcd->write("Goal");
    lcd->setCursor(0,6);
    lcd->write("Current");
    inputpressure  = knob->abs_value();
    inputpressure  = linearregression(inputpressure);

    inputpressure1 = knob1->abs_value(); 
    inputpressure1  = linearregression(inputpressure1);
    string inputpressurestr  = convertint(inputpressure);    
    string inputpressurestr1 = convertint(inputpressure1);
    lcd->setCursor(1,0);
    lcd->write("      ");
    lcd->setCursor(1,0);
    lcd->write(inputpressurestr);
    lcd->setCursor(1,6);
    lcd->write(inputpressurestr1);

}	

int main(int argc, char **argv)
{

 // Defining a new object
 // datatype        name           = value;
    upm::GroveRotary*    knob      = new upm::GroveRotary(0);
    upm::Jhd1313m1*      lcd       = new upm::Jhd1313m1(0, 0x3E, 0x62);
    upm::GroveLed*            redled    = new upm::GroveLed(3); 
    upm::GroveLed*            greenled  = new upm::GroveLed(2);

    
    redled->off();
    greenled->off();

    printf("Sleeping for 5 seconds\n");
    sleep(5);

   while(1)
        {    
         	while(knob1->abs_value()<knob->abs_value())
         		{
                                updatelcd(knob, lcd);
				greenled->on();
				redled->off();
         	 	}
          	 while(knob1->abs_value()>knob->abs_value())
        		{
		                updatelcd(knob, lcd);
				redled->on();
		                greenled->off(); 
			}
        }

    return 0;
}

Credits

Isaac Mather

Isaac Mather

1 project • 0 followers
Thanks to Nile Mittow and Hacker Lab and Intel.

Comments