Feszmérő projekt...
Feszmérő projekt...
Sziasztok! Egy kis segítséget szeretnék kérni az ismert poti tekergetős, analog láb olvasós progit, hogy tudnám négy digitessé tenni?
Magyarul 0-5V lcd multiméter ezred volt kijelzéssel.
A segítséget előre is köszönöm.
Magyarul 0-5V lcd multiméter ezred volt kijelzéssel.
A segítséget előre is köszönöm.
Re: Visszabeszélő....
Eddig mire jutottál? Mi a mintaprogramod? Vázlatod/elképzelésed?
Segítség :
Segítség :
Kód: Egész kijelölése
Analog jel * maxfesz/Aref = mért valós fesz.Re: Feszmérő projekt...
Bocsánat most látom, hogy létrehoztál nekem egy új topicot akkor bemásolom ide a válasz és onnan töröld. Köszönöm.
Re: Feszmérő projekt...
Áthelyezve...(admin)
Ez 4 digitet jelenít meg sajnos tizedespont nélkül.
Kód: Egész kijelölése
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2); // set the LCD address to 0x27 for a 20 chars and 4 line display
unsigned int voltage = 0;
float j = 0;
void setup()
{
lcd.init(); // initialize the lcd
// Print a message to the LCD.
lcd.backlight();
}
void loop() {
j = analogRead(A0);
voltage = j*5000/1023.0;
lcd.print(voltage);
lcd.print("V");
lcd.setCursor(0,0);
delay(500);
}
Kód: Egész kijelölése
#include <Wire.h>
long readVcc() {
// Read 1.1V reference against AVcc
// set the reference to Vcc and the measurement to the internal 1.1V reference
#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
ADMUX = _BV(MUX5) | _BV(MUX0);
#elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
ADMUX = _BV(MUX3) | _BV(MUX2);
#else
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
#endif
delay(2); // Wait for Vref to settle
ADCSRA |= _BV(ADSC); // Start conversion
while (bit_is_set(ADCSRA,ADSC)); // measuring
uint8_t low = ADCL; // must read ADCL first - it then locks ADCH
uint8_t high = ADCH; // unlocks both
long result = (high<<8) | low;
result = 1125300L / result; // Calculate Vcc (in mV); 1125300 = 1.1*1023*1000
return result; // Vcc in millivolts
}
void setup() {
Serial.begin(9600);
}
void loop() {
unsigned int ADCValue;
double Voltage;
double Vcc;
Vcc = readVcc()/1000.0;
ADCValue = analogRead(A0);
Voltage = (ADCValue / 1023.0) * Vcc;
Serial.println( Voltage );
delay(1000);
}
Re: Feszmérő projekt...
Szerintem Arduino esetén elégedj meg a század V-os pontossággal!
Ez ennél többre nem képes!
A belső 1.1V referencia alkalmazása miatt, még szükséges lesz az AVC bemeneten leosztani a mérendő 0-5V–ot, 0-1.1V-re. Ez is + jónagy hibaszázalékot fog bevinni a rendszerbe!
Vagy kiépítesz külső 5V referencia feszültség illesztést. Ennek viszont legalább tízezred V pontosságúnak kellene lennie! És alaposan szűrni, mindenféle zajoktól! ?

Ez ennél többre nem képes!
A belső 1.1V referencia alkalmazása miatt, még szükséges lesz az AVC bemeneten leosztani a mérendő 0-5V–ot, 0-1.1V-re. Ez is + jónagy hibaszázalékot fog bevinni a rendszerbe!
Vagy kiépítesz külső 5V referencia feszültség illesztést. Ennek viszont legalább tízezred V pontosságúnak kellene lennie! És alaposan szűrni, mindenféle zajoktól! ?
Re: Feszmérő projekt...
Maradjunk annyiban, hogy az Arduino feszültségmérésre alkalmatlan. Már a dokumentációból olvasva is.
Az ADC bemeneti ellenállása úgy 10k körül van. Ha feszültséget mérsz, akkor simán elviszed vele a mérendő áramkört.
Előerősítő kell hozzá és stabil referencia.
MCP6024 - erősítő 10 G-ohm bemeneti ellenállással, lineáris, 10 MHz átvitellel, rail-to-rail azaz a 0-5V tartományban mindenhol képes erősíteni (bizonyos erősítőknél, pl. LM324 3.5 V felett már nem tud erősíteni a PNP tranzisztorok miatt)
Ennek ellenére én más erősítőt használtam, SPI-n keresztül állítható erősségű erősítőt:
MCP6S26 - SPI-n programozható erősítő, beállítható erősítéssel
MCP1541 - ez stabil referenciát csinál 4.096V-ra.
Nekem kizárólag ezekkel az eszközökkel sikerült stabilan 0.01V pontosságot mérni a 0-5V tartományban.
Az ADC bemeneti ellenállása úgy 10k körül van. Ha feszültséget mérsz, akkor simán elviszed vele a mérendő áramkört.
Előerősítő kell hozzá és stabil referencia.
MCP6024 - erősítő 10 G-ohm bemeneti ellenállással, lineáris, 10 MHz átvitellel, rail-to-rail azaz a 0-5V tartományban mindenhol képes erősíteni (bizonyos erősítőknél, pl. LM324 3.5 V felett már nem tud erősíteni a PNP tranzisztorok miatt)
Ennek ellenére én más erősítőt használtam, SPI-n keresztül állítható erősségű erősítőt:
MCP6S26 - SPI-n programozható erősítő, beállítható erősítéssel
MCP1541 - ez stabil referenciát csinál 4.096V-ra.
Nekem kizárólag ezekkel az eszközökkel sikerült stabilan 0.01V pontosságot mérni a 0-5V tartományban.
Re: Feszmérő projekt...
Uraim, köszönöm a válaszokat, jövök mindenkinek egy sörrel. Egyébként egy kósza ötlet lett volna, tovább gondolva huncutszemű barátaink alkatrész teszterét, nekem MOSFET nyitófesz.-re válogatáshoz kellett volna.
