Difference between revisions of "Lesson 9--Microduino "DIY Multimeter""

From Microduino Wiki
Jump to: navigation, search
(Created page with "{| style="width: 800px;" |- | ==Objective== We have learned how to use read analog port, then mapping to 0~1024. Today we will make a 0-5v voltmeter by Microduino's analog por...")
 
(Result)
 
(10 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 +
{{Language|第九课--Microduino_做0-5V量程的电压表(万用表的使用)}}
 
{| style="width: 800px;"
 
{| style="width: 800px;"
 
|-
 
|-
 
|
 
|
 
==Objective==
 
==Objective==
We have learned how to use read analog port, then mapping to 0~1024. Today we will make a 0-5v voltmeter by Microduino's analog port.
+
Previously, we introduced analogRead() and its return values of 0~1024. In this lesson, we will use the analog port of [[Microduino-Core]] to make a multimeter with the range of 0-5 V.
 +
 
 +
'''Important: The design of this experiment does not have an effective protection circuit. Please do not use more than two AA batteries and do not use the circuit to measure a lithium battery or any other power supply!'''
  
'''Note:This experiment circuit design without relatively complex protection circuit, so don't use more than two AA batteries, and don't used to measure the lithium battery or other power supply!!'''
 
 
==Equipment==
 
==Equipment==
 
*'''[[Microduino-Core]]'''
 
*'''[[Microduino-Core]]'''
 
*'''[[Microduino-FT232R]]'''
 
*'''[[Microduino-FT232R]]'''
 
*Other hardware equipment
 
*Other hardware equipment
**Breadboard Jumper            one box    
+
**1x AA Battery
**Breadboard               one piece 
+
**1x Box of breadboard jumper wires    
**1kΩ resistor       one
+
**1x Breadboard                
**USB Data cable               one
+
**1x 1kΩ resistor        
 +
**1x USB Data cable      
 +
 
 +
[[File:lesson9All.jpg|600px|center|thumb]]
  
==Experimental schematic==
+
==Experiment Schematic==
 
[[File:less0n9-schematic.jpg|center|600px|thumb]]
 
[[File:less0n9-schematic.jpg|center|600px|thumb]]
The purpose of using 1K resistor is that in the case of measuring end vacant, the GND reference guide to measure port, and avoid vacant interfaces interference.
 
  
 
==Program==
 
==Program==
Line 24: Line 28:
 
void setup()
 
void setup()
 
{
 
{
   Serial.begin(115200);    //Set baud rate 9600
+
   Serial.begin(9600);    //Set baud rate 9600
 
}
 
}
 
void loop()
 
void loop()
Line 30: Line 34:
 
   
 
   
 
   int V1 = analogRead(A0);                     
 
   int V1 = analogRead(A0);                     
// Read the voltage date form A0 and stores in V1, the voltage range is 0-5v and return value is 0-1024.  
+
// Read the voltage data from A0 and store it in variable V1. The voltage range is 0-5V and returns values 0-1024.  
 
   float vol = V1*(5.0 / 1023.0);               
 
   float vol = V1*(5.0 / 1023.0);               
//Convert the V1 to actual voltage value and stores in vol
+
//Convert the V1 to the voltage value and store it in vol
 
   if (vol == temp)                             
 
   if (vol == temp)                             
 
//Use to filter duplicate data, Only the voltage value and the last isn't same then output the value.
 
//Use to filter duplicate data, Only the voltage value and the last isn't same then output the value.
Line 47: Line 51:
 
}
 
}
 
</source>
 
</source>
We don't use the function map() to the conversion, you can try it by yourself.
+
We didn't use the map() function in this example, but you can try it yourself!
  
 
==Result==
 
==Result==
When the measured voltage changed, refresh the date every 1s. If there is a gap between two voltage value, this is normal.
+
When the measured voltage changes, refresh the data every second. It is normal if there is a difference between two measurements of the same battery. This is because this is still simply a low accuracy test. If you need a high accuracy test, you can take a look at:
Because this is a low accuracy test. If you need a high accuracy test, please refer to:
 
 
http://www.hacktronics.com/Tutorials/arduino-current-sensor.html
 
http://www.hacktronics.com/Tutorials/arduino-current-sensor.html
 +
 +
[[File:lesson9Result.jpg|600px|center|thumb]]
 +
 
==Video==
 
==Video==
 +
https://www.youtube.com/watch?v=bhaj_QhRE-Q
 
|}
 
|}

Latest revision as of 00:49, 27 July 2015

Language: English  • 中文

Objective

Previously, we introduced analogRead() and its return values of 0~1024. In this lesson, we will use the analog port of Microduino-Core to make a multimeter with the range of 0-5 V.

Important: The design of this experiment does not have an effective protection circuit. Please do not use more than two AA batteries and do not use the circuit to measure a lithium battery or any other power supply!

Equipment

Lesson9All.jpg

Experiment Schematic

Less0n9-schematic.jpg

Program

float temp;   // Define a float variable temp to save data.
void setup()
{
  Serial.begin(9600);     //Set baud rate 9600
}
void loop()
{
 
  int V1 = analogRead(A0);                    
// Read the voltage data from A0 and store it in variable V1. The voltage range is 0-5V and returns values 0-1024. 
  float vol = V1*(5.0 / 1023.0);               
//Convert the V1 to the voltage value and store it in vol
  if (vol == temp)                             
//Use to filter duplicate data, Only the voltage value and the last isn't same then output the value.
  {
    temp = vol;                               //Compared, then store in temp variable "temp"
  }
  else
  { 
    Serial.print(vol);                       //Serial output voltage, nowrap  
    Serial.println(" V");                    //Serial output character "V", and wrap
    temp = vol;
    delay(1000);                           //Wait for 1s, use to refresh the data
  }
}

We didn't use the map() function in this example, but you can try it yourself!

Result

When the measured voltage changes, refresh the data every second. It is normal if there is a difference between two measurements of the same battery. This is because this is still simply a low accuracy test. If you need a high accuracy test, you can take a look at: http://www.hacktronics.com/Tutorials/arduino-current-sensor.html

Lesson9Result.jpg

Video

https://www.youtube.com/watch?v=bhaj_QhRE-Q