I've done small projects on the arduino and have used shields for it but now I would like to read from sensor that is externally powered.
The sensor itself just sends a signal when it detects a seed falling down a tube, it has 3 pins - 9V to power it, GND, and the signal pin which is 4.7V until it detects an object, it then goes low.
My electronics skills are lacking, if I tie that sensor's GND to the Arduino's GND then can I attach the signal pin as input to the arduino on either an analog or digital pin to read it? Or will I need a resistor in series to prevent shorting the arduino?
It is usually a good idea to put a resistor in series with the input to the Arduino, just in case the sensor outputs a voltage outside the normal range (0 - 5 V for some Arduinos, 0 - 3.3 V for others). People have used resistors in the range of 22K - 47K ohms.
However, it is possible that even with the resistor, out-of-range inputs could do long term damage to the input and/or other circuitry within the ATmega chip. In such a case, consider the use of an optoisolator, so that there is no electrical connection between the sensor and the Arduino.