read_analog_value

Dependencies:   mbed

Fork of Nucleo_read_analog_value by FRA221_2017

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?

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