MBED Application board used to control frequency and duty cycle of injector valves

Dependencies:   mbed-rtos mbed

Committer:
iwolf32
Date:
Tue Jul 25 14:29:20 2017 +0000
Revision:
0:9b2c760c8e5c
REV1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
iwolf32 0:9b2c760c8e5c 1 #include "mbed.h"
iwolf32 0:9b2c760c8e5c 2 #include "rtos.h"
iwolf32 0:9b2c760c8e5c 3 #include "coil-driver.h"
iwolf32 0:9b2c760c8e5c 4
iwolf32 0:9b2c760c8e5c 5 Coil yellow(A0, 300, 40, 4); // Injector
iwolf32 0:9b2c760c8e5c 6 InterruptIn dutycycleup(A2);
iwolf32 0:9b2c760c8e5c 7 InterruptIn dutycycledown(D4);
iwolf32 0:9b2c760c8e5c 8 InterruptIn frequencyup(A5);
iwolf32 0:9b2c760c8e5c 9 InterruptIn frequencydown(A4);
iwolf32 0:9b2c760c8e5c 10
iwolf32 0:9b2c760c8e5c 11 Serial pc(USBTX, USBRX);
iwolf32 0:9b2c760c8e5c 12
iwolf32 0:9b2c760c8e5c 13 double frequency=5;
iwolf32 0:9b2c760c8e5c 14 double dutycycle=0.75;
iwolf32 0:9b2c760c8e5c 15 float openvalue=(((1/frequency)*dutycycle));
iwolf32 0:9b2c760c8e5c 16 float offvalue=(1/frequency)-openvalue;
iwolf32 0:9b2c760c8e5c 17
iwolf32 0:9b2c760c8e5c 18 void dutycycleincrease()
iwolf32 0:9b2c760c8e5c 19 {
iwolf32 0:9b2c760c8e5c 20 dutycycle=dutycycle+0.01;
iwolf32 0:9b2c760c8e5c 21 }
iwolf32 0:9b2c760c8e5c 22
iwolf32 0:9b2c760c8e5c 23 void dutycycledecrease()
iwolf32 0:9b2c760c8e5c 24 {
iwolf32 0:9b2c760c8e5c 25 dutycycle=dutycycle-0.01;
iwolf32 0:9b2c760c8e5c 26 }
iwolf32 0:9b2c760c8e5c 27
iwolf32 0:9b2c760c8e5c 28 void frequencyincrease()
iwolf32 0:9b2c760c8e5c 29 {
iwolf32 0:9b2c760c8e5c 30 frequency=frequency+1;
iwolf32 0:9b2c760c8e5c 31 }
iwolf32 0:9b2c760c8e5c 32 void frequencydecrease()
iwolf32 0:9b2c760c8e5c 33 {
iwolf32 0:9b2c760c8e5c 34 frequency=frequency-1;
iwolf32 0:9b2c760c8e5c 35 }
iwolf32 0:9b2c760c8e5c 36
iwolf32 0:9b2c760c8e5c 37 int main() {
iwolf32 0:9b2c760c8e5c 38
iwolf32 0:9b2c760c8e5c 39 dutycycleup.rise(&dutycycleincrease);
iwolf32 0:9b2c760c8e5c 40 dutycycledown.rise(&dutycycledecrease);
iwolf32 0:9b2c760c8e5c 41 frequencyup.rise(&frequencyincrease);
iwolf32 0:9b2c760c8e5c 42 frequencydown.rise(&frequencydecrease);
iwolf32 0:9b2c760c8e5c 43
iwolf32 0:9b2c760c8e5c 44 while(1){
iwolf32 0:9b2c760c8e5c 45
iwolf32 0:9b2c760c8e5c 46 float openvalue=(((1/frequency)*dutycycle));
iwolf32 0:9b2c760c8e5c 47 float offvalue=(1/frequency)-openvalue;
iwolf32 0:9b2c760c8e5c 48
iwolf32 0:9b2c760c8e5c 49 yellow.on();
iwolf32 0:9b2c760c8e5c 50 wait(openvalue);
iwolf32 0:9b2c760c8e5c 51 yellow.off();
iwolf32 0:9b2c760c8e5c 52 wait(offvalue);
iwolf32 0:9b2c760c8e5c 53
iwolf32 0:9b2c760c8e5c 54 pc.printf("Frequency: %f\r\n", frequency);
iwolf32 0:9b2c760c8e5c 55 pc.printf("\n");
iwolf32 0:9b2c760c8e5c 56 pc.printf("Duty Cycle: %f\r\n", dutycycle);
iwolf32 0:9b2c760c8e5c 57 }
iwolf32 0:9b2c760c8e5c 58 }