Browse Source

replace simple voltage divider with Y-configuration of 3 resistors to support negative voltages

Fabian Peter Hammerle 3 years ago
parent
commit
6164cc747a
4 changed files with 241 additions and 39 deletions
  1. 0 3
      20201223T220611.jpg
  2. 0 3
      20201223T220636.jpg
  3. 3 0
      20201224_135747.jpg
  4. 238 33
      scope.grc

+ 0 - 3
20201223T220611.jpg

@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ce565bf3d884a86ad48e2291d947c0f591f38a3b751de11671b66b99d1e3723a
-size 3551816

+ 0 - 3
20201223T220636.jpg

@@ -1,3 +0,0 @@
-version https://git-lfs.github.com/spec/v1
-oid sha256:ae6775670242546d49f73d15241619b5fe60a871f68cd9c5ceee8d7d2f91ae7e
-size 2635065

+ 3 - 0
20201224_135747.jpg

@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:ade9d4ae3358020a515e5289c6d873ca0e8ff64f394c46c9b4ee7819036735c0
+size 3985501

+ 238 - 33
scope.grc

@@ -27,11 +27,35 @@ options:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [26, 23]
+    coordinate: [20, 20]
     rotation: 0
     state: enabled
 
 blocks:
+- name: input_voltage_max
+  id: variable
+  parameters:
+    comment: ''
+    value: reference_voltage * resistor_in_ohm / resistor_ground_ohm + reference_voltage
+  states:
+    bus_sink: false
+    bus_source: false
+    bus_structure: null
+    coordinate: [1491, 193]
+    rotation: 0
+    state: true
+- name: input_voltage_min
+  id: variable
+  parameters:
+    comment: ''
+    value: -1 * reference_voltage * resistor_in_ohm / resistor_ref_ohm
+  states:
+    bus_sink: false
+    bus_source: false
+    bus_structure: null
+    coordinate: [1494, 94]
+    rotation: 0
+    state: true
 - name: reference_voltage
   id: variable
   parameters:
@@ -41,64 +65,82 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [454, 210]
+    coordinate: [457, 222]
     rotation: 0
     state: true
-- name: resistor_1_ohm
+- name: resistor_ground_ohm
   id: variable
   parameters:
     comment: ''
-    value: 45.1e3
+    value: 10e3
   states:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [828, 29]
+    coordinate: [892, 124]
     rotation: 0
     state: true
-- name: resistor_2_ohm
+- name: resistor_in_ohm
   id: variable
   parameters:
     comment: ''
-    value: 10.2e3
+    value: 100e3
   states:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [826, 128]
+    coordinate: [926, 26]
     rotation: 0
     state: true
-- name: sample_rate_hz
+- name: resistor_ref_ohm
   id: variable
   parameters:
     comment: ''
-    value: '1044.2'
+    value: 10e3
   states:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [67, 172]
+    coordinate: [925, 222]
     rotation: 0
-    state: enabled
-- name: voltage_factor
+    state: true
+- name: sample_rate_hz
   id: variable
   parameters:
     comment: ''
-    value: (resistor_1_ohm + resistor_2_ohm) / resistor_2_ohm * 1.1092365543363658
+    value: '1044.4'
   states:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [831, 227]
+    coordinate: [58, 173]
     rotation: 0
-    state: true
+    state: enabled
+- name: blocks_add_const_vxx_0
+  id: blocks_add_const_vxx
+  parameters:
+    affinity: ''
+    alias: ''
+    comment: '- V_ref * R_in / R_ref'
+    const: input_voltage_min
+    maxoutbuf: '0'
+    minoutbuf: '0'
+    type: float
+    vlen: '1'
+  states:
+    bus_sink: false
+    bus_source: false
+    bus_structure: null
+    coordinate: [1116, 324]
+    rotation: 0
+    state: enabled
 - name: blocks_multiply_const_vxx_0
   id: blocks_multiply_const_vxx
   parameters:
     affinity: ''
     alias: ''
-    comment: ''
-    const: voltage_factor
+    comment: (1 + R_in / R_gnd + R_in / R_ref)
+    const: '1 + resistor_in_ohm / resistor_ground_ohm + resistor_in_ohm / resistor_ref_ohm '
     maxoutbuf: '0'
     minoutbuf: '0'
     type: float
@@ -107,9 +149,9 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [826, 324]
+    coordinate: [816, 324]
     rotation: 0
-    state: true
+    state: enabled
 - name: blocks_short_to_float_0
   id: blocks_short_to_float
   parameters:
@@ -124,7 +166,7 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [487, 324]
+    coordinate: [483, 324]
     rotation: 0
     state: true
 - name: epy_block_0
@@ -169,7 +211,7 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [33, 276]
+    coordinate: [15, 276]
     rotation: 0
     state: true
 - name: qtgui_freq_sink_x_0
@@ -249,9 +291,9 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [837, 442]
+    coordinate: [897, 459]
     rotation: 0
-    state: true
+    state: disabled
 - name: qtgui_number_sink_0
   id: qtgui_number_sink
   parameters:
@@ -292,8 +334,8 @@ blocks:
     label7: ''
     label8: ''
     label9: ''
-    max: reference_voltage*voltage_factor
-    min: '0'
+    max: input_voltage_max
+    min: input_voltage_min
     name: '""'
     nconnections: '1'
     type: float
@@ -312,9 +354,72 @@ blocks:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [1170, 291]
+    coordinate: [1490, 428]
     rotation: 0
-    state: true
+    state: enabled
+- name: qtgui_number_sink_0_0
+  id: qtgui_number_sink
+  parameters:
+    affinity: ''
+    alias: ''
+    autoscale: 'False'
+    avg: '0'
+    color1: ("black", "black")
+    color10: ("black", "black")
+    color2: ("black", "black")
+    color3: ("black", "black")
+    color4: ("black", "black")
+    color5: ("black", "black")
+    color6: ("black", "black")
+    color7: ("black", "black")
+    color8: ("black", "black")
+    color9: ("black", "black")
+    comment: ''
+    factor1: '1'
+    factor10: '1'
+    factor2: '1'
+    factor3: '1'
+    factor4: '1'
+    factor5: '1'
+    factor6: '1'
+    factor7: '1'
+    factor8: '1'
+    factor9: '1'
+    graph_type: qtgui.NUM_GRAPH_HORIZ
+    gui_hint: ''
+    label1: ''
+    label10: ''
+    label2: ''
+    label3: ''
+    label4: ''
+    label5: ''
+    label6: ''
+    label7: ''
+    label8: ''
+    label9: ''
+    max: '1024'
+    min: '0'
+    name: '"Arduino Reading"'
+    nconnections: '1'
+    type: short
+    unit1: ''
+    unit10: ''
+    unit2: ''
+    unit3: ''
+    unit4: ''
+    unit5: ''
+    unit6: ''
+    unit7: ''
+    unit8: ''
+    unit9: ''
+    update_time: '0.10'
+  states:
+    bus_sink: false
+    bus_source: false
+    bus_structure: null
+    coordinate: [452, 499]
+    rotation: 0
+    state: disabled
 - name: qtgui_time_sink_x_0
   id: qtgui_time_sink_x
   parameters:
@@ -402,23 +507,123 @@ blocks:
     width8: '1'
     width9: '1'
     ylabel: Voltage
-    ymax: reference_voltage*voltage_factor
+    ymax: input_voltage_max
+    ymin: input_voltage_min
+    yunit: '"V"'
+  states:
+    bus_sink: false
+    bus_source: false
+    bus_structure: null
+    coordinate: [1462, 292]
+    rotation: 0
+    state: enabled
+- name: qtgui_time_sink_x_0_0
+  id: qtgui_time_sink_x
+  parameters:
+    affinity: ''
+    alias: ''
+    alpha1: '1.0'
+    alpha10: '1.0'
+    alpha2: '1.0'
+    alpha3: '1.0'
+    alpha4: '1.0'
+    alpha5: '1.0'
+    alpha6: '1.0'
+    alpha7: '1.0'
+    alpha8: '1.0'
+    alpha9: '1.0'
+    autoscale: 'False'
+    axislabels: 'True'
+    color1: blue
+    color10: dark blue
+    color2: red
+    color3: green
+    color4: black
+    color5: cyan
+    color6: magenta
+    color7: yellow
+    color8: dark red
+    color9: dark green
+    comment: ''
+    ctrlpanel: 'False'
+    entags: 'True'
+    grid: 'False'
+    gui_hint: ''
+    label1: Signal 1
+    label10: Signal 10
+    label2: Signal 2
+    label3: Signal 3
+    label4: Signal 4
+    label5: Signal 5
+    label6: Signal 6
+    label7: Signal 7
+    label8: Signal 8
+    label9: Signal 9
+    legend: 'False'
+    marker1: '-1'
+    marker10: '-1'
+    marker2: '-1'
+    marker3: '-1'
+    marker4: '-1'
+    marker5: '-1'
+    marker6: '-1'
+    marker7: '-1'
+    marker8: '-1'
+    marker9: '-1'
+    name: '""'
+    nconnections: '1'
+    size: int(sample_rate_hz*2)
+    srate: sample_rate_hz
+    stemplot: 'False'
+    style1: '1'
+    style10: '1'
+    style2: '1'
+    style3: '1'
+    style4: '1'
+    style5: '1'
+    style6: '1'
+    style7: '1'
+    style8: '1'
+    style9: '1'
+    tr_chan: '0'
+    tr_delay: '0'
+    tr_level: '0.0'
+    tr_mode: qtgui.TRIG_MODE_FREE
+    tr_slope: qtgui.TRIG_SLOPE_POS
+    tr_tag: '""'
+    type: float
+    update_time: '0.10'
+    width1: '2'
+    width10: '1'
+    width2: '1'
+    width3: '1'
+    width4: '1'
+    width5: '1'
+    width6: '1'
+    width7: '1'
+    width8: '1'
+    width9: '1'
+    ylabel: Arduino Input Voltage
+    ymax: reference_voltage
     ymin: '0'
     yunit: '"V"'
   states:
     bus_sink: false
     bus_source: false
     bus_structure: null
-    coordinate: [1174, 138]
+    coordinate: [896, 636]
     rotation: 0
-    state: true
+    state: disabled
 
 connections:
-- [blocks_multiply_const_vxx_0, '0', qtgui_number_sink_0, '0']
-- [blocks_multiply_const_vxx_0, '0', qtgui_time_sink_x_0, '0']
+- [blocks_add_const_vxx_0, '0', qtgui_number_sink_0, '0']
+- [blocks_add_const_vxx_0, '0', qtgui_time_sink_x_0, '0']
+- [blocks_multiply_const_vxx_0, '0', blocks_add_const_vxx_0, '0']
 - [blocks_short_to_float_0, '0', blocks_multiply_const_vxx_0, '0']
 - [blocks_short_to_float_0, '0', qtgui_freq_sink_x_0, '0']
+- [blocks_short_to_float_0, '0', qtgui_time_sink_x_0_0, '0']
 - [epy_block_0, '0', blocks_short_to_float_0, '0']
+- [epy_block_0, '0', qtgui_number_sink_0_0, '0']
 
 metadata:
   file_format: 1