jyo tetsu
/
motortest
motortest error
main.cpp@0:d46350fb622c, 2014-11-30 (annotated)
- Committer:
- changzhe8387
- Date:
- Sun Nov 30 05:51:54 2014 +0000
- Revision:
- 0:d46350fb622c
motortest
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
changzhe8387 | 0:d46350fb622c | 1 | #include "mbed.h" |
changzhe8387 | 0:d46350fb622c | 2 | Serial pc(USBTX, USBRX); |
changzhe8387 | 0:d46350fb622c | 3 | AnalogIn tempPin1(p15); |
changzhe8387 | 0:d46350fb622c | 4 | AnalogIn tempPin2(p16); |
changzhe8387 | 0:d46350fb622c | 5 | PwmOut pwm(p21); |
changzhe8387 | 0:d46350fb622c | 6 | #define start 500; |
changzhe8387 | 0:d46350fb622c | 7 | #define end 2200; |
changzhe8387 | 0:d46350fb622c | 8 | float tempTotal1; |
changzhe8387 | 0:d46350fb622c | 9 | float tempTotal2; |
changzhe8387 | 0:d46350fb622c | 10 | uint32_t tempDiv1; |
changzhe8387 | 0:d46350fb622c | 11 | uint32_t tempDiv2; |
changzhe8387 | 0:d46350fb622c | 12 | #define MAX_TEMP_AVG 10 |
changzhe8387 | 0:d46350fb622c | 13 | void sampleTemperature(); |
changzhe8387 | 0:d46350fb622c | 14 | void sampleTemperatures(); |
changzhe8387 | 0:d46350fb622c | 15 | void resetTemperatureSamples(); |
changzhe8387 | 0:d46350fb622c | 16 | void servo(); |
changzhe8387 | 0:d46350fb622c | 17 | float getAvgTemperature(); |
changzhe8387 | 0:d46350fb622c | 18 | void sampleTemperature() |
changzhe8387 | 0:d46350fb622c | 19 | { |
changzhe8387 | 0:d46350fb622c | 20 | tempTotal1 += tempPin1; |
changzhe8387 | 0:d46350fb622c | 21 | tempDiv1++; |
changzhe8387 | 0:d46350fb622c | 22 | tempTotal2 += tempPin2; |
changzhe8387 | 0:d46350fb622c | 23 | tempDiv2++; |
changzhe8387 | 0:d46350fb622c | 24 | } |
changzhe8387 | 0:d46350fb622c | 25 | void sampleTemperatures() |
changzhe8387 | 0:d46350fb622c | 26 | { |
changzhe8387 | 0:d46350fb622c | 27 | for(int i=0;i<MAX_TEMP_AVG;i++) { |
changzhe8387 | 0:d46350fb622c | 28 | sampleTemperature(); |
changzhe8387 | 0:d46350fb622c | 29 | wait(0.1); |
changzhe8387 | 0:d46350fb622c | 30 | } |
changzhe8387 | 0:d46350fb622c | 31 | } |
changzhe8387 | 0:d46350fb622c | 32 | void resetTemperatureSamples() |
changzhe8387 | 0:d46350fb622c | 33 | { |
changzhe8387 | 0:d46350fb622c | 34 | tempTotal1 = 0.0; |
changzhe8387 | 0:d46350fb622c | 35 | tempDiv1 = 0; |
changzhe8387 | 0:d46350fb622c | 36 | tempTotal2 = 0.0; |
changzhe8387 | 0:d46350fb622c | 37 | tempDiv2 = 0; |
changzhe8387 | 0:d46350fb622c | 38 | } |
changzhe8387 | 0:d46350fb622c | 39 | void servo() |
changzhe8387 | 0:d46350fb622c | 40 | { |
changzhe8387 | 0:d46350fb622c | 41 | |
changzhe8387 | 0:d46350fb622c | 42 | |
changzhe8387 | 0:d46350fb622c | 43 | } |
changzhe8387 | 0:d46350fb622c | 44 | float getAvgTemperature1() |
changzhe8387 | 0:d46350fb622c | 45 | { |
changzhe8387 | 0:d46350fb622c | 46 | float tempAvg1 = (((tempTotal1)*3300/(float)tempDiv1)-400.0)/19.5; |
changzhe8387 | 0:d46350fb622c | 47 | return tempAvg1; |
changzhe8387 | 0:d46350fb622c | 48 | } |
changzhe8387 | 0:d46350fb622c | 49 | float getAvgTemperature2() |
changzhe8387 | 0:d46350fb622c | 50 | { |
changzhe8387 | 0:d46350fb622c | 51 | float tempAvg2 = (((tempTotal2)*3300/(float)tempDiv2)-400.0)/19.5; |
changzhe8387 | 0:d46350fb622c | 52 | return tempAvg2; |
changzhe8387 | 0:d46350fb622c | 53 | } |
changzhe8387 | 0:d46350fb622c | 54 | |
changzhe8387 | 0:d46350fb622c | 55 | |
changzhe8387 | 0:d46350fb622c | 56 | int main() { |
changzhe8387 | 0:d46350fb622c | 57 | tempDiv1 = 0; |
changzhe8387 | 0:d46350fb622c | 58 | tempDiv2 = 0; |
changzhe8387 | 0:d46350fb622c | 59 | pc.printf("MBED ready..\r\n"); |
changzhe8387 | 0:d46350fb622c | 60 | sampleTemperatures(); |
changzhe8387 | 0:d46350fb622c | 61 | pc.printf("Temp1: %.2f Temp2: %.2f \r\n",getAvgTemperature1(),getAvgTemperature2()); |
changzhe8387 | 0:d46350fb622c | 62 | while(1){ |
changzhe8387 | 0:d46350fb622c | 63 | sampleTemperature(); |
changzhe8387 | 0:d46350fb622c | 64 | } |
changzhe8387 | 0:d46350fb622c | 65 | |
changzhe8387 | 0:d46350fb622c | 66 | float j = (getAvgTemperature1()/getAvgTemperature2()) ; |
changzhe8387 | 0:d46350fb622c | 67 | if(j>0){ |
changzhe8387 | 0:d46350fb622c | 68 | for(int p = start; p < end; p += 20) |
changzhe8387 | 0:d46350fb622c | 69 | pwm.pulsewidth_us(p); |
changzhe8387 | 0:d46350fb622c | 70 | wait_ms(40); |
changzhe8387 | 0:d46350fb622c | 71 | |
changzhe8387 | 0:d46350fb622c | 72 | else{ |
changzhe8387 | 0:d46350fb622c | 73 | for(int p = end; p >=start; p -= 20) |
changzhe8387 | 0:d46350fb622c | 74 | pwm.pulsewidth_us(p); |
changzhe8387 | 0:d46350fb622c | 75 | wait_ms(40); |
changzhe8387 | 0:d46350fb622c | 76 | |
changzhe8387 | 0:d46350fb622c | 77 | } |
changzhe8387 | 0:d46350fb622c | 78 | } |
changzhe8387 | 0:d46350fb622c | 79 | } |