read_analog_value

Dependencies:   mbed

Fork of Nucleo_read_analog_value by FRA221_2017

Revision:
3:70d41b9d0705
Parent:
2:3ff3ecfd9c70
--- a/main.cpp	Tue Oct 13 08:20:27 2015 +0000
+++ b/main.cpp	Wed Nov 22 11:52:05 2017 +0000
@@ -1,14 +1,179 @@
 #include "mbed.h"
- 
+//LAB2 
+AnalogIn analog_value(A1);
+DigitalIn button(USER_BUTTON);   
+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);
+unsigned int convertcount = 0;
+unsigned int Array_A[4];
+unsigned int Array_B[4];
+BusOut segmentA(D14,D15);
+BusOut segmentB(D10,D11,D12,D13);
+/* void ConvertToBinary(unsigned int n, char pos)
+{
+    if (pos == 'a'){
+        if (n / 2 != 0) {
+
+            ConvertToBinary(n / 2,'a');
+
+    }
+    Array_A[convertcount] = n%2;
+    convertcount = convertcount+1;
+    }
+    
+    else if (pos == 'b'){
+        if (n / 2 != 0) {
+            ConvertToBinary(n / 2,'b');
+    }
+        Array_B[convertcount] = n%2;
+        convertcount = convertcount+1;
+    }
+    seg1 = Array_B[3]; seg2 = Array_B[2]; seg3 = Array_B[1]; seg4 = Array_B[0]; seg5 = Array_A[3]; seg6 = Array_A[2];
+}*/
+
+void VU_LED(){
+            float A1_val;
+            A1_val = analog_value.read();
+            A1_val = A1_val*3300;
+            if (A1_val > 412.5f){
+                led0 = 1;
+                led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0;
+                if (A1_val > 825.0f){
+                    led1 = 1;
+                    led2=0; led3=0; led4=0; led5=0; led6=0; led7=0;
+                    if (A1_val > 1237.5f){
+                        led2 = 1;
+                        led3=0; led4=0; led5=0; led6=0; led7=0;
+                        if (A1_val > 1650.0f){
+                            led3 = 1;
+                            led4=0; led5=0; led6=0; led7=0;
+                            if (A1_val > 2062.5f){
+                                led4 = 1;
+                                led5=0; led6=0; led7=0;
+                                if (A1_val > 2475.0f){
+                                    led5 = 1;
+                                    led6=0; led7=0;
+                                    if(A1_val > 2887.5f){
+                                        led6 = 1;
+                                        led7=0;
+                                        if (A1_val > 3250.0f){
+                                            led7 = 1;
+                                        }
+                                    } 
+                                }
+                            }
+                        }
+                    }
+                }
+            }
+            else{
+                    led0 = 0;
+            }
+    }
+
+void LED_Segment(){
+    float A1_uval;
+    unsigned int Temp_A, Temp_B;
+    A1_uval = analog_value.read();
+    A1_uval = A1_uval*3.3f;
+    Temp_A = A1_uval;
+    Temp_B = (A1_uval*10);
+    Temp_B = Temp_B % 10;
+    segmentA = Temp_A;
+    segmentB = Temp_B;
+    /*convertcount = 0;
+    ConvertToBinary(Temp_A,'a');
+    convertcount = 0;
+    ConvertToBinary(Temp_B,'b');*/
+    
+}
+    
+int main() {
+    int x;  
+    while(1){
+        if (button==0){
+            x = 0;
+            while(1){
+            if (x % 2 == 0){
+                    while(1){
+                    //seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0;
+                    segmentA = 0;
+                    segmentB = 0; 
+                    VU_LED();
+                    if (button == 0) break; }
+                    x++;
+                    break; 
+                }
+            }
+            while(1){
+            if(x % 2 != 0){
+                    while(1){
+                    led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0;
+                    LED_Segment();
+                    if (button == 0) break; }
+                    x--;
+                    break;
+                }
+            }  
+        } 
+    }  
+     /*if (button==0){
+            Temp = 0; 
+            if (Temp==0){
+                seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0; 
+                VU_LED();
+                }
+            else if (Temp==1){
+                led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0;
+                LED_Segment();
+                }           
+            }
+        else if (button==1){
+            Temp = 1;
+            if (Temp==1){
+                led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0;
+                LED_Segment();
+                }
+            else if (Temp==0){
+                seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0; 
+                VU_LED();
+                }
+            }*/
+    /*unsigned int x = 0;
+    while(1){
+        while (button==0){
+            x = 1;
+            if(x == 1) {
+                seg1 = 0; seg2 = 0; seg3 = 0; seg4 = 0; seg5 = 0; seg6 = 0; 
+                VU_LED();
+                x = 2;
+            }
+        }
+        if (x==2){
+                if(x == 2){
+                    led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0;
+                    LED_Segment();
+                }
+        }
+                
+                while(button == 0){
+                    if(x == 2){
+                    led0=0; led1=0; led2=0; led3=0; led4=0; led5=0; led6=0; led7=0;
+                    LED_Segment();
+                    x = 0;
+                    break;
+                    }
+                }*/
+
+}
+/*
 AnalogIn analog_value(A0);
  
 DigitalOut led(LED1);
- 
-int main() {
     float meas;
+    unsigned short meas2
     
     while(1) {
-        meas = analog_value.read(); // Converts and read the analog input value (value from 0.0 to 1.0)
+        meas = analog_value.read(); // Converts and read the analog input value (value from 0.0 to 1.0) or unsigned short read_u16
         meas = meas * 3300; // Change the value to be in the 0 to 3300 range
         if (meas > 2000) { // If the value is greater than 2V then switch the LED on
           led = 1;
@@ -17,5 +182,4 @@
           led = 0;
         }
         wait(0.2); // 200 ms
-    }
-}
\ No newline at end of file
+    }*/
\ No newline at end of file