hall_silnik

Dependencies:   mbed

Committer:
abm_mechatronika
Date:
Mon Apr 20 07:50:28 2015 +0000
Revision:
0:fd8d6f3975c1
hall_silnik

Who changed what in which revision?

UserRevisionLine numberNew 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 }