digitalWrite and analogWrite deliver 3.03 V in higher state

I guys,
Here is my problem, my arduino uno deliver 3.03V insted of 5V when I try a digitalWrite(pin, HIGH) or an analogWrite(pin, 255).
There is no big charge, and the problem appened in both alimentation mode, USB and external alimentation via an ATX power supply delivering 5V.
I'm a newbie, but I really don't understand why I can't have 5V, moreover, I really need 5V for my circuit, the transistor need 5V to work properly. :frowning:

I hope it's clear, sorry for bad language
Light

It could be you're trying to draw too much current, causing the voltage to drop (and possibly damaging the output pin drivers).
Can you please supply a schematic?

Yes, its important not to take 40mA or more from a pin - in fact best to keep this down to 25mA or so for peace-of-mind - but the output voltage will drop if heavily loaded even at that level. The output transistors are about 40 ohms when on so a 10mA load will mean the output is closer to 4.5V than 5.0V.

Prolonged over-loading of the output transistors will damage the chip because through local overheating, Short-term overloads may or may not cause obvious damage, there is no guarantee.

I don't think that the board is heavily loaded, this is the schematic Arduino Playground - HomePage, I just had a DEL on the arduino output pin....

I just had a DEL on the arduino output pin....

A Diesel-Electric Locomotive?

French spotted, a LED sorry :wink:

But you had a current-limiting resistor as well, not just a LED?

Yep, of course, 100 ohm resistor a 2W one. There is another IR LED, with a 1K resistor, 2W too . The white LED is not on the same pin with the IR LED, so I don't think that the board is over load with 2 LED...

Where did you measure the 3V at? What was the physical points you were touching?

Did you measure a voltage when nothing connected to the board?
And, have you declared pin as OUTPUT in your code?

void setup() {
Serial.begin(9600);
pinMode(12, OUTPUT);
}

void loop() {
digitalWrite(12, HIGH);
}

I tested it with this code, I have 5V between pin 12 and pin gnd, but if i put a LED between the two pins, i have only 3V between the 2 pins, even if I use an external alimentation ( ATX ) is this normal ? If it is, how can I get 5V in OUTPUT with the LED, to saturate correctly my transistor ? :~

I = V / R = ( 5 - 1.4 ) / 100 = 36 mA. Current is too high for arduino output, try 200 Ohm, you should not expect 5V, but 4.2V is normal with 20mA current

Light411:
but if i put a LED between the two pins, i have only 3V between the 2 pins

With a resistor, this would be expected. LEDs only drop their forward voltage.

Light411:
even if I use an external alimentation ( ATX ) is this normal ?

What is an alimentation? That word isn't translating correctly.

Here's what "alimentation" means. However I don't think it's the right english word, unless Light411 is refering to externally provided power...