I’m currently making a PCB that will have 3 Arduino nanos one will be hooked up to a PH probe, one will be hooked up to an EC probe and the other will control the other to Arduinos and detect for button inputs. I would like to add a a small reset button that will reset all 3 nanos at the same time, I’m pretty sure this is as simple as connecting each reset pin to a common wire then hooking the common to a button with GND on the other side? I have read that an external pull-up resistor is good to have and won’t harm any thing but I don’t know what value pull-up I should use any advice
The built in pull up resistors on the nano's gpio pins are in the 20-50k ohm range and are usually sufficient for typical use. If you have a situation where there is higher levels of EMI such as longer wire runs or just a noisy environment you can move to a lower(stronger) ohm value pull up such as 5-10K.
A higher value will "leak" less power. A lower value will provide a stronger pull up.The Ideal value would be the highest value that doesn't allow a false signal under normal use. In other words it's a guess.
In the case of a noisy line a 0.1uF cap from the line to ground along with the lower value external pullup may help. The cap can add hardware debounce to a switch if debounce is necessary.
However, the physical placement of the 0.1uF cap in the circuit is critical to the noise reduction. Naive circuit layouts like Dupont wires in a breadboard incorporate relatively long wire runs that have excess inductance, capacitance, and resistance. The noise current that is bypassed by such a capacitor can just spill over into other parts of the circuit, unless the capacitor is located in a place where the impedance to ground is low, in common with the noise source ground.
Generally, a good place to ground the cap like that is physically near the MCU ground connection. But it's not the whole story...
In the case of a reset line, I think there are capacitors already on the Nano boards, so it's not an issue...
I spotted the problem already. Use one Nano. Your question about pull-up resistors on the reset pins goes away.
This is what is called an "X-Y Problem".
Problem Y: You don't know how to connect all your sensors and buttons to a single Nano, or maybe how to combine the sketches into a single sketch. So you come up with what you think is a good solution involving 3 Nano.
Problem X: Now you need to reset 3 Nanos instead of 1 and don't know how best to do that.
So you ask for to help problem X when you should really be asking for help with problem Y.
Using multiple Arduino is rarely a good solution to any problem, and it's a mistake that beginners often make.
It's not the entire reset circuit, you forgot to show C4.
Also, even if you use three Nanos, it might be an XY problem because it's hard to imagine why you would need the external reset for them. They power up in reset condition quite well.
Often when the external reset line is mentioned, it's because there are flaws in the code that cause it to freeze or crash, it's better to find and correct those instead of adding reset hardware.
Further discussion probably won't be useful without seeing code and schematics.
I know, I had it open already. But you clipped out part of the circuit. I agree that the capacitors perform a different function. I just think, if you mention a circuit node, you should be complete and identify all the connections.
If I use internal power-up reset signal to boot the processor and the CPU is hanged for some reasons, then I have to power down and power up. Is this semi hot/cold start good or hot start is good by injecting external reset signal?
That C4 (Fig-1) is not across the RESET button and hence it is not the part of NANO's RESET circuit. The C4 has been used by the DTR signal to create reset signal for NANO prior to uploading process.
Figure-1:
Really good example and explanation of an XY problem. OP @tylermakes you really should digest what @PaulRB said there: it will surely be worth a bit of effort now to examine how to get all that onto one Nano and save yourself a shed-load of cr@p going forward.
Not in parallel, RESET to GND, but it is part of the circuit. The side of C4 that is connected to *DTR is low impedance at the FT232R IC. The logic state of *DTR at power up may or may not be LOW (thus equivalent to GND), but in any case it is definitely an active part of the circuit.
Fig-1 (depicted below) shows the network around RST circuit of NANO. The C4 goes out-of-circuit once uploading process begins. The remaining components (RP1D resistor and RESET button) constitute the active reset circuit for the NANO.
Figure-1:
It does not go "out of circuit". At boot time, C4 will discharge to 0V as RESET and *DTR remain HIGH. Applying 0V to RESET through the push button will charge the capacitor to 5V, and it will discharge through RP1D causing a delay in the applied RESET signal.
The RC time constant is the same, regardless whether one end of the capacitor is connected to GND, or 5V.
However, the AVR does not actually need a capacitor in the RESET circuit if configured for it, IIRC.
There are a couple reasons I went with multiple Arduinos instead of one.
first is because I have the program constantly running(monitoring PH and auto adjusting it) but I wanted to have a button input with no delay. I know I can do a whole thing with the millis function to make a multiple things happen at the same time and I did that but it ended up making me need to hold the button longer than a press(till the void loop looped)
The second reason I went with separate Arduinos is because the LCD screens have the same I2C address and can’t be changed so I’m using the first Arduino as the EC probe, LCD, relays and pumps the second is PH and LCD and relays
About the question regarding the pull-up resistor why would the question not apply to one Arduino? My understanding is you always want a pull up or down to prevent floating pins?
And the reason I would like to have reset buttons is not because of any problems, I just want to be able to easily restart the program because I need to change dosing value and then test
First off I would like to thank you all for your grate input. To clarify is it alway bad to have multiple Arduinos?
Because currently I’m not having any errors with the Arduinos working together, I have it set up right now with Arduino 1 the controller looking for a button press, if a press is detected it sets a gpio to high the EC Arduino at the start of the void loop it does an if statement to see if the signal from the controller is high, if the button is high it dose function 2 (normally it runs function 1 constantly). The third Arduino is hooked up similar
At the end of function 2 it sets a different gpio on the EC Arduino to high then low after a delay. The controller arduino is then set back to a low state by that Pulse from the EC Arduino, the controller Arduino is only checking 2 things (for button press and for pulse) in the void loop, so even a quick press will be detected.
Where the reset comes into play, I plan to change and modify the code more and if I “brake” the code or function 2 done not finish, I was thing a reset button on my pcb might be nice