Difference between revisions of "Code Temperature Arduino 1"
Tanwir.ahmad (talk | contribs) (Created page with "//CODE TEMPERATURE ARDUINO 1# →UNTUK MENGUKUR TEMPERATUR:: #include "max6675.h" #include "Stepper.h" #define STEPS 32 // Number of steps for one revolution of Interna...") |
Tanwir.ahmad (talk | contribs) |
||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | |||
− | |||
+ | //CODE TEMPERATURE ARDUINO 1# | ||
+ | /*UNTUK MENGUKUR TEMPERATUR: | ||
+ | 1. Regenerator | ||
+ | 2. Regenerator tambahan | ||
+ | 3. Riser1 | ||
+ | 4. Riser 2 | ||
+ | 5. Riser 3 | ||
+ | 6. Cyclone 1 | ||
+ | 7. Cyclone 2 | ||
+ | 8. Cyclone 3 | ||
− | */ | + | */ |
− | #include "max6675.h" | + | #include "max6675.h" |
− | #include "Stepper.h" | + | #include "Stepper.h" |
− | #define STEPS 32 // Number of steps for one revolution of Internal shaft | + | #define STEPS 32 // Number of steps for one revolution of Internal shaft |
// 2048 steps for one revolution of External shaft | // 2048 steps for one revolution of External shaft | ||
− | #include <AccelStepper.h> //library motor stepper | + | #include <AccelStepper.h> //library motor stepper |
− | #define HALFSTEP 8 // definisi jumlah step | + | #define HALFSTEP 8 // definisi jumlah step |
− | //#include <Servo.h> | + | //#include <Servo.h> |
− | //Servo servo1; | + | //Servo servo1; |
− | //Servo servo2; | + | //Servo servo2; |
− | volatile boolean TurnDetected; // need volatile for Interrupts | + | volatile boolean TurnDetected; // need volatile for Interrupts |
− | volatile boolean rotationdirection; // CW or CCW rotation | + | volatile boolean rotationdirection; // CW or CCW rotation |
− | const int PinCLK=2; // Generating interrupts using CLK signal | + | const int PinCLK=2; // Generating interrupts using CLK signal |
− | const int PinDT=3; // Reading DT signal | + | const int PinDT=3; // Reading DT signal |
− | const int PinSW=4; // Reading Push Button switch | + | const int PinSW=4; // Reading Push Button switch |
− | int RotaryPosition=0; // To store Stepper Motor Position | + | int RotaryPosition=0; // To store Stepper Motor Position |
− | int PrevPosition; // Previous Rotary position Value to check accuracy | + | int PrevPosition; // Previous Rotary position Value to check accuracy |
− | int StepsToTake; // How much to move Stepper | + | int StepsToTake; // How much to move Stepper |
− | // Setup of proper sequencing for Motor Driver Pins | + | // Setup of proper sequencing for Motor Driver Pins |
− | // In1, In2, In3, In4 in the sequence 1-3-2-4 | + | // In1, In2, In3, In4 in the sequence 1-3-2-4 |
− | Stepper small_stepper(STEPS, 8, 10, 9, 11); | + | Stepper small_stepper(STEPS, 8, 10, 9, 11); |
− | // Interrupt routine runs if CLK goes from HIGH to LOW | + | // Interrupt routine runs if CLK goes from HIGH to LOW |
− | void isr () { | + | void isr () { |
− | + | delay(5); // delay for Debouncing | |
− | + | if (digitalRead(PinCLK)) | |
− | + | rotationdirection= digitalRead(PinDT); | |
− | + | else | |
− | + | rotationdirection= !digitalRead(PinDT); | |
− | + | TurnDetected = true; | |
− | } | + | } |
− | //T RB | + | //T RB |
− | int ktcSO1 = 4; //34; | + | int ktcSO1 = 4; //34; |
− | int ktcCS1 = 5 ; //35; | + | int ktcCS1 = 5 ; //35; |
− | int ktcCLK1 = 6; //36; | + | int ktcCLK1 = 6; //36; |
− | MAX6675 ktc1(ktcCLK1, ktcCS1, ktcSO1); | + | MAX6675 ktc1(ktcCLK1, ktcCS1, ktcSO1); |
− | //T Reg | + | //T Reg |
− | int ktcSO2 = 31; | + | int ktcSO2 = 31; |
− | int ktcCS2 = 32; | + | int ktcCS2 = 32; |
− | int ktcCLK2 = 33; | + | int ktcCLK2 = 33; |
− | MAX6675 ktc2(ktcCLK2, ktcCS2, ktcSO2); | + | MAX6675 ktc2(ktcCLK2, ktcCS2, ktcSO2); |
− | //T riser1 | + | //T riser1 |
− | int ktcSO3 = 22; | + | int ktcSO3 = 22; |
− | int ktcCS3 = 23; | + | int ktcCS3 = 23; |
− | int ktcCLK3 = 24; | + | int ktcCLK3 = 24; |
− | MAX6675 ktc3(ktcCLK3, ktcCS3, ktcSO3); | + | MAX6675 ktc3(ktcCLK3, ktcCS3, ktcSO3); |
− | //T riser2 | + | //T riser2 |
− | int ktcSO4 = 46 ; //2; | + | int ktcSO4 = 46 ; //2; |
− | int ktcCS4 = 47 ; //3; | + | int ktcCS4 = 47 ; //3; |
− | int ktcCLK4 = 48 ; //4; | + | int ktcCLK4 = 48 ; //4; |
− | MAX6675 ktc4(ktcCLK4, ktcCS4, ktcSO4); | + | MAX6675 ktc4(ktcCLK4, ktcCS4, ktcSO4); |
− | // T riser3 | + | // T riser3 |
− | int ktcSO5 = 28; | + | int ktcSO5 = 28; |
− | int ktcCS5 = 29; | + | int ktcCS5 = 29; |
− | int ktcCLK5 = 30; | + | int ktcCLK5 = 30; |
− | MAX6675 ktc5(ktcCLK5, ktcCS5, ktcSO5); | + | MAX6675 ktc5(ktcCLK5, ktcCS5, ktcSO5); |
− | ///T Cyclone1 | + | ///T Cyclone1 |
− | int ktcSO6 = 37; | + | int ktcSO6 = 37; |
− | int ktcCS6 = 38; | + | int ktcCS6 = 38; |
− | int ktcCLK6 = 39; | + | int ktcCLK6 = 39; |
− | MAX6675 ktc6(ktcCLK6, ktcCS6, ktcSO6); | + | MAX6675 ktc6(ktcCLK6, ktcCS6, ktcSO6); |
− | //T Cyclone2 | + | //T Cyclone2 |
− | int ktcSO7 = 40; | + | int ktcSO7 = 40; |
− | int ktcCS7 = 41; | + | int ktcCS7 = 41; |
− | int ktcCLK7 = 42; | + | int ktcCLK7 = 42; |
− | MAX6675 ktc7(ktcCLK7, ktcCS7, ktcSO7); | + | MAX6675 ktc7(ktcCLK7, ktcCS7, ktcSO7); |
− | //T Cyclone3 | + | //T Cyclone3 |
− | int ktcSO8 = 43; | + | int ktcSO8 = 43; |
− | int ktcCS8 = 44; | + | int ktcCS8 = 44; |
− | int ktcCLK8 = 45; | + | int ktcCLK8 = 45; |
− | MAX6675 ktc8(ktcCLK8, ktcCS8, ktcSO8); | + | MAX6675 ktc8(ktcCLK8, ktcCS8, ktcSO8); |
− | /*//T out cyclone | + | /*//T out cyclone |
− | int ktcSO9 = 46; | + | int ktcSO9 = 46; |
− | int ktcCS9 = 47; | + | int ktcCS9 = 47; |
− | int ktcCLK9 = 48; | + | int ktcCLK9 = 48; |
− | MAX6675 ktc9(ktcCLK9, ktcCS9, ktcSO9); | + | MAX6675 ktc9(ktcCLK9, ktcCS9, ktcSO9); |
− | //T in Fraksinator | + | //T in Fraksinator |
− | int ktcSO10 = 49; | + | int ktcSO10 = 49; |
− | int ktcCS10 = 50; | + | int ktcCS10 = 50; |
− | int ktcCLK10 = 51; | + | int ktcCLK10 = 51; |
− | MAX6675 ktc10(ktcCLK10, ktcCS10, ktcSO10); | + | MAX6675 ktc10(ktcCLK10, ktcCS10, ktcSO10); |
− | //T Fraksinator1 | + | //T Fraksinator1 |
− | int ktcSO11 = 2; | + | int ktcSO11 = 2; |
− | int ktcCS11 = 3; | + | int ktcCS11 = 3; |
− | int ktcCLK11 = 4; | + | int ktcCLK11 = 4; |
− | MAX6675 ktc11(ktcCLK11, ktcCS11, ktcSO11); | + | MAX6675 ktc11(ktcCLK11, ktcCS11, ktcSO11); |
− | //T Fraksinator2 | + | //T Fraksinator2 |
− | int ktcSO12 = 5; | + | int ktcSO12 = 5; |
− | int ktcCS12 = 6; | + | int ktcCS12 = 6; |
− | int ktcCLK12 = 7; | + | int ktcCLK12 = 7; |
− | MAX6675 ktc12(ktcCLK12, ktcCS12, ktcSO12); | + | MAX6675 ktc12(ktcCLK12, ktcCS12, ktcSO12); |
− | //T Fraksinator3 | + | //T Fraksinator3 |
− | int ktcSO13 = 8; | + | int ktcSO13 = 8; |
− | int ktcCS13 = 9; | + | int ktcCS13 = 9; |
− | int ktcCLK13 = 10; | + | int ktcCLK13 = 10; |
− | MAX6675 ktc13(ktcCLK13, ktcCS13, ktcSO13); | + | MAX6675 ktc13(ktcCLK13, ktcCS13, ktcSO13); |
− | //T Fraksinator4 | + | //T Fraksinator4 |
− | int ktcSO14 = 11; | + | int ktcSO14 = 11; |
− | int ktcCS14 = 12; | + | int ktcCS14 = 12; |
− | int ktcCLK14 = 13; | + | int ktcCLK14 = 13; |
− | MAX6675 ktc14(ktcCLK14, ktcCS14, ktcSO14); | + | MAX6675 ktc14(ktcCLK14, ktcCS14, ktcSO14); |
− | //T GB1 | + | //T GB1 |
− | int ktcSO15 = 13; | + | int ktcSO15 = 13; |
− | int ktcCS15= 15; | + | int ktcCS15= 15; |
− | int ktcCLK15 = 16; | + | int ktcCLK15 = 16; |
− | MAX6675 ktc15(ktcCLK15, ktcCS15, ktcSO15); | + | MAX6675 ktc15(ktcCLK15, ktcCS15, ktcSO15); |
− | //T GB2 | + | //T GB2 |
− | int ktcSO16 = 17; | + | int ktcSO16 = 17; |
− | int ktcCS16 = 18; | + | int ktcCS16 = 18; |
− | int ktcCLK16 = 19; | + | int ktcCLK16 = 19; |
− | MAX6675 ktc16(ktcCLK16, ktcCS16, ktcSO16); | + | MAX6675 ktc16(ktcCLK16, ktcCS16, ktcSO16); |
− | //T GB3 | + | //T GB3 |
− | int ktcSO17 = A0; | + | int ktcSO17 = A0; |
− | int ktcCS17 = A1; | + | int ktcCS17 = A1; |
− | int ktcCLK17 = A2; | + | int ktcCLK17 = A2; |
− | MAX6675 ktc17(ktcCLK17, ktcCS17, ktcSO17); | + | MAX6675 ktc17(ktcCLK17, ktcCS17, ktcSO17); |
− | /*float TURBINE; //pengukuran SINYAL data yang bersifat incremental | + | /*float TURBINE; //pengukuran SINYAL data yang bersifat incremental |
− | const int HSensor = 2; //nama alias pada pin 2 | + | const int HSensor = 2; //nama alias pada pin 2 |
− | int Calc; | + | int Calc; |
− | */ | + | */ |
− | const int AnalogInput = A0; // Analog input where the resistor is placed | + | const int AnalogInput = A0; // Analog input where the resistor is placed |
− | int sensorValue = 0; | + | int sensorValue = 0; |
− | float voltage, convert, pressure_pascal, pressure_bar, pressure_psi = 0.0; | + | float voltage, convert, pressure_pascal, pressure_bar, pressure_psi = 0.0; |
− | float t1, f1 = 0.0; | + | float t1, f1 = 0.0; |
− | unsigned long previousMillis, previousMillis1 = 0; | + | unsigned long previousMillis, previousMillis1 = 0; |
− | float waktu_cuplik = 0.0; | + | float waktu_cuplik = 0.0; |
− | const long interval = 1500; | + | const long interval = 1500; |
− | const long interval1 = 300; | + | const long interval1 = 300; |
− | /* | + | /* |
− | #define motorPin1 10 // IN1 on the ULN2003 driver 1 | + | #define motorPin1 10 // IN1 on the ULN2003 driver 1 |
− | #define motorPin2 11 // IN2 on the ULN2003 driver 1 | + | #define motorPin2 11 // IN2 on the ULN2003 driver 1 |
− | #define motorPin3 12 // IN3 on the ULN2003 driver 1 | + | #define motorPin3 12 // IN3 on the ULN2003 driver 1 |
− | #define motorPin4 13 // IN4 on the ULN2003 driver 1 | + | #define motorPin4 13 // IN4 on the ULN2003 driver 1 |
− | // Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48 | + | // Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48 |
− | AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); | + | AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4); |
− | + | */ | |
− | /*void speedrpm () //fungsi penghitungan dan interrupt | + | /*void speedrpm () //fungsi penghitungan dan interrupt |
− | { | + | { |
− | TURBINE++; //bersifat incrementing (dengan mode falling edge) | + | TURBINE++; //bersifat incrementing (dengan mode falling edge) |
− | }*/ | + | }*/ |
− | void setup() { | + | void setup() { |
− | + | // put your setup code here, to run once: | |
− | + | Serial.begin(9600); | |
− | + | pinMode(PinCLK,INPUT); | |
− | + | pinMode(PinDT,INPUT); | |
− | + | pinMode(PinSW,INPUT); | |
− | + | digitalWrite(PinSW, HIGH); // Pull-Up resistor for switch | |
− | + | attachInterrupt (0,isr,FALLING); // interrupt 0 always connected to pin 2 on Arduino UNO | |
− | /* pinMode(HSensor, INPUT); //inisialisasi sebagai input | + | /* pinMode(HSensor, INPUT); //inisialisasi sebagai input |
− | + | Serial.begin(9600); | |
− | + | attachInterrupt(00, speedrpm, RISING); //cara penulisan perintah interrupt | |
− | + | */ | |
− | + | /* | |
− | + | stepper1.setMaxSpeed(1000.0); | |
− | + | stepper1.setAcceleration(200.0); | |
− | + | stepper1.setSpeed(1000); | |
− | + | //stepper1.moveTo(-15000); | |
− | + | */ | |
− | + | /*servo1.attach(10); // Attaches servo to specified pin | |
− | + | servo2.attach(6); | |
− | + | servo1.write(0); | |
− | + | servo2.write(0); | |
− | + | */ | |
− | + | Serial.println("CLEARDATA"); | |
− | + | Serial.println("LABEL, WAKTU, Cuplik(s), T.RB, T.Reg, T.Riser1, T.Riser2, T.Riser3, T.Cyc1, T.Cyc2 , T.Cyc3"); | |
− | + | // Serial.println("LABEL, WAKTU, Cuplik(s), T.RB, T.Reg, T.Riser1, T.Riser2, T.Riser3, T.Cyc1, T.Cyc2 , T.Cyc3, T.outCyc, T.inFR, T.FR1, T.FR2 , T.FR3, T.FR4, T.GB1, T.GB2 ,T.GB3 ,Pressure(bar), flowrate (lpm)"); | |
− | } | + | } |
− | void baca_tekanan() { | + | void baca_tekanan() { |
− | + | sensorValue = analogRead(AnalogInput); | |
− | + | voltage = (sensorValue*5.0)/1024.0; | |
− | + | convert = (3.0*(voltage-0.475)); | |
− | + | pressure_pascal = (3.0*(voltage-0.475))*1000000.0; | |
− | + | pressure_bar = pressure_pascal/10e5; | |
− | + | pressure_psi = pressure_bar*14.5038; | |
− | } | + | } |
− | /*void baca_flowrate() { | + | /*void baca_flowrate() { |
− | + | TURBINE = 00; //data awal = 0 | |
− | + | sei(); //perintah aktifnya mode interrupt | |
− | + | delay (1000); //nilai delay 1 detik | |
− | + | cli(); //perintah untuk matinya program interrupt | |
− | + | float Calc = (TURBINE / 9); //Pulsa * 60 / 7.5 | |
− | }*/ | + | }*/ |
− | void loop() { | + | void loop() { |
− | // Serial.print("suhu = "); | + | // Serial.print("suhu = "); |
− | // Serial.print(ktc.readCelsius()); // Printing temperature value over serial port | + | // Serial.print(ktc.readCelsius()); // Printing temperature value over serial port |
− | // Serial.print("\t"); | + | // Serial.print("\t"); |
− | // baca_tekanan(); | + | // baca_tekanan(); |
− | // Serial.print(convert); | + | // Serial.print(convert); |
− | // Serial.print("\t"); | + | // Serial.print("\t"); |
− | // Serial.println(pressure_pascal); | + | // Serial.println(pressure_pascal); |
− | // //Serial.print("\t"); | + | // //Serial.print("\t"); |
− | // //Serial.println(presure); | + | // //Serial.println(presure); |
− | // delay(500); | + | // delay(500); |
− | + | unsigned long currentMillis = millis(); | |
− | + | unsigned long currentMillis1 = millis(); | |
− | + | waktu_cuplik = (float) currentMillis/1000; | |
− | + | //sensorValue = analogRead(A12); | |
− | + | baca_tekanan(); | |
− | + | //baca_flowrate(); | |
− | + | //speedrpm(); | |
− | + | if (currentMillis - previousMillis == interval){ | |
− | // Serial.print(ktc.readCelsius()); | + | // Serial.print(ktc.readCelsius()); |
− | // Serial.print("\t"); | + | // Serial.print("\t"); |
− | // Serial.println(sensorValue); | + | // Serial.println(sensorValue); |
− | + | previousMillis = currentMillis; | |
− | + | /*Serial.print(ktc1.readCelsius()); | |
− | + | Serial.print(","); | |
− | + | Serial.println(ktc2.readCelsius());*/ | |
− | + | Serial.println((String) "DATA,TIME," + waktu_cuplik + "," + ktc1.readCelsius() + "," + ktc2.readCelsius() + "," + ktc3.readCelsius() + "," + ktc4.readCelsius() + "," + ktc5.readCelsius() + "," + ktc6.readCelsius() + "," + ktc7.readCelsius() + "," + ktc8.readCelsius()); | |
− | + | //Serial.println((String) "DATA,TIME," + waktu_cuplik + "," + ktc1.readCelsius() + "," + ktc2.readCelsius() + "," + ktc3.readCelsius() + "," + ktc4.readCelsius() + "," + ktc5.readCelsius() + "," + ktc6.readCelsius() + "," + ktc7.readCelsius() + "," + ktc8.readCelsius() + "," + ktc9.readCelsius() + "," + ktc10.readCelsius()+ "," + ktc11.readCelsius()+ "," + ktc12.readCelsius()+ "," + ktc13.readCelsius()+ "," + ktc14.readCelsius()+ "," + ktc15.readCelsius()+ "," + ktc16.readCelsius()+ "," + ktc17.readCelsius()+ "," + pressure_bar ); | |
// Serial.println((String) "DATA,TIME," + waktu_cuplik + "," + ktc1.readCelsius() + "," + ktc2.readCelsius() + "," + ktc3.readCelsius() + ","+ ktc4.readCelsius() + "," + ktc5.readCelsius() + ","+ktc6.readCelsius() + "," + ktc7.readCelsius() + "," + ktc8.readCelsius()+ "," + ktc9.readCelsius() + "," + ktc10.readCelsius() + "," + pressure_bar); | // Serial.println((String) "DATA,TIME," + waktu_cuplik + "," + ktc1.readCelsius() + "," + ktc2.readCelsius() + "," + ktc3.readCelsius() + ","+ ktc4.readCelsius() + "," + ktc5.readCelsius() + ","+ktc6.readCelsius() + "," + ktc7.readCelsius() + "," + ktc8.readCelsius()+ "," + ktc9.readCelsius() + "," + ktc10.readCelsius() + "," + pressure_bar); | ||
− | + | small_stepper.setSpeed(800); //Max seems to be 700 | |
− | + | if (!(digitalRead(PinSW))) { // check if button is pressed | |
− | + | if (RotaryPosition == 0) { // check if button was already pressed | |
− | + | } else { | |
− | + | small_stepper.step((RotaryPosition*100)); | |
− | + | RotaryPosition=0; // Reset position to ZERO | |
+ | } | ||
} | } | ||
− | |||
− | + | // Runs if rotation was detected | |
− | + | if (TurnDetected) { | |
− | + | PrevPosition = RotaryPosition; // Save previous position in variable | |
− | + | if (rotationdirection) { | |
− | + | RotaryPosition=RotaryPosition-1;} // decrase Position by 1 | |
− | + | else { | |
− | + | RotaryPosition=RotaryPosition+1;} // increase Position by 1 | |
− | + | TurnDetected = false; // do NOT repeat IF loop until new rotation detected | |
− | + | // Which direction to move Stepper motor | |
− | + | if ((PrevPosition + 1) == RotaryPosition) { // Move motor CW | |
− | + | StepsToTake=-100; | |
− | + | small_stepper.step(StepsToTake); | |
− | + | } | |
− | + | if ((RotaryPosition + 1) == PrevPosition) { // Move motor CCW | |
− | + | StepsToTake=100; | |
− | + | small_stepper.step(StepsToTake); | |
+ | } | ||
} | } | ||
− | |||
Line 298: | Line 306: | ||
− | + | /* if(ktc1.readCelsius() < 27) | |
− | + | { | |
− | + | //servo1.write(80); | |
− | + | //servo2.write(80); | |
− | // stepper1.moveTo(-15000); | + | // stepper1.moveTo(-15000); |
− | + | } | |
− | + | else if(ktc1.readCelsius()<=30) | |
− | + | { | |
− | + | //servo1.write(45); | |
− | + | //servo2.write(45); | |
− | + | } | |
− | + | else if (ktc1.readCelsius()>30) | |
− | + | { | |
− | + | //servo1.write(0); | |
− | + | //servo2.write(0); | |
− | + | } | |
− | + | delay(1000); | |
− | + | */ | |
− | |||
} | } | ||
+ | } |
Latest revision as of 10:06, 22 April 2020
//CODE TEMPERATURE ARDUINO 1# /*UNTUK MENGUKUR TEMPERATUR: 1. Regenerator 2. Regenerator tambahan 3. Riser1 4. Riser 2 5. Riser 3 6. Cyclone 1 7. Cyclone 2 8. Cyclone 3
*/
#include "max6675.h" #include "Stepper.h" #define STEPS 32 // Number of steps for one revolution of Internal shaft // 2048 steps for one revolution of External shaft
#include <AccelStepper.h> //library motor stepper #define HALFSTEP 8 // definisi jumlah step //#include <Servo.h> //Servo servo1; //Servo servo2;
volatile boolean TurnDetected; // need volatile for Interrupts volatile boolean rotationdirection; // CW or CCW rotation
const int PinCLK=2; // Generating interrupts using CLK signal const int PinDT=3; // Reading DT signal const int PinSW=4; // Reading Push Button switch
int RotaryPosition=0; // To store Stepper Motor Position
int PrevPosition; // Previous Rotary position Value to check accuracy int StepsToTake; // How much to move Stepper
// Setup of proper sequencing for Motor Driver Pins // In1, In2, In3, In4 in the sequence 1-3-2-4 Stepper small_stepper(STEPS, 8, 10, 9, 11);
// Interrupt routine runs if CLK goes from HIGH to LOW void isr () { delay(5); // delay for Debouncing if (digitalRead(PinCLK)) rotationdirection= digitalRead(PinDT); else rotationdirection= !digitalRead(PinDT); TurnDetected = true; }
//T RB int ktcSO1 = 4; //34; int ktcCS1 = 5 ; //35; int ktcCLK1 = 6; //36; MAX6675 ktc1(ktcCLK1, ktcCS1, ktcSO1);
//T Reg int ktcSO2 = 31; int ktcCS2 = 32; int ktcCLK2 = 33; MAX6675 ktc2(ktcCLK2, ktcCS2, ktcSO2);
//T riser1 int ktcSO3 = 22; int ktcCS3 = 23; int ktcCLK3 = 24; MAX6675 ktc3(ktcCLK3, ktcCS3, ktcSO3);
//T riser2 int ktcSO4 = 46 ; //2; int ktcCS4 = 47 ; //3; int ktcCLK4 = 48 ; //4; MAX6675 ktc4(ktcCLK4, ktcCS4, ktcSO4);
// T riser3 int ktcSO5 = 28; int ktcCS5 = 29; int ktcCLK5 = 30; MAX6675 ktc5(ktcCLK5, ktcCS5, ktcSO5);
///T Cyclone1 int ktcSO6 = 37; int ktcCS6 = 38; int ktcCLK6 = 39; MAX6675 ktc6(ktcCLK6, ktcCS6, ktcSO6);
//T Cyclone2 int ktcSO7 = 40; int ktcCS7 = 41; int ktcCLK7 = 42; MAX6675 ktc7(ktcCLK7, ktcCS7, ktcSO7);
//T Cyclone3 int ktcSO8 = 43; int ktcCS8 = 44; int ktcCLK8 = 45; MAX6675 ktc8(ktcCLK8, ktcCS8, ktcSO8);
/*//T out cyclone int ktcSO9 = 46; int ktcCS9 = 47; int ktcCLK9 = 48; MAX6675 ktc9(ktcCLK9, ktcCS9, ktcSO9);
//T in Fraksinator int ktcSO10 = 49; int ktcCS10 = 50; int ktcCLK10 = 51; MAX6675 ktc10(ktcCLK10, ktcCS10, ktcSO10);
//T Fraksinator1 int ktcSO11 = 2; int ktcCS11 = 3; int ktcCLK11 = 4; MAX6675 ktc11(ktcCLK11, ktcCS11, ktcSO11);
//T Fraksinator2 int ktcSO12 = 5; int ktcCS12 = 6; int ktcCLK12 = 7; MAX6675 ktc12(ktcCLK12, ktcCS12, ktcSO12);
//T Fraksinator3 int ktcSO13 = 8; int ktcCS13 = 9; int ktcCLK13 = 10; MAX6675 ktc13(ktcCLK13, ktcCS13, ktcSO13);
//T Fraksinator4 int ktcSO14 = 11; int ktcCS14 = 12; int ktcCLK14 = 13; MAX6675 ktc14(ktcCLK14, ktcCS14, ktcSO14);
//T GB1 int ktcSO15 = 13; int ktcCS15= 15; int ktcCLK15 = 16; MAX6675 ktc15(ktcCLK15, ktcCS15, ktcSO15);
//T GB2 int ktcSO16 = 17; int ktcCS16 = 18; int ktcCLK16 = 19; MAX6675 ktc16(ktcCLK16, ktcCS16, ktcSO16);
//T GB3 int ktcSO17 = A0; int ktcCS17 = A1; int ktcCLK17 = A2; MAX6675 ktc17(ktcCLK17, ktcCS17, ktcSO17);
/*float TURBINE; //pengukuran SINYAL data yang bersifat incremental const int HSensor = 2; //nama alias pada pin 2 int Calc; */ const int AnalogInput = A0; // Analog input where the resistor is placed int sensorValue = 0; float voltage, convert, pressure_pascal, pressure_bar, pressure_psi = 0.0; float t1, f1 = 0.0; unsigned long previousMillis, previousMillis1 = 0; float waktu_cuplik = 0.0; const long interval = 1500; const long interval1 = 300; /* #define motorPin1 10 // IN1 on the ULN2003 driver 1 #define motorPin2 11 // IN2 on the ULN2003 driver 1 #define motorPin3 12 // IN3 on the ULN2003 driver 1 #define motorPin4 13 // IN4 on the ULN2003 driver 1
// Initialize with pin sequence IN1-IN3-IN2-IN4 for using the AccelStepper with 28BYJ-48 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
*/ /*void speedrpm () //fungsi penghitungan dan interrupt { TURBINE++; //bersifat incrementing (dengan mode falling edge) }*/
void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(PinCLK,INPUT); pinMode(PinDT,INPUT); pinMode(PinSW,INPUT); digitalWrite(PinSW, HIGH); // Pull-Up resistor for switch attachInterrupt (0,isr,FALLING); // interrupt 0 always connected to pin 2 on Arduino UNO
/* pinMode(HSensor, INPUT); //inisialisasi sebagai input Serial.begin(9600); attachInterrupt(00, speedrpm, RISING); //cara penulisan perintah interrupt */ /* stepper1.setMaxSpeed(1000.0); stepper1.setAcceleration(200.0); stepper1.setSpeed(1000); //stepper1.moveTo(-15000); */ /*servo1.attach(10); // Attaches servo to specified pin servo2.attach(6); servo1.write(0); servo2.write(0); */ Serial.println("CLEARDATA"); Serial.println("LABEL, WAKTU, Cuplik(s), T.RB, T.Reg, T.Riser1, T.Riser2, T.Riser3, T.Cyc1, T.Cyc2 , T.Cyc3"); // Serial.println("LABEL, WAKTU, Cuplik(s), T.RB, T.Reg, T.Riser1, T.Riser2, T.Riser3, T.Cyc1, T.Cyc2 , T.Cyc3, T.outCyc, T.inFR, T.FR1, T.FR2 , T.FR3, T.FR4, T.GB1, T.GB2 ,T.GB3 ,Pressure(bar), flowrate (lpm)"); }
void baca_tekanan() { sensorValue = analogRead(AnalogInput); voltage = (sensorValue*5.0)/1024.0; convert = (3.0*(voltage-0.475)); pressure_pascal = (3.0*(voltage-0.475))*1000000.0; pressure_bar = pressure_pascal/10e5; pressure_psi = pressure_bar*14.5038; }
/*void baca_flowrate() { TURBINE = 00; //data awal = 0 sei(); //perintah aktifnya mode interrupt delay (1000); //nilai delay 1 detik cli(); //perintah untuk matinya program interrupt float Calc = (TURBINE / 9); //Pulsa * 60 / 7.5 }*/
void loop() { // Serial.print("suhu = "); // Serial.print(ktc.readCelsius()); // Printing temperature value over serial port // Serial.print("\t"); // baca_tekanan(); // Serial.print(convert); // Serial.print("\t"); // Serial.println(pressure_pascal); // //Serial.print("\t"); // //Serial.println(presure); // delay(500);
unsigned long currentMillis = millis(); unsigned long currentMillis1 = millis(); waktu_cuplik = (float) currentMillis/1000; //sensorValue = analogRead(A12); baca_tekanan(); //baca_flowrate(); //speedrpm();
if (currentMillis - previousMillis == interval){ // Serial.print(ktc.readCelsius()); // Serial.print("\t"); // Serial.println(sensorValue);
previousMillis = currentMillis; /*Serial.print(ktc1.readCelsius()); Serial.print(","); Serial.println(ktc2.readCelsius());*/ Serial.println((String) "DATA,TIME," + waktu_cuplik + "," + ktc1.readCelsius() + "," + ktc2.readCelsius() + "," + ktc3.readCelsius() + "," + ktc4.readCelsius() + "," + ktc5.readCelsius() + "," + ktc6.readCelsius() + "," + ktc7.readCelsius() + "," + ktc8.readCelsius()); //Serial.println((String) "DATA,TIME," + waktu_cuplik + "," + ktc1.readCelsius() + "," + ktc2.readCelsius() + "," + ktc3.readCelsius() + "," + ktc4.readCelsius() + "," + ktc5.readCelsius() + "," + ktc6.readCelsius() + "," + ktc7.readCelsius() + "," + ktc8.readCelsius() + "," + ktc9.readCelsius() + "," + ktc10.readCelsius()+ "," + ktc11.readCelsius()+ "," + ktc12.readCelsius()+ "," + ktc13.readCelsius()+ "," + ktc14.readCelsius()+ "," + ktc15.readCelsius()+ "," + ktc16.readCelsius()+ "," + ktc17.readCelsius()+ "," + pressure_bar );
// Serial.println((String) "DATA,TIME," + waktu_cuplik + "," + ktc1.readCelsius() + "," + ktc2.readCelsius() + "," + ktc3.readCelsius() + ","+ ktc4.readCelsius() + "," + ktc5.readCelsius() + ","+ktc6.readCelsius() + "," + ktc7.readCelsius() + "," + ktc8.readCelsius()+ "," + ktc9.readCelsius() + "," + ktc10.readCelsius() + "," + pressure_bar);
small_stepper.setSpeed(800); //Max seems to be 700 if (!(digitalRead(PinSW))) { // check if button is pressed if (RotaryPosition == 0) { // check if button was already pressed } else { small_stepper.step((RotaryPosition*100)); RotaryPosition=0; // Reset position to ZERO } }
// Runs if rotation was detected if (TurnDetected) { PrevPosition = RotaryPosition; // Save previous position in variable if (rotationdirection) { RotaryPosition=RotaryPosition-1;} // decrase Position by 1 else { RotaryPosition=RotaryPosition+1;} // increase Position by 1
TurnDetected = false; // do NOT repeat IF loop until new rotation detected
// Which direction to move Stepper motor if ((PrevPosition + 1) == RotaryPosition) { // Move motor CW StepsToTake=-100; small_stepper.step(StepsToTake); }
if ((RotaryPosition + 1) == PrevPosition) { // Move motor CCW StepsToTake=100; small_stepper.step(StepsToTake); } } /* if(ktc1.readCelsius() < 27) { //servo1.write(80); //servo2.write(80); // stepper1.moveTo(-15000); } else if(ktc1.readCelsius()<=30) { //servo1.write(45); //servo2.write(45);
} else if (ktc1.readCelsius()>30) { //servo1.write(0); //servo2.write(0);
} delay(1000); */ } }