ADC measurement in four analog channel

Dependencies:   mbed

Files at this revision

API Documentation at this revision

Comitter:
cspista
Date:
Tue Nov 02 06:23:06 2021 +0000
Commit message:
Final version

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r 0c9a329e40f2 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Nov 02 06:23:06 2021 +0000
@@ -0,0 +1,41 @@
+#include "mbed.h"
+/* Lab03_ adc_scan
+ *
+ * Pásztázó mérés az ADC-vel: több csatornát pásztázunk
+ * - az A0 bemeneten egy potméterrel leosztott feszültséget mérünk
+ * - az A1 bemeneten egy MCP9700 analóg hőmérő jelét mérjük
+ * - az A2 bemeneten egy LDR segítségével a fényt mérjük
+ * - az A3 bemeneten pedig egy 2,50 V-os referencia feszültséget mérünk
+ * Az eredményeket feszültségre átszámítva a soros porton kiíratjuk.
+ */
+const float VREFH = 3.3;    // VrefH referencia feszültség [V]
+int data[4] = {0, 0, 0, 0}; // A mérési adatok tárolója
+float v[4];                 // Feszültség mV-okban
+AnalogIn potm(A0);          // Analog input at PA_0
+AnalogIn homero(A1);        // Analog input at PA_1
+AnalogIn ldr(A2);           // Analog input at PA_4
+AnalogIn vref(A3);          // Analog input at PB_0
+
+int main()
+{
+    printf(" Lab03_adc_scan: Pásztázó mérés ADC-vel\r\n");
+    printf(" - az A0 bemeneten egy potméterrel leosztott feszültségét mérjük\r\n");
+    printf(" - az A1 bemeneten egy MCP9700 analóg hőmérő jelét mérjük\r\n");
+    printf(" - az A2 bemeneten egy LDR segítségével a fényt mérjük\r\n");
+    printf(" - az A3 bemeneten pedig egy referencia feszültséget mérünk\r\n");
+    while(1) {
+        for(int i=0; i<4; i++) data[i]=0;
+        for(int i=0; i<1000; i++) {
+            data[0] += potm.read_u16();
+            data[1] += homero.read_u16();
+            data[2] += ldr.read_u16();
+            data[3] += vref.read_u16();
+        }
+        for(int i=0; i<4; i++) {
+            v[i] = VREFH*(data[i]>>16);        // V = NADC * VREFH / 2^16
+            printf(" A%d = %5.0f mV\r\n",i,v[i]);
+        }
+        printf("----------------------------------\r\n");
+        wait(2);
+    }
+}
\ No newline at end of file
diff -r 000000000000 -r 0c9a329e40f2 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Nov 02 06:23:06 2021 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file