Go Down

Topic: How to detect "high" 3v3 signal on 5v Arduino ? - is analog input feasible ? (Read 187 times) previous topic - next topic


I am using an Atmega8 , (ArduinoNG)
It fails to regiver 3v3 logic.
I need only to "detect" a high state.

If I used analog input, how would that affect performace ?  vs readdigital ? 
does analog take more time ?


Yes, it does.
digitalRead() = 3 to 4 us
analogRead() = 100 to 130 us

Perhaps you can tweak the signal a little, with a diode or pullup resistor. But that depends on the device that is generating the 3.3V signal.
Note to myself: Fastest way to toggle pin 13 on a Arduino Uno after setMode(13,OUTPUT); is PINB=bit(PORTB5);


I am using an Atmega8 , (ArduinoNG)
It fails to regiver 3v3 logic.
I need only to "detect" a high state.

According to the AtMega8 datasheet it should detect as high (assuming your powering it at 5V.
Anything below 0.2VCC should be low and above 0.6VCC high.
0.2 * 5.0 = 1V      0.6 * 5.0 = 3V

I might seem like an idiot but remember it takes one to know one.
Forum user generally fall into three categories (the good, the bad & the a**hole) what category do you fit in?


I have found no problem with an Uno (5v) detecting an input signal from 3v and 3.3v devices.

Obviously there is a risk of damage to the 3.3v device if you feed 5v to one of its input pins.



Thanks everybody, I lowered the VCC for the Atmega8L  to 4.6v , now it works fine :)

Go Up

Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

via Egeo 16
Torino, 10131