Skip to main content
2 of 3
correct p not n
jdr5ca
  • 1.4k
  • 8
  • 14

A problem with what you are doing on the breadboard is that you show no bypass capacitors.

What makes the pull up "strong" is the ability to provide current to move the data line from zero back to one. The load on the data line is its capacitance. To move the data line from 0 to 1, you have to charge that capacitor. Working on a bread board, you are correct that you have a larger capacitive load. So you require more current to move the data line from zero to one quickly.

You are correct that the lower 620 ohm resistor will provide more current. The large current will move the capacitance load of the data line more quickly. But you are not paying attention to the other side of the resistor, the 5V rail.

The layout you have has inductance in the wires from the Arduino power supply out to the bread board. An inductor has a voltage drop across it proportional to the rate of change of the current through it:

V = L  di/dt

The analogy is that inductance is a flywheel: if it is not spinning, it will take force to get is moving. Similar, once it is spinning, it will take force to stop it.

So when the resistor starts conducting to pull up the data line, the inductance in the wires and breadboard cause a voltage drop. The +5 side of the resistor voltage drops. This inductance in the wires leading to the resistor prevents it from rapidly charging the data line back to 1.

That is the role of bypass capacitors. You place 1 or 2 right at the resistor between the +5 and GND strips on the bread board. Now when the resistor draws current, it initially pulls from the energy stored in the capacitors. After a short time, the current will start pulling from the +5 wire. Thereby, you have bypassed the inductance of the +5 supply, hence the name.

Add a 0.1 microFarad ceramic capacitor on your breadboard where the wires connect to the contact strips. You will see this on schematics for anything that has a DC supply off board. Right next to the power connector will be 2 or 3 capacitors, usually one big 2-10 uF tantalum and one smaller 0.1 uF or so. Similar across circuit boards you see bypass caps placed at the supply voltage pin of every chip, commonly two: a 0.1 uF and a 100 pF.

It might seem pointless to place a small capacitor in parallel with a larger capacitor. The values just add, yes? But again, the time response is different. Capacitors are not perfect and have internal series resistance. A big 10 uF electrolytic capacitor may store a lot of energy, but it is not fast in terms of how quickly it can start providing current. A little 100 pF ceramic monolithic capacitor is very fast, but doesn't have much energy.

So with two bypass caps in parallel, you have the small one for the initial burst of current, the larger cap for the heavy lifting, and last and slowest the 5V wires and traces to supply to steady current.

jdr5ca
  • 1.4k
  • 8
  • 14