I have spent the last hr. clicking on posts concerning Arduino output voltages and all seem to pertain to not getting high enough voltage out of pins and I cannot seem to find a single post with just the opposite problem that I have. My output voltage is 5.75V on HIGH and .7-.75V on low.
I will admit, I did get carried away and decide to push the voltage to my motor by wiring 3 batteries in series instead of the two it was working just fine with. I fried some zeners and mosfets along with a previous arduino board to this one. Lesson learned. Replaced the parts in the bridge, put in a new arduino board, and nothing works. Re-tested all the components, mosfets, resistors, diodes, etc. everything checks out, pulled the output pins from the board and tested them and they are working perfectly in time with the hall input signal going high and low just as programmed, but the high is 5.75V which is of no concern for the bridge, but the low is only dropping to .71 at the absolute lowest value. I think this is my problem and keeping the mosfets open on both sides because it wont go to zero.
So I guess my question is, has anyone ever run into this problem and have any advice how to go about rectifying this or is my new board already bricked as well. I never thought to check it before I hooked it up so I dont know if it came with this problem or there is something I missed in repairing my bridge and already cooked the new one...
As a side note, With the board powered on, all of the outputs are at .45 to .75V except the one that the program is telling to go HIGH and the other pin it is telling to go LOW which never drops below .71 until I change the pin numbers in the code. Tried switching to every combo of pins available including turning the analog pins into outputs. Same results.
I also disconnected the hall sensor from input and it changes nothing other than the one pin stays high as commanded by the code.
From my limited beginner knowledge, it shouldn't make a difference for this specific problem, but just in case I have entered something wrong or somebody is wondering, here is the code...
int hallPin=2;
int fwdPin=3;
int revPin=4;
void setup(){
Serial.begin(9600);
pinMode(hallPin,INPUT_PULLUP);
pinMode(fwdPin,OUTPUT);
pinMode(revPin,OUTPUT);
}
void loop() {
digitalRead(hallPin);
if (digitalRead(hallPin)==HIGH){
digitalWrite(revPin,LOW);
delay(.0005);
digitalWrite(fwdPin,HIGH);
}
else if (digitalRead(hallPin)==LOW){
digitalWrite(fwdPin,LOW);
delay(.0005);
digitalWrite(revPin,HIGH);
}
}