洛克王国专用号 发表于 2013-8-4 23:45:10

求助arduino 测量大于5v电压疑问

      下述代码例子是通过2个1K电阻进行分压,来测量范围0-10v的电压,例子中resistorFactor = 1023.0 / (R2/(R1 + R2));这句是不是写错了?应该是resistorFactor = 1023.0 * (R2/(R1+R2)); 这样结果正好是511,与下述图表中的value of resistorFactor 吻合。





/*
DisplayMoreThan5V sketch
prints the voltage on analog pin to the serial port
Do not connect more than 5 volts directly to an Arduino pin.
*/

const float referenceVolts = 5;   // the default reference on a 5-volt board
//const float referenceVolts = 3.3;// use this for a 3.3-volt board

const float R1 = 1000; // value for a maximum voltage of 10 volts
const float R2 = 1000;

// determine by voltage divider resistors, see text
const float resistorFactor = 1023.0 / (R2/(R1 + R2));//此处是否应该是resistorFactor = 1023.0 * (R2/(R1+R2));
const int batteryPin = 0;   // +V from battery is connected to analog pin 0

void setup()
{
   Serial.begin(9600);
}

void loop()
{
   int val = analogRead(batteryPin);// read the value from the sensor
   float volts =
   (val / resistorFactor) * referenceVolts ; // calculate the ratio
   Serial.println(volts);// print the value in volts
}
      
   

bacon6581 发表于 2013-8-5 06:26:22

you are right!

飞翔的红猪 发表于 2013-8-5 10:49:01

对不对,自己实际测试一下便知~
页: [1]
查看完整版本: 求助arduino 测量大于5v电压疑问