hall_silnik
Dependencies: mbed
main.cpp@0:fd8d6f3975c1, 2015-04-20 (annotated)
- Committer:
- abm_mechatronika
- Date:
- Mon Apr 20 07:50:28 2015 +0000
- Revision:
- 0:fd8d6f3975c1
hall_silnik
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
abm_mechatronika | 0:fd8d6f3975c1 | 1 | #include "mbed.h" |
abm_mechatronika | 0:fd8d6f3975c1 | 2 | //hall_silnik |
abm_mechatronika | 0:fd8d6f3975c1 | 3 | int analog_zero_1 = 0; |
abm_mechatronika | 0:fd8d6f3975c1 | 4 | AnalogIn hallotron_silnik(PTB1); |
abm_mechatronika | 0:fd8d6f3975c1 | 5 | Serial pc(USBTX, USBRX); |
abm_mechatronika | 0:fd8d6f3975c1 | 6 | |
abm_mechatronika | 0:fd8d6f3975c1 | 7 | float voltage(AnalogIn czujnik, float zero_analog) { |
abm_mechatronika | 0:fd8d6f3975c1 | 8 | return (czujnik.read() - zero_analog) * 2.9035; |
abm_mechatronika | 0:fd8d6f3975c1 | 9 | } |
abm_mechatronika | 0:fd8d6f3975c1 | 10 | |
abm_mechatronika | 0:fd8d6f3975c1 | 11 | int main() { |
abm_mechatronika | 0:fd8d6f3975c1 | 12 | pc.baud(9600); |
abm_mechatronika | 0:fd8d6f3975c1 | 13 | int i=0; |
abm_mechatronika | 0:fd8d6f3975c1 | 14 | int p=0; |
abm_mechatronika | 0:fd8d6f3975c1 | 15 | int r=0; |
abm_mechatronika | 0:fd8d6f3975c1 | 16 | int k=0; |
abm_mechatronika | 0:fd8d6f3975c1 | 17 | float o=0; |
abm_mechatronika | 0:fd8d6f3975c1 | 18 | float m,n; |
abm_mechatronika | 0:fd8d6f3975c1 | 19 | float suma = 0; |
abm_mechatronika | 0:fd8d6f3975c1 | 20 | float suma2 = 0; |
abm_mechatronika | 0:fd8d6f3975c1 | 21 | |
abm_mechatronika | 0:fd8d6f3975c1 | 22 | while(true) { |
abm_mechatronika | 0:fd8d6f3975c1 | 23 | m = voltage(hallotron_silnik, analog_zero_1); |
abm_mechatronika | 0:fd8d6f3975c1 | 24 | if (m > 1.5) |
abm_mechatronika | 0:fd8d6f3975c1 | 25 | { |
abm_mechatronika | 0:fd8d6f3975c1 | 26 | p=1; |
abm_mechatronika | 0:fd8d6f3975c1 | 27 | } |
abm_mechatronika | 0:fd8d6f3975c1 | 28 | for (i=0; i<10; i++) |
abm_mechatronika | 0:fd8d6f3975c1 | 29 | { |
abm_mechatronika | 0:fd8d6f3975c1 | 30 | wait_us(10); |
abm_mechatronika | 0:fd8d6f3975c1 | 31 | m = voltage(hallotron_silnik, analog_zero_1); |
abm_mechatronika | 0:fd8d6f3975c1 | 32 | suma = suma + m; |
abm_mechatronika | 0:fd8d6f3975c1 | 33 | } |
abm_mechatronika | 0:fd8d6f3975c1 | 34 | |
abm_mechatronika | 0:fd8d6f3975c1 | 35 | n = voltage(hallotron_silnik, analog_zero_1); |
abm_mechatronika | 0:fd8d6f3975c1 | 36 | if (n < 0.9) |
abm_mechatronika | 0:fd8d6f3975c1 | 37 | { |
abm_mechatronika | 0:fd8d6f3975c1 | 38 | r = 1; |
abm_mechatronika | 0:fd8d6f3975c1 | 39 | } |
abm_mechatronika | 0:fd8d6f3975c1 | 40 | else r=0; |
abm_mechatronika | 0:fd8d6f3975c1 | 41 | |
abm_mechatronika | 0:fd8d6f3975c1 | 42 | for (i=0; i<10; i++) |
abm_mechatronika | 0:fd8d6f3975c1 | 43 | { |
abm_mechatronika | 0:fd8d6f3975c1 | 44 | wait_us(10); |
abm_mechatronika | 0:fd8d6f3975c1 | 45 | n = voltage(hallotron_silnik, analog_zero_1); |
abm_mechatronika | 0:fd8d6f3975c1 | 46 | suma2 = suma2 + n; |
abm_mechatronika | 0:fd8d6f3975c1 | 47 | } |
abm_mechatronika | 0:fd8d6f3975c1 | 48 | |
abm_mechatronika | 0:fd8d6f3975c1 | 49 | if ((p==1) && (r==1) && (suma>suma2)) |
abm_mechatronika | 0:fd8d6f3975c1 | 50 | { |
abm_mechatronika | 0:fd8d6f3975c1 | 51 | pc.printf("obrot %.2f\n", o); |
abm_mechatronika | 0:fd8d6f3975c1 | 52 | p=0; |
abm_mechatronika | 0:fd8d6f3975c1 | 53 | o=o+0.25; |
abm_mechatronika | 0:fd8d6f3975c1 | 54 | } |
abm_mechatronika | 0:fd8d6f3975c1 | 55 | |
abm_mechatronika | 0:fd8d6f3975c1 | 56 | pc.printf("%.d\n",k); |
abm_mechatronika | 0:fd8d6f3975c1 | 57 | k++; |
abm_mechatronika | 0:fd8d6f3975c1 | 58 | wait_ms(10); |
abm_mechatronika | 0:fd8d6f3975c1 | 59 | suma = m; |
abm_mechatronika | 0:fd8d6f3975c1 | 60 | suma2 = n; |
abm_mechatronika | 0:fd8d6f3975c1 | 61 | |
abm_mechatronika | 0:fd8d6f3975c1 | 62 | } |
abm_mechatronika | 0:fd8d6f3975c1 | 63 | } |