Working Without a Pull-up/ Pull-down Resistor With Arduino

by PanosA6 in Circuits > Arduino

18218 Views, 13 Favorites, 0 Comments

Working Without a Pull-up/ Pull-down Resistor With Arduino

20170121_102512 copy.jpg

We can avoid using an external pull-up or pull-down resistors, simply by using the internal existing pull-up resistor within Arduino. This may makes life easier when we use pushbuttons.

In void setup() {} add digitalWrite(buttonPin1,HIGH); or digitalWrite(buttonPin1,INPUT_PULLUP)

Internally you set a pull up resistor to the pin. The state is HIGH when the button in unpressed, and LOW when it is pressed..
Try the circuit, I liked it alot for its simplicity.
In a previous instructable, I examend the pull-up and pull down resistors so we can have a better understanding whats going on even with simple things.
You can find here: https://www.instructables.com/id/Understanding-the-Pull-up-Resistor-With-Arduino/

Also check the reference of the Arduino site: https://www.arduino.cc/en/Tutorial/Foundations/DigitalPins

The Circuit and the Code

Untitled Sketch_bb.jpg

/*
Working without the external pull-up or pull-down resistors,
and using the internal pull-up resistor in Arduino
This example demontrates the OR gate
*/
int buttonPin1 = 2;
int buttonPin2 = 3;
int ledPin = 8;

void setup() {
pinMode(ledPin, OUTPUT);
pinMode(buttonPin1, INPUT);
digitalWrite(buttonPin1, HIGH); //Here you set internally a pull up resistor to the pin.
//The state is HIGH when the button in not pressed, and LOW when it is pressed.

// in the same manner you can set the pull - up resistor (digitalWrite(buttonPin1, INPUT_PULLUP);

pinMode(buttonPin2, INPUT);
digitalWrite(buttonPin2, HIGH);// the same as previous button
}
void loop(){
// so if the state of the buttons are LOW when pressed, to reverse this and make them HIGH we can use the Boolean Operator ! (not)
if ((!digitalRead(buttonPin1) == HIGH) || (!digitalRead(buttonPin2) == HIGH )) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}