Problem mit aref


hab schon wieder ein problem mit dem spannung messen.
aref zeigt immer 1v -2  an wenn andere sensoren ausgelesen werden deswegen kann ich die spannung des akkus nicht richtig berechnen nur aref spannung messen funktioniert aber in kombination nicht mehr .
es wehre sehr nett wenn mir ihr bei meinem software problem helfen könntet.
wenn ich mit dem multimeter aref pin messe zeigt er aber 4,5v nur wenn ich in auslese dann funktioniert es nicht immer.
code: [select]
       reference = analogread(14);
arduino_vin = (1.1/reference)*1023;
serial.println("arduino voltage:");
serial.println(arduino_vin);


hier der code
code: [select]
// simple demo feeding random data pachube.
// 2011-07-08 <jc@wippler.nl> http://opensource.org/licenses/mit-license.php

// handle returning code , reset ethernet module if needed
// 2013-10-22 hneiraf@gmail.com
int reference;
float arduino_vin;
#include <ethercard.h>

// change these settings match own setup


// ethernet interface mac address, must unique on lan
static byte mymac[] = { 0x74,0x69,0x69,0x2d,0x30,0x31 };

const char website[] progmem = "api.xively.com";

byte ethernet::buffer[350];
uint32_t timer;
stash stash;
byte session;

//timing variable
int res = 0;

float vout = 0.0;
float vin = 0.0;
float value = 0;
int result = 0;
float r1 = 10150.0;  
float r2 = 4720.0;
float average;
void setup () {
 serial.begin(9600);
 serial.println("\n[xively example]");

 //initialize ethernet
 initialize_ethernet();
}


void loop () {

 
 //if correct answer not received re-initialize ethernet module
 if (res > 220){
 initialize_ethernet();
 }
 



 res = res + 1;
 
 ether.packetloop(ether.packetreceive());
 
 //200 res = 10 seconds (50ms each res)
 if (res == 200) {

   //generate random info

       reference = analogread(14);
arduino_vin = (1.1/reference)*1023;
serial.println("arduino voltage:");
serial.println(arduino_vin);
// acs712t
average = 0;
 for(int = 0; < 1000; i++) {
   average = average + (0.048875855327468 * analogread(a4) -25) / 1000;
   delay(1);
 }

//spannung dess akkus messen
value = analogread(a5);
  vout = (value * arduino_vin) / 1024.0; // see text
  vin = vout / (r2/(r1+r2));
  if (vin<0.09) {
  vin=0.0;//statement quash undesired reading !
 }
   // generate 2 fake values payload - using separate stash,
   // can determine size of generated message ahead of time
   byte sd = stash.create();
   stash.print("verbrauch,");
   stash.println(average);
   stash.print("akku,");
   stash.println(vin);
   stash.save();

   //display data sent
   serial.println(average);
   res = 220;

   // generate header payload - note stash size used,
   // , "stash descriptor" passed in argument using "$h"
   stash::prepare(pstr("put http://$f/v2/feeds/$f.csv http/1.0" "\r\n"
     "host: $f" "\r\n"
     "x-pachubeapikey: $f" "\r\n"
     "content-length: $d" "\r\n"
     "\r\n"
     "$h"),
   website, pstr(feed), website, pstr(apikey), stash.size(), sd);

   // send packet - releases stash buffers once done
   session = ether.tcpsend();


 }
 
  const char* reply = ether.tcpreply(session);
 
  if (reply != 0) {
    res = 0;
    serial.println(reply);
  }
  delay(50);
}



void initialize_ethernet(void){  
 for(;;){ // keep trying until succeed
   //reinitialize ethernet module
   pinmode(5, output);
   serial.println("reseting ethernet...");
   digitalwrite(5, low);
   delay(1000);
   digitalwrite(5, high);
   delay(500);

   if (ether.begin(sizeof ethernet::buffer, mymac) == 0){
     serial.println( "failed access ethernet controller");
     continue;
   }
   
   if (!ether.dhcpsetup()){
     serial.println("dhcp failed");
     continue;
   }

   ether.printip("ip:  ", ether.myip);
   ether.printip("gw:  ", ether.gwip);  
   ether.printip("dns: ", ether.dnsip);  

   if (!ether.dnslookup(website))
     serial.println("dns failed");

   ether.printip("srv: ", ether.hisip);

   //reset init value
   res = 0;
   break;
 }
}

code: [select]
reference = analogread(14);
arduino_vin = (1.1/reference)*1023;
serial.println("arduino voltage:");
serial.println(arduino_vin);

ich verstehe den sinn dieses kodeschnippsels nicht.

du rechnest als hättest du die interne 1,1v referenz aktiviert hast sie aber de fakto nicht.
http://arduino.cc/en/reference/analogreference

grüße uwe



Arduino Forum > International > Deutsch (Moderator: uwefed) > Problem mit aref


arduino

Comments

Popular posts from this blog

Connecting Raspberry Pi 2 to P10(1R)-V706 LED Dot Matrix - Raspberry Pi Forums

TypeError: <unknown> is not a numpy array - Raspberry Pi Forums

datso and removing imagetitle - Joomla! Forum - community, help and support