You need to connect the ground of the signal to arduino ground too. Plus if your display is RS232, it communicates with +- 12V so that needs to be shifted down to 0V-5V for arduino unless it also outputs in 0V and 5V. Can you provide a link to your RS232 display?
Not sure why you need to reset for it to run. Can you post your code?
Your question is two-fold: reading values and displaying them. You need to provide details of what you're reading with a spec sheet for each sensor. That is a starting point. Once reading value is good to go, then we'll talk about displaying them.
Sure, this is the code (its from the arduino examples section)
/*
LiquidCrystal Library - Hello World
Demonstrates the use a 16x2 LCD display. The LiquidCrystal
library works with all LCD displays that are compatible with the
Hitachi HD44780 driver. There are many of them out there, and you
can usually tell them by the 16-pin interface.
This sketch prints "Hello World!" to the LCD
and shows the time.
The circuit:
* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2
* LCD R/W pin to ground
* 10K resistor:
* ends to +5V and ground
* wiper to LCD VO pin (pin 3)
Library originally added 18 Apr 2008
by David A. Mellis
library modified 5 Jul 2009
by Limor Fried (http://www.ladyada.net)
example added 9 Jul 2009
by Tom Igoe
modified 22 Nov 2010
by Tom Igoe
This example code is in the public domain.
http://www.arduino.cc/en/Tutorial/LiquidCrystal
*/
// include the library code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
}
I have just drawn up a quick schematic of what I hope to achieve and attached it to this post, please forgive the messy wiring I have not done many before
Basically, the connectors marked BMS & BCU are to allow connection from a wiring harness with two hall effect sensors installed (only one socket will be populated at a time). I want to measure 5 voltages. Four of which (v.ref1, v.ref2, v.out1 and v.out2) will be selected using switches, with two outputs. This will enable me to switch between each sensor on the loom.
On the LCD I would like to display the main supply voltage (5v) and either v.ref1 & v.out1, or v.ref2 & v.out2 (2.5v).
The higher the resolution the better really, but at least 0.00v.
thanks for the reply. What bits have I not made clear? Apologies, I am brand new to the arduino When i was testing earlier the voltage readings didn't make sense - with an input voltage of 4v i think it was displaying 3.5v but if i dropped the voltage to 3v it would be sensible.
I have just edited the code following your advice, the display is now reading 0v and does not increase when I connect a voltage to the analog pin?
One odd thing I noticed is I pulled the usb cable and the arduino LED stayed on, this was because of the voltage I was inputting to analoge pin 0, (it was about 3v) is this normal behavior lol?
This is what I have now, am I missing something crucial?
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int analoginput = 0;
float vin = 0.0;
void setup(){
// declaration of pin modes
lcd.begin(16, 2);
delay(100);
}
void loop(){
// read the value on analog input
lcd.setCursor(0,0);
lcd.print ("Vin:");
vin = analogRead(analoginput)/1023*5.00;
lcd.print(vin, 3);
lcd.setCursor(9,0);
lcd.print ("V");
delay(1400);
}
Whoops! I hate it when that happens. I haven't fetched my Arduino out of storage yet and it's been two years since I played with this stuff so I'm a little rusty. Let's pretend we're still in first grade and make sure all the data types match because I can't remember if you can mix floats and ints in an expression. If this works, then you can play with it and you'll have a working model to revert to. You'll have to tell me what happens because, as I said, I don't have anything to test the code on.
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
int analoginput = A0;
int vin = 0;
float Voltage = 0.0;
void setup()
{
// declaration of pin modes
lcd.begin(16, 2);
delay(100);
}
void loop()
{
vin = analogRead(analoginput); //read the value on analog input A0
lcd.setCursor(0,0);
lcd.print("V(int): ");
lcd.print(" "); //clear out previous integer (4 spaces)
lcd.setCursor(7,0); //backspace
lcd.print(vin); //print integer value of analog input
lcd.println (" V"); //print units and advance to next line of display
Voltage = float(vin); //cast vin to float
Voltage = Voltage/1023.0*5.0; //scale to 5V full scale
lcd.print("V(float): ");
lcd.print(" "); //clear out previous float
lcd.setCursor(9,0); //backspace
lcd.print(Voltage,2);
lcd.println(" V");
delay(1400);
}