Uno avec un adaptateur 12 V et USB en même temps : cela va-t-il griller mon portable ?
Traduit de English par IA ·
bonjour, je suis étudiant en première année, désolé si c’est évident.J’ai un Uno qui lit un capteur capacitif d’humidité du sol sur A0 et qui commande une électrovanne 12 V via un module relais. L’Uno communique avec mon portable par liaison série USB, et un petit script Python sur le portable lit les lignes et les envoie à Hermetry avec l’API HTTP de l’appareil. Cette partie fonctionne, je vois soil_moisture sur ma carte.La vanne a besoin de 12 V, donc je veux brancher un adaptateur 12 V sur la prise jack. Est-il acceptable de brancher en même temps la prise jack et le câble USB ? J’ai peur de faire un retour de courant vers le port USB de mon portable.Deux choses étranges aussi : quand la vanne clique, la lecture d’humidité passe d’environ 410 à 600 et quelques pour quelques échantillons, et parfois le port COM disparaît du portable et mon script plante avec « could not open port ».
hi, first year student, so sorry if this is obvious.
I have an Uno reading a capacitive soil moisture sensor on A0 and switching a 12 V solenoid valve through a relay module. The Uno talks to my laptop over USB serial, and a small Python script on the laptop reads the lines and posts them to Hermetry with the device HTTP API. That part works, I can see soil_moisture on my board.
The valve needs 12 V so I want to plug a 12 V adapter into the barrel jack. Is it OK to have the barrel jack AND the USB cable plugged in at the same time? I’m scared of back-feeding into my laptop’s USB port.
Also two weird things: when the valve clicks, the moisture reading jumps from around 410 to 600-something for a few samples, and sometimes the COM port disappears from the laptop and my script crashes with « could not open port ».
Traduit de English par IA ·
Je pense qu’il faut choisir l’un ou l’autre ? Je débranche toujours l’USB quand j’utilise un adaptateur.
I think you have to choose one or the other? I always unplug the USB when I use an adapter.
Traduit de English par IA ·
Non, l’Uno supporte les deux. Mais comment le relais est-il alimenté, et où se rejoignent les masses ? Les valeurs qui sautent et le port qui disparaît ressemblent plutôt à la vanne qu’à l’alimentation.
No, the Uno handles both. But how is the relay powered, and where do the grounds meet? The jumping readings and the disappearing port sound like the valve, not the supply.
Traduit de English par IA ·
Le VCC du module relais est sur la broche 5V de l’Uno. La vanne est alimentée en 12 V à travers le contact du relais, depuis le même adaptateur. Tout partage une seule masse sur la breadboard. Aucune diode nulle part, je ne savais pas qu’il en fallait une.
Relay module VCC is on the Uno’s 5V pin. Valve is 12 V through the relay contact, from the same adapter. Everything shares one ground on the breadboard. No diode anywhere, I didn’t know I needed one.
Traduit de English par IA ·
Les deux en même temps, c’est sans problème. L’Uno dispose d’un comparateur qui bascule le rail 5 V vers le régulateur lorsque VIN dépasse environ 6,6 V, et les données USB continuent de fonctionner car les lignes série se moquent de l’origine de l’alimentation. Ton ordinateur portable ne risque rien à cause de ça.Le problème vient de l’électrovanne. Une bobine de solénoïde sans diode de roue libre génère un fort pic de tension à chaque ouverture du relais, et ce pic traverse la masse commune de ta platine d’essai. C’est le saut dans la lecture analogique, et très probablement la coupure de l’USB. Voici ce que je changerais :
- Une 1N4007 aux bornes de l’électrovanne, cathode vers +12 V.
- Alimenter la bobine du relais depuis le côté 12 V ou depuis une alimentation 5 V séparée, pas depuis la broche 5V de l’Uno. Le régulateur embarqué chauffe fortement s’il alimente un relais à partir de 12 V.
- Ramener la masse de la vanne vers l’adaptateur et ne la relier à la masse de l’Uno qu’en un seul point, pas via les rails de la platine utilisés par le capteur.
- 100 nF plus 10 µF aux bornes de l’alimentation du capteur, près du capteur.
- Dans le sketch, ne pas échantillonner pendant une seconde après la commutation de la vanne, et faire la moyenne de 8 mesures.
Côté ordinateur portable, n’envoie que des mesures propres et laisse Hermetry horodater si l’horloge de ton ordinateur n’est pas synchronisée :
import serial, requests
s = serial.Serial("/dev/ttyACM0", 9600, timeout=5)
URL = "https://<your-host>/api/v1/telemetry"
HDR = {"Authorization": "Bearer <device token>", "Content-Type": "application/json"}
while True:
line = s.readline().decode(errors="ignore").strip()
if line.isdigit():
requests.post(URL, json={"soil_moisture": int(line)}, headers=HDR, timeout=10)
Les règles relatives au contenu des messages se trouvent dans Device HTTP API.
Both at once is fine. The Uno has a comparator that switches the 5 V rail to the regulator when VIN is above roughly 6.6 V, and USB data keeps working because the serial lines don’t care where power comes from. Your laptop is not at risk from that.
The trouble is the solenoid. A solenoid coil with no flyback diode throws a big voltage spike every time the relay opens, and that spike goes through your shared breadboard ground. That’s the jump in the analog reading and very likely the USB dropping out. What I’d change:
- A 1N4007 across the solenoid, cathode to +12 V.
- Take the relay coil power from the 12 V side or a separate 5 V supply, not the Uno’s 5V pin. The onboard regulator gets hot feeding a relay off 12 V in.
- Run the valve’s ground back to the adapter, and join it to the Uno ground at one point only, not through the breadboard rails the sensor uses.
- 100 nF plus 10 µF across the sensor supply, close to the sensor.
- In the sketch, don’t sample for a second after switching the valve, and average 8 readings.
On the laptop side, send only clean readings and let Hermetry stamp the time unless your laptop clock is synced:
import serial, requests
s = serial.Serial("/dev/ttyACM0", 9600, timeout=5)
URL = "https://<your-host>/api/v1/telemetry"
HDR = {"Authorization": "Bearer <device token>", "Content-Type": "application/json"}
while True:
line = s.readline().decode(errors="ignore").strip()
if line.isdigit():
requests.post(URL, json={"soil_moisture": int(line)}, headers=HDR, timeout=10)
Payload rules are on Device HTTP API.
Traduit de English par IA ·
C’était la diode. J’ai placé une 1N4007 sur l’électrovanne et déplacé le relais sur sa propre alimentation 5 V. Le port COM n’a pas chuté une seule fois en deux jours, et la valeur reste autour de 405-415 lorsque l’électrovanne commute. J’ai aussi ajouté la pause d’une seconde. Merci !
It was the diode. Put a 1N4007 on the valve and moved the relay to its own 5 V supply. The COM port hasn’t dropped once in two days and the reading stays around 405-415 when the valve switches. Also added the one second pause. Thanks!
Traduit de English par IA ·
Ha, je reconnais mon erreur. J’ai appris quelque chose moi aussi.
Ha, I stand corrected. Learned something too.
- Vous devez être connecté pour répondre à ce sujet.
Rejoignez la discussion
Connectez-vous pour poser et répondre à des questions, aimer les messages utiles et marquer la réponse qui a résolu votre problème. Chaque contribution rapporte des points et des niveaux.

