user-1: I have an Arduino Uno and the I/O Shield wired up and I'm trying to switch (i.e. engage) a relay on the I/O Shield, but nothing seems to be working.
I've identified the input pins correctly and am able to send digital signals to it and it responds correctly. I also see the LED next to the relay light up when I do a digital write on the Arduino to a specific relay pin.
I'm starting to think that I might need to use an alternative power source or that I am not using the Arduino API correctly to switch the relay. At the moment I do a digitalWrite(13, HIGH), delay, and then do a digitalWrite(13, LOW) - pretty simple.
The shield is just powered by the Arduino at the moment, and I haven't been able to find where I might be able to plug in power, so I'm assuming the Arduino supplies it with all of the power it needs.
#include <Arduino.h>

int relayPin = 13;

void setup() {
    pinMode(relayPin, OUTPUT);
}

void loop() {
            digitalWrite(relayPin, HIGH);
        delay(5000);
        digitalWrite(relayPin, LOW);
        delay(5000);
}



user7553: Unless you share a schematic, it will be very difficult to provide a good answer. 
Here are the things that you might be doing wrong:
1) Using a power supply which is not able to provide enough current to the relay.
2) Using a power supply of wrong voltage as required by relay coil. The relay might be needing 12 V and you might be trying to power it up with a 5 V power supply.
3) You might be trying to drive the relay directly with your GPIO pin (without using any external transistor switch).
4) Trying to raise a dead relay. There is a possibility that the relay is damaged. Check it by powering it up directly using a battery or another adequate power supply that you got.

user21378: Based on your newly-added photo, you are using the Velleman VMA05 I/O Shield (or the KA-05 kit version).
This shield requires a 12V 500mA (minimum current capability) power supply input to the Arduino Uno, as that board uses relays with a 12V coil.  Your symptoms (LED lights but relay does not switch) suggest that you are using a lower voltage, or lower current, power supply to your Arduino. If so, then the fix is: Use the required power supply to the Arduino.

I'm assuming the arduino supplies it with all of the power it needs.

Yes - but only if you meet the minimum requirements of the power supply which you connect to the Arduino. As documented in the Vellemen VMA05 datasheet and manual, this must be a 12V supply (not lower, not higher) capable of a minimum of 500mA.
(You would likely be able to use a 12V supply capable of a slightly lower current output, if you only wanted to have one or two relays active at the same time. However if more relays were active simultaneously, the risk would increase of incorrect or erroneous behaviour, due to the additional current necessary for each relay coil, in addition to powering the Arduino, eventually exceeding the capabilities of the power supply.)

user32635: Yes, 12V / 500mA supply is the minimum required for this board to work correctly. 9V will make the LED turn on but not pull the relay contacts properly.  Also, I have had two of these boards where the back EMF diodes across the relay coils have gone short circuit causing excessive heating in the associated switching transistors.  The solution is to replace these diodes with a more suitable 1N4001 type since the 1N4148 that is supplied with the kit is really a small signal diode and really not suitable for this purpose.

-1: <p>I have an Arduino Uno and the I/O Shield wired up and I'm trying to switch (i.e. engage) a relay on the I/O Shield, but nothing seems to be working.</p>

<p>I've identified the input pins correctly and am able to send digital signals to it and it responds correctly. I also see the LED next to the relay light up when I do a digital write on the Arduino to a specific relay pin.</p>

<p>I'm starting to think that I might need to use an alternative power source or that I am not using the Arduino API correctly to switch the relay. At the moment I do a <code>digitalWrite(13, HIGH)</code>, delay, and then do a <code>digitalWrite(13, LOW)</code> - pretty simple.</p>

<p>The shield is just powered by the Arduino at the moment, and I haven't been able to find where I might be able to plug in power, so I'm assuming the Arduino supplies it with all of the power it needs.</p>

<pre><code>#include &lt;Arduino.h&gt;

int relayPin = 13;

void setup() {
    pinMode(relayPin, OUTPUT);
}

void loop() {
            digitalWrite(relayPin, HIGH);
        delay(5000);
        digitalWrite(relayPin, LOW);
        delay(5000);
}
</code></pre>

<p><a href="https://i.stack.imgur.com/u8oFH.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/u8oFH.jpg" alt="enter image description here"></a></p>
 7553: <p>Unless you share a schematic, it will be very difficult to provide a good answer. </p>

<p>Here are the things that you might be doing wrong:</p>

<p>1) Using a power supply which is not able to provide enough current to the relay.</p>

<p>2) Using a power supply of wrong voltage as required by relay coil. The relay might be needing 12 V and you might be trying to power it up with a 5 V power supply.</p>

<p>3) You might be trying to drive the relay directly with your GPIO pin (without using any external transistor switch).</p>

<p>4) Trying to raise a dead relay. There is a possibility that the relay is damaged. Check it by powering it up directly using a battery or another adequate power supply that you got.</p>
 21378: <p>Based on your newly-added <a href="http://www.velleman.co.uk/contents/media/a05-3.jpg" rel="nofollow">photo</a>, you are using the <a href="http://www.velleman.co.uk/contents/en-uk/p626_vma05.html" rel="nofollow">Velleman VMA05 I/O Shield</a> (or the <a href="http://www.velleman.co.uk/contents/en-uk/p582_ka05.html" rel="nofollow">KA-05 kit version</a>).</p>

<p>This shield <strong>requires</strong> a 12V 500mA (minimum current capability) power supply input to the Arduino Uno, as that board uses relays with a 12V coil.  Your symptoms (LED lights but relay does not switch) suggest that you are using a lower voltage, or lower current, power supply to your Arduino. If so, then the fix is: Use the required power supply to the Arduino.</p>

<blockquote>
  <p>I'm assuming the arduino supplies it with all of the power it needs.</p>
</blockquote>

<p>Yes - but <em>only</em> if you meet the minimum requirements of the power supply which you connect to the Arduino. As documented in the Vellemen VMA05 <a href="http://www.velleman.co.uk/contents/en-uk/vma05d.pdf" rel="nofollow">datasheet</a> and <a href="http://www.velleman.co.uk/contents/en-uk/vma05.pdf" rel="nofollow">manual</a>, this must be a 12V supply (not lower, not higher) capable of a minimum of 500mA.</p>

<p>(You would likely be able to use a 12V supply capable of a slightly lower current output, if you only wanted to have one or two relays active at the same time. However if more relays were active simultaneously, the risk would increase of incorrect or erroneous behaviour, due to the additional current necessary for each relay coil, in addition to powering the Arduino, eventually exceeding the capabilities of the power supply.)</p>
 32635: <p>Yes, 12V / 500mA supply is the minimum required for this board to work correctly. 9V will make the LED turn on but not pull the relay contacts properly.  Also, I have had two of these boards where the back EMF diodes across the relay coils have gone short circuit causing excessive heating in the associated switching transistors.  The solution is to replace these diodes with a more suitable 1N4001 type since the 1N4148 that is supplied with the kit is really a small signal diode and really not suitable for this purpose.</p>
