Help regarding project for measurements lab

My college requires me to submit a mini project for my measurements lab grading and it just says "a project that utilizes measurement systems"

So first thing that came to my mind is a Voltage Measurement Circuit. I researched a bit and decided id be measuring voltages upto a maximum of 20V so I'd need a corresponding voltage divider circuit. Right now I have implemented it using a 10k and 2k resistor for my wemos d1 r2 board since its maximum input voltage is 3.3V. I would also like to add a dh11 temperature and humidity sensor to the project as an additional feature and an oled display using i2c for displaying the voltage, temperature and humidity. Firstly im unsure about the resistor values of the divider circuit I've chosen. Secondly, I'm confused between using an Arduino uno R3 or the wemos d1 r2 itself for the project as the arduino has more analog input pins compared to the wemos, which has just one analog input. Id also like to know what values to choose for the divider circuit if i replace the wemos with an uno.

what current will flow through ?

I'd use the UNO
Use 10K for R2

Well i was just hoping to demonstrate it using 9v, 1.5 V AA and 3.7 V LiPo Batteries

that's voltage, you need to think in terms of current flowing through your resistors and heat dissipation / consumption

otherwise you can find ready made voltage sensors

or more versatile sensors

1 Like

The first sensor you mentioned seems perfect for my case. So for my wemos the input shouldn't exceed 16.5V. Like that any current specifications for the same?

So 10k for R2 and calculate R1 using this calculator you have linked. Nice. Any Current specifications?

What current?

also need to confirm if it's DC or AC current you are dealing with

You received a sheet of paper with written on:

Headline: Measurements lab grading

Submit a mini project.
A project that utilizes measurement systems.

End of black ink printed on the paper.
.
.
Are you sure that you don't have any additional information?
I can't believe that there is not more information !

Maybe a part of this project is that you got only these few very poor words
and a part of this graduation is:

Are you able to get all the missing information by 100% self-initiative?

Like:
Which physical quantities should be measured?
With what precision should these quantities be measured?

If you have any additional information that describes some more details about the criteria which is used to evaluate and grade your project.

You are asking good questions. They indicate that you recognised that you have to learn more basics about it.
Here is a video-channel that explains such things very good. Voltage, current, resistance etc.


best regards Stefan

Well unfortunately our university isnt the best, I checked all their docs and that was all the info i could get. I checked with seniors and they said pretty much any thing you submit gets approved. But I dont want to simply slack off on it. I hope you understand

I plan on measuring dc only.

Yeah i pretty much know the basics as a sophomore in Electrical Engineering, but im still learning when it comes to arduino, as practical application is different from theoretical knowledge. Im still trying to actively learn Arduino though :sob:

OK. As they say

There is one project that is almost ready to use that goes beyond a simple DC-voltage measuring.
It is utilising an arduino uno as an oscilloscope which displays the measuring on a computer over the serial interface.

From your question

I got the impression you are a newcomer about electronics.
I will support you in learning arduino and in electronics. But I want to write my honest thoughts:
Your question "unsure about the resistor-values" seems like you still need some practical exercises in doing calculations.

Power-dissipation is P = U * I
and as you can calculate voltage U = R * I
Power-dissipation can be calculated as P = R * I * I which is
P = R * I²
The resistors can stand a maximum power-dissipation.
The usual resistors for breadboard tinkering have a maximum of 0,25W power-dissipation.
Some of them only 0,1W

And with this you can calculate what the minimum resistance shoud be to keep the current small to not thermally overload the resistors in your voltage-divider.

The next aspect is ideally measuring should not cause any load.
Which means using a high resistance. Super-high resistance means catching up electromagnetic noise.

So you have to make a comrpomise between highest possible resistance and not catching up a relevant amount of electromagnetic noise.

The ADC-input is a load too. This means if you use a very high resistance voltage-divider connecting this to the ADC-input will influence the measuring too.

These are all aspects that are there. But practical measuring is not that complicated as this sounds.

Additionally to your project you could add some calculation-examples to demonstrate that for certain values the influence is small.

best regards Stefan

Hello shannoxx

This is a nice project to get started.

Keep it simple and stupid firstly.

Divide et impera

Follow the example code that comes with the library or
run some tutorials for the hardware selected.
If you are happy with the results of the tutorials you can merge these to your project.

Have a nice day and enjoy coding in C++.

The code of this serial oscilloscope is pretty simple

/*
    ArduinoPrintADC.ino

    Author: Seb Madgwick

    Sends up to all 6 analogue inputs values in ASCII as comma separated values
    over serial.  Each line is terminated with a carriage return character ('\r').
    The number of channels is sent by sending a character value of '1' to '6' to 
    the Arduino.
    
    Tested with "arduino-1.0.3" and "Arduino Uno".

 */

#include <stdlib.h> // div, div_t

void setup() {

    // Enable pull-ups to avoid floating inputs
    digitalWrite(A0, HIGH);
    digitalWrite(A1, HIGH);
    digitalWrite(A2, HIGH);
    digitalWrite(A3, HIGH);
    digitalWrite(A6, HIGH);
    digitalWrite(A7, HIGH);

    // Init serial
    Serial.begin(115200);
}

void loop() {
    static int numChans = 1;

    // Received character sets number of active channels
    while(Serial.available() > 0) {
        char c = Serial.read();
        if(c >= '1' && c <= '6') {
            numChans = c - '0';
        }
    }

    // Print ADC results for active channels
    PrintInt(analogRead(A0));
    if(numChans > 1) {
        Serial.write(',');
        PrintInt(analogRead(A1));
    }
    if(numChans > 2) {
        Serial.write(',');
        PrintInt(analogRead(A2));
    }
    if(numChans > 3) {
        Serial.write(',');
        PrintInt(analogRead(A3));
    }
    if(numChans > 4) {
        Serial.write(',');
        PrintInt(analogRead(A6));
    }
    if(numChans > 5) {
        Serial.write(',');
        PrintInt(analogRead(A7));
    }
    Serial.write('\r'); // print new line
}

// Fast int to ASCII conversion
void PrintInt(int i) {
    static const char asciiDigits[10] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' };
    div_t n;
    int print = 0;
    if(i < 0) {
        Serial.write('-');
        i = -i;
    }
    if(i >= 10000) {
        n = div(i, 10000);
        Serial.write(asciiDigits[n.quot]);
        i = n.rem;
        print = 1;
    }
    if(i >= 1000 || print) {
        n = div(i, 1000);
        Serial.write(asciiDigits[n.quot]);
        i = n.rem;
        print = 1;
    }
    if(i >= 100 || print) {
        n = div(i, 100);
        Serial.write(asciiDigits[n.quot]);
        i = n.rem;
        print = 1;
    }
    if(i >= 10 || print) {
        n = div(i, 10);
        Serial.write(asciiDigits[n.quot]);
        i = n.rem;
    }
    Serial.write(asciiDigits[i]);
}

reading in the ADC-values and print them to serial.
On the computer runs an application that receives this data and creates graphs

That's it

Another similar project is this one

The PC-software is more looking like a classical oscillosope.

With such a software you could present how charging / discharging a capacitor with different resistors looks like.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.