Here is a very simple LCD display voltmeter, for 0-5V inputs - do NOT exceed as will destroy the Arduino!!!
It was written to be used as a digital voltmeter for measuring the output of a simple RF Probes.
The output of such a probe is the peak-to-peak RF voltage, minus any loss due to the diode forward drop. So its not an accurate measurement.
On the other hand the sketch has been written such that for an input of 0.225V (1mW in to 50R) it displays 0dB, and will then show the relative log (dB) of your voltage measurement...
Code
// LCD_V using LCD to display analog voltage // V1 10-3-17 // LCD I2C bus (16x2) // GND - GND // VCC - 5V // SDA - A4 // SCL - A5 #include#include // chose address of 0x27 or 0x3F for LCD #define LCDADDR 0x27 //#define LCDADDR 0x3F #define LCDCOLS 16 #define LCDROWS 2 // lcd object LiquidCrystal_I2C lcd(LCDADDR, LCDCOLS, LCDROWS); void setup() { lcd.begin(); lcd.print(" VOLTMETER "); } void loop() { int Ain; // 0-1023 input double Vin, calc, dB; Ain = analogRead(A0); Vin = Ain * (5.0 / 1023.0); // convert to volts lcd.setCursor(0, 1); // clear display line lcd.print(" "); lcd.setCursor(1, 1); // volts lcd.print(Vin, 3); lcd.print("V "); if (Vin > 0) { // if not zero dB dB = 10 * log10(Vin * Vin / 0.05); lcd.setCursor(9, 1); lcd.print(dB, 1); lcd.print("dB"); } delay(500); }
No comments:
Post a Comment