![](/media/cache/group/tmp589585677218217985.jpg.50x50_q85.jpg)
read_analog_value
Dependencies: mbed
Fork of Nucleo_read_analog_value by
main.cpp@3:70d41b9d0705, 2017-11-22 (annotated)
- Committer:
- 59340500018
- Date:
- Wed Nov 22 11:52:05 2017 +0000
- Revision:
- 3:70d41b9d0705
- Parent:
- 2:3ff3ecfd9c70
read_analog_value
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
soulx | 0:b30041f75f46 | 1 | #include "mbed.h" |
59340500018 | 3:70d41b9d0705 | 2 | //LAB2 |
59340500018 | 3:70d41b9d0705 | 3 | AnalogIn analog_value(A1); |
59340500018 | 3:70d41b9d0705 | 4 | DigitalIn button(USER_BUTTON); |
59340500018 | 3:70d41b9d0705 | 5 | DigitalOut led0(D2),led1(D3),led2(D4),led3(D5),led4(D6),led5(D7),led6(D8),led7(D9); //,seg1(D10),seg2(D11),seg3(D12),seg4(D13),seg5(D14),seg6(D15); |
59340500018 | 3:70d41b9d0705 | 6 | unsigned int convertcount = 0; |
59340500018 | 3:70d41b9d0705 | 7 | unsigned int Array_A[4]; |
59340500018 | 3:70d41b9d0705 | 8 | unsigned int Array_B[4]; |
59340500018 | 3:70d41b9d0705 | 9 | BusOut segmentA(D14,D15); |
59340500018 | 3:70d41b9d0705 | 10 | BusOut segmentB(D10,D11,D12,D13); |
59340500018 | 3:70d41b9d0705 | 11 | /* void ConvertToBinary(unsigned int n, char pos) |
59340500018 | 3:70d41b9d0705 | 12 | { |
59340500018 | 3:70d41b9d0705 | 13 | if (pos == 'a'){ |
59340500018 | 3:70d41b9d0705 | 14 | if (n / 2 != 0) { |
59340500018 | 3:70d41b9d0705 | 15 | |
59340500018 | 3:70d41b9d0705 | 16 | ConvertToBinary(n / 2,'a'); |
59340500018 | 3:70d41b9d0705 | 17 | |
59340500018 | 3:70d41b9d0705 | 18 | } |
59340500018 | 3:70d41b9d0705 | 19 | Array_A[convertcount] = n%2; |
59340500018 | 3:70d41b9d0705 | 20 | convertcount = convertcount+1; |
59340500018 | 3:70d41b9d0705 | 21 | } |
59340500018 | 3:70d41b9d0705 | 22 | |
59340500018 | 3:70d41b9d0705 | 23 | else if (pos == 'b'){ |
59340500018 | 3:70d41b9d0705 | 24 | if (n / 2 != 0) { |
59340500018 | 3:70d41b9d0705 | 25 | ConvertToBinary(n / 2,'b'); |
59340500018 | 3:70d41b9d0705 | 26 | } |
59340500018 | 3:70d41b9d0705 | 27 | Array_B[convertcount] = n%2; |
59340500018 | 3:70d41b9d0705 | 28 | convertcount = convertcount+1; |
59340500018 | 3:70d41b9d0705 | 29 | } |
59340500018 | 3:70d41b9d0705 | 30 | seg1 = Array_B[3]; seg2 = Array_B[2]; seg3 = Array_B[1]; seg4 = Array_B[0]; seg5 = Array_A[3]; seg6 = Array_A[2]; |
59340500018 | 3:70d41b9d0705 | 31 | }*/ |
59340500018 | 3:70d41b9d0705 | 32 | |
59340500018 | 3:70d41b9d0705 | 33 | void VU_LED(){ |
59340500018 | 3:70d41b9d0705 | 34 | float A1_val; |
59340500018 | 3:70d41b9d0705 | 35 | A1_val = analog_value.read(); |
59340500018 | 3:70d41b9d0705 | 36 | A1_val = A1_val*3300; |
59340500018 | 3:70d41b9d0705 | 37 | if (A1_val > 412.5f){ |
59340500018 | 3:70d41b9d0705 | 38 | led0 = 1; |
59340500018 | 3:70d41b9d0705 | 39 | led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 40 | if (A1_val > 825.0f){ |
59340500018 | 3:70d41b9d0705 | 41 | led1 = 1; |
59340500018 | 3:70d41b9d0705 | 42 | led2=0; led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 43 | if (A1_val > 1237.5f){ |
59340500018 | 3:70d41b9d0705 | 44 | led2 = 1; |
59340500018 | 3:70d41b9d0705 | 45 | led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 46 | if (A1_val > 1650.0f){ |
59340500018 | 3:70d41b9d0705 | 47 | led3 = 1; |
59340500018 | 3:70d41b9d0705 | 48 | led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 49 | if (A1_val > 2062.5f){ |
59340500018 | 3:70d41b9d0705 | 50 | led4 = 1; |
59340500018 | 3:70d41b9d0705 | 51 | led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 52 | if (A1_val > 2475.0f){ |
59340500018 | 3:70d41b9d0705 | 53 | led5 = 1; |
59340500018 | 3:70d41b9d0705 | 54 | led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 55 | if(A1_val > 2887.5f){ |
59340500018 | 3:70d41b9d0705 | 56 | led6 = 1; |
59340500018 | 3:70d41b9d0705 | 57 | led7=0; |
59340500018 | 3:70d41b9d0705 | 58 | if (A1_val > 3250.0f){ |
59340500018 | 3:70d41b9d0705 | 59 | led7 = 1; |
59340500018 | 3:70d41b9d0705 | 60 | } |
59340500018 | 3:70d41b9d0705 | 61 | } |
59340500018 | 3:70d41b9d0705 | 62 | } |
59340500018 | 3:70d41b9d0705 | 63 | } |
59340500018 | 3:70d41b9d0705 | 64 | } |
59340500018 | 3:70d41b9d0705 | 65 | } |
59340500018 | 3:70d41b9d0705 | 66 | } |
59340500018 | 3:70d41b9d0705 | 67 | } |
59340500018 | 3:70d41b9d0705 | 68 | else{ |
59340500018 | 3:70d41b9d0705 | 69 | led0 = 0; |
59340500018 | 3:70d41b9d0705 | 70 | } |
59340500018 | 3:70d41b9d0705 | 71 | } |
59340500018 | 3:70d41b9d0705 | 72 | |
59340500018 | 3:70d41b9d0705 | 73 | void LED_Segment(){ |
59340500018 | 3:70d41b9d0705 | 74 | float A1_uval; |
59340500018 | 3:70d41b9d0705 | 75 | unsigned int Temp_A, Temp_B; |
59340500018 | 3:70d41b9d0705 | 76 | A1_uval = analog_value.read(); |
59340500018 | 3:70d41b9d0705 | 77 | A1_uval = A1_uval*3.3f; |
59340500018 | 3:70d41b9d0705 | 78 | Temp_A = A1_uval; |
59340500018 | 3:70d41b9d0705 | 79 | Temp_B = (A1_uval*10); |
59340500018 | 3:70d41b9d0705 | 80 | Temp_B = Temp_B % 10; |
59340500018 | 3:70d41b9d0705 | 81 | segmentA = Temp_A; |
59340500018 | 3:70d41b9d0705 | 82 | segmentB = Temp_B; |
59340500018 | 3:70d41b9d0705 | 83 | /*convertcount = 0; |
59340500018 | 3:70d41b9d0705 | 84 | ConvertToBinary(Temp_A,'a'); |
59340500018 | 3:70d41b9d0705 | 85 | convertcount = 0; |
59340500018 | 3:70d41b9d0705 | 86 | ConvertToBinary(Temp_B,'b');*/ |
59340500018 | 3:70d41b9d0705 | 87 | |
59340500018 | 3:70d41b9d0705 | 88 | } |
59340500018 | 3:70d41b9d0705 | 89 | |
59340500018 | 3:70d41b9d0705 | 90 | int main() { |
59340500018 | 3:70d41b9d0705 | 91 | int x; |
59340500018 | 3:70d41b9d0705 | 92 | while(1){ |
59340500018 | 3:70d41b9d0705 | 93 | if (button==0){ |
59340500018 | 3:70d41b9d0705 | 94 | x = 0; |
59340500018 | 3:70d41b9d0705 | 95 | while(1){ |
59340500018 | 3:70d41b9d0705 | 96 | if (x % 2 == 0){ |
59340500018 | 3:70d41b9d0705 | 97 | while(1){ |
59340500018 | 3:70d41b9d0705 | 98 | //seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0; |
59340500018 | 3:70d41b9d0705 | 99 | segmentA = 0; |
59340500018 | 3:70d41b9d0705 | 100 | segmentB = 0; |
59340500018 | 3:70d41b9d0705 | 101 | VU_LED(); |
59340500018 | 3:70d41b9d0705 | 102 | if (button == 0) break; } |
59340500018 | 3:70d41b9d0705 | 103 | x++; |
59340500018 | 3:70d41b9d0705 | 104 | break; |
59340500018 | 3:70d41b9d0705 | 105 | } |
59340500018 | 3:70d41b9d0705 | 106 | } |
59340500018 | 3:70d41b9d0705 | 107 | while(1){ |
59340500018 | 3:70d41b9d0705 | 108 | if(x % 2 != 0){ |
59340500018 | 3:70d41b9d0705 | 109 | while(1){ |
59340500018 | 3:70d41b9d0705 | 110 | led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 111 | LED_Segment(); |
59340500018 | 3:70d41b9d0705 | 112 | if (button == 0) break; } |
59340500018 | 3:70d41b9d0705 | 113 | x--; |
59340500018 | 3:70d41b9d0705 | 114 | break; |
59340500018 | 3:70d41b9d0705 | 115 | } |
59340500018 | 3:70d41b9d0705 | 116 | } |
59340500018 | 3:70d41b9d0705 | 117 | } |
59340500018 | 3:70d41b9d0705 | 118 | } |
59340500018 | 3:70d41b9d0705 | 119 | /*if (button==0){ |
59340500018 | 3:70d41b9d0705 | 120 | Temp = 0; |
59340500018 | 3:70d41b9d0705 | 121 | if (Temp==0){ |
59340500018 | 3:70d41b9d0705 | 122 | seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0; |
59340500018 | 3:70d41b9d0705 | 123 | VU_LED(); |
59340500018 | 3:70d41b9d0705 | 124 | } |
59340500018 | 3:70d41b9d0705 | 125 | else if (Temp==1){ |
59340500018 | 3:70d41b9d0705 | 126 | led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 127 | LED_Segment(); |
59340500018 | 3:70d41b9d0705 | 128 | } |
59340500018 | 3:70d41b9d0705 | 129 | } |
59340500018 | 3:70d41b9d0705 | 130 | else if (button==1){ |
59340500018 | 3:70d41b9d0705 | 131 | Temp = 1; |
59340500018 | 3:70d41b9d0705 | 132 | if (Temp==1){ |
59340500018 | 3:70d41b9d0705 | 133 | led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 134 | LED_Segment(); |
59340500018 | 3:70d41b9d0705 | 135 | } |
59340500018 | 3:70d41b9d0705 | 136 | else if (Temp==0){ |
59340500018 | 3:70d41b9d0705 | 137 | seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0; |
59340500018 | 3:70d41b9d0705 | 138 | VU_LED(); |
59340500018 | 3:70d41b9d0705 | 139 | } |
59340500018 | 3:70d41b9d0705 | 140 | }*/ |
59340500018 | 3:70d41b9d0705 | 141 | /*unsigned int x = 0; |
59340500018 | 3:70d41b9d0705 | 142 | while(1){ |
59340500018 | 3:70d41b9d0705 | 143 | while (button==0){ |
59340500018 | 3:70d41b9d0705 | 144 | x = 1; |
59340500018 | 3:70d41b9d0705 | 145 | if(x == 1) { |
59340500018 | 3:70d41b9d0705 | 146 | seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0; |
59340500018 | 3:70d41b9d0705 | 147 | VU_LED(); |
59340500018 | 3:70d41b9d0705 | 148 | x = 2; |
59340500018 | 3:70d41b9d0705 | 149 | } |
59340500018 | 3:70d41b9d0705 | 150 | } |
59340500018 | 3:70d41b9d0705 | 151 | if (x==2){ |
59340500018 | 3:70d41b9d0705 | 152 | if(x == 2){ |
59340500018 | 3:70d41b9d0705 | 153 | led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 154 | LED_Segment(); |
59340500018 | 3:70d41b9d0705 | 155 | } |
59340500018 | 3:70d41b9d0705 | 156 | } |
59340500018 | 3:70d41b9d0705 | 157 | |
59340500018 | 3:70d41b9d0705 | 158 | while(button == 0){ |
59340500018 | 3:70d41b9d0705 | 159 | if(x == 2){ |
59340500018 | 3:70d41b9d0705 | 160 | led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0; |
59340500018 | 3:70d41b9d0705 | 161 | LED_Segment(); |
59340500018 | 3:70d41b9d0705 | 162 | x = 0; |
59340500018 | 3:70d41b9d0705 | 163 | break; |
59340500018 | 3:70d41b9d0705 | 164 | } |
59340500018 | 3:70d41b9d0705 | 165 | }*/ |
59340500018 | 3:70d41b9d0705 | 166 | |
59340500018 | 3:70d41b9d0705 | 167 | } |
59340500018 | 3:70d41b9d0705 | 168 | /* |
soulx | 0:b30041f75f46 | 169 | AnalogIn analog_value(A0); |
soulx | 0:b30041f75f46 | 170 | |
Pitiwut | 2:3ff3ecfd9c70 | 171 | DigitalOut led(LED1); |
Pitiwut | 2:3ff3ecfd9c70 | 172 | float meas; |
59340500018 | 3:70d41b9d0705 | 173 | unsigned short meas2 |
soulx | 0:b30041f75f46 | 174 | |
soulx | 0:b30041f75f46 | 175 | while(1) { |
59340500018 | 3:70d41b9d0705 | 176 | meas = analog_value.read(); // Converts and read the analog input value (value from 0.0 to 1.0) or unsigned short read_u16 |
Pitiwut | 2:3ff3ecfd9c70 | 177 | meas = meas * 3300; // Change the value to be in the 0 to 3300 range |
Pitiwut | 2:3ff3ecfd9c70 | 178 | if (meas > 2000) { // If the value is greater than 2V then switch the LED on |
Pitiwut | 2:3ff3ecfd9c70 | 179 | led = 1; |
soulx | 0:b30041f75f46 | 180 | } |
Pitiwut | 2:3ff3ecfd9c70 | 181 | else { |
Pitiwut | 2:3ff3ecfd9c70 | 182 | led = 0; |
soulx | 0:b30041f75f46 | 183 | } |
Pitiwut | 2:3ff3ecfd9c70 | 184 | wait(0.2); // 200 ms |
59340500018 | 3:70d41b9d0705 | 185 | }*/ |