GRAVEL
ROAD

Qual è la pressione giusta per gli pneumatici della tua bici?

✓ Gratuito | ✓ Senza pubblicità | ✓ Senza registrazione

Calculateur de pression

Route Chemins blancs Gravel cassant
Tubeless Tubetype Boyau
Sec Humide
Options avancées Jante, carcasse, chargement
Souple / performance Standard Renforcée
Confort / grip Équilibré Rendement
Neutre Avant chargé Arrière chargé Bikepacking équilibré
Jante sans crochet (hookless)
.gp-tire-calculator { --gp-ink: #1A1E3A; --gp-muted: #626775; --gp-line: #E4E6EC; --gp-soft: #F6F7F9; --gp-accent: #D1695E; --gp-accent-strong: #B94D43; --gp-gold: #FFC107; width: 100%; max-width: min(650px, calc(100vw - 16px)); margin: 0 auto; padding: 16px; color: var(--gp-ink); background: #fff; border: 1px solid var(--gp-line); border-radius: 8px; box-shadow: 0 8px 24px rgba(26, 30, 58, 0.08); box-sizing: border-box; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; } .gp-tire-calculator * { box-sizing: border-box; } .gp-header h3 { margin: 0 0 18px; font-size: 1.25rem; line-height: 1.2; text-align: center; } .gp-group { margin-bottom: 16px; } .gp-group label:not(.gp-toggle), .gp-switch > span { display: block; margin-bottom: 8px; font-size: 0.95rem; font-weight: 650; line-height: 1.25; } .gp-label { display: flex !important; align-items: baseline; justify-content: space-between; gap: 12px; } .gp-value { display: inline-flex; align-items: center; justify-content: center; min-width: 2.7em; padding: 3px 8px; color: var(--gp-ink); background: var(--gp-soft); border: 1px solid var(--gp-line); border-radius: 6px; font-weight: 750; } .gp-slider { --gp-fill: 50%; width: 100%; min-height: 34px; appearance: none; background: transparent; cursor: pointer; } .gp-slider::-webkit-slider-runnable-track { height: 8px; background: linear-gradient(to right, var(--gp-ink) 0 var(--gp-fill), var(--gp-line) var(--gp-fill) 100%); border-radius: 999px; } .gp-slider::-webkit-slider-thumb { width: 24px; height: 24px; margin-top: -8px; appearance: none; background: var(--gp-gold); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.22); } .gp-slider::-moz-range-track { height: 8px; background: var(--gp-line); border-radius: 999px; } .gp-slider::-moz-range-progress { height: 8px; background: var(--gp-ink); border-radius: 999px; } .gp-slider::-moz-range-thumb { width: 20px; height: 20px; background: var(--gp-gold); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 2px 8px rgba(0,0,0,0.22); } .gp-form-grid { display: grid; grid-template-columns: 1fr; gap: 0; } .gp-select, .gp-input { width: 100%; min-height: 46px; padding: 10px 12px; color: var(--gp-ink); background: #fff; border: 1px solid var(--gp-line); border-radius: 8px; font-size: 1rem; } .gp-select:focus, .gp-input:focus, .gp-slider:focus-visible, .gp-button:focus-visible, .gp-toggle input:focus-visible + .gp-toggle-track { outline: 3px solid rgba(255, 193, 7, 0.45); outline-offset: 2px; } .gp-advanced { margin: 4px 0 16px; border: 1px solid var(--gp-line); border-radius: 8px; overflow: hidden; } .gp-advanced summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 50px; padding: 12px; font-weight: 750; cursor: pointer; list-style: none; } .gp-advanced summary::-webkit-details-marker { display: none; } .gp-advanced summary::after { content: "+"; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; flex: 0 0 26px; color: #fff; background: var(--gp-ink); border-radius: 50%; font-size: 1.1rem; line-height: 1; } .gp-advanced[open] summary::after { content: "-"; } .gp-advanced small { display: block; margin-top: 2px; color: var(--gp-muted); font-size: 0.82rem; font-weight: 500; } .gp-advanced-body { padding: 0 12px 12px; } .gp-switch { display: flex; align-items: center; justify-content: space-between; gap: 14px; min-height: 48px; } .gp-switch > span { margin-bottom: 0; } .gp-toggle { position: relative; display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; cursor: pointer; user-select: none; } .gp-toggle input { position: absolute; opacity: 0; pointer-events: none; } .gp-toggle-track { position: relative; width: 50px; height: 30px; background: #D9DCE3; border-radius: 999px; transition: background .2s ease; } .gp-toggle-track::after { content: ""; position: absolute; top: 4px; left: 4px; width: 22px; height: 22px; background: #fff; border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.18); transition: transform .2s ease; } .gp-toggle input:checked + .gp-toggle-track { background: var(--gp-ink); } .gp-toggle input:checked + .gp-toggle-track::after { transform: translateX(20px); } .gp-toggle-labels { min-width: 2.4em; color: var(--gp-muted); font-size: 0.92rem; font-weight: 650; } .gp-toggle input ~ .gp-toggle-labels::before { content: attr(data-off); } .gp-toggle input:checked ~ .gp-toggle-labels::before { content: attr(data-on); } .gp-button { width: 100%; min-height: 48px; padding: 12px 16px; color: #fff; background: var(--gp-accent); border: 0; border-radius: 8px; font-size: 1rem; font-weight: 750; cursor: pointer; transition: background .2s ease, transform .2s ease; } .gp-button:hover { background: var(--gp-accent-strong); } .gp-button:active { transform: translateY(1px); } .gp-results { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--gp-line); text-align: center; } .gp-results h4 { margin: 0 0 12px; font-size: 1.05rem; } .gp-result-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .gp-result-grid p { margin: 0; padding: 12px 10px; background: var(--gp-soft); border: 1px solid var(--gp-line); border-radius: 8px; } .gp-result-grid span { display: block; margin-bottom: 4px; color: var(--gp-muted); font-size: 0.86rem; } .gp-result-grid strong { display: block; color: var(--gp-ink); font-size: 1.45rem; line-height: 1.1; } .gp-note { margin: 12px 0 0; color: var(--gp-muted); font-size: 0.9rem; line-height: 1.45; } .gp-warning { padding: 10px 12px; color: #5C3B00; background: #FFF6DA; border: 1px solid #F1D991; border-radius: 8px; } @media (min-width: 620px) { .gp-tire-calculator { padding: 22px; } .gp-form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; } .gp-form-grid .gp-group { margin-bottom: 16px; } .gp-advanced-body .gp-form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } } document.addEventListener('DOMContentLoaded', () => { document.querySelectorAll('[data-gp-tire-calculator]').forEach((calculator) => { const table = [ { w: 25, p50: 4.45, p60: 5.0, p85: 5.5, p110: 6.0, p130: 6.35 }, { w: 28, p50: 4.0, p60: 4.5, p85: 5.0, p110: 5.5, p130: 5.85 }, { w: 30, p50: 3.9, p60: 4.4, p85: 4.8, p110: 5.3, p130: 5.65 }, { w: 32, p50: 3.1, p60: 3.6, p85: 4.2, p110: 4.7, p130: 5.05 }, { w: 35, p50: 2.7, p60: 3.2, p85: 3.5, p110: 4.0, p130: 4.35 }, { w: 37, p50: 2.55, p60: 3.0, p85: 3.4, p110: 4.0, p130: 4.3 }, { w: 38, p50: 2.45, p60: 2.9, p85: 3.3, p110: 3.9, p130: 4.2 }, { w: 40, p50: 2.1, p60: 2.5, p85: 3.0, p110: 3.5, p130: 3.85 }, { w: 42, p50: 2.0, p60: 2.4, p85: 2.9, p110: 3.4, p130: 3.7 }, { w: 45, p50: 1.9, p60: 2.3, p85: 2.7, p110: 3.2, p130: 3.5 }, { w: 47, p50: 1.65, p60: 2.0, p85: 2.5, p110: 3.0, p130: 3.3 }, { w: 50, p50: 1.4, p60: 1.7, p85: 2.2, p110: 2.6, p130: 2.9 }, { w: 55, p50: 0.95, p60: 1.1, p85: 1.6, p110: 2.1, p130: 2.35 }, { w: 60, p50: 0.8, p60: 0.95, p85: 1.4, p110: 1.85, p130: 2.15 }, ]; const $ = (selector) => calculator.querySelector(selector); const weightIn = $('#gp-weight'); const widthIn = $('#gp-width'); const rimIn = $('#gp-rim-width'); const maxPressureIn = $('#gp-max-pressure'); const hooklessEl = $('#gp-hookless'); const ranges = [ { input: weightIn, output: $('#gp-weight-value') }, { input: widthIn, output: $('#gp-width-value') }, { input: rimIn, output: $('#gp-rim-width-value') }, ]; let hasCalculated = false; const clamp = (value, min, max) => Math.min(Math.max(value, min), max); const lerp = (a, b, ratio) => a + (b - a) * ratio; const pressureFormat = (value) => value.toLocaleString('fr-FR', { minimumFractionDigits: 1, maximumFractionDigits: 1, }); const barUnit = (value) => value > 1 ? 'bars' : 'bar'; const pressureWithUnit = (value) => `${pressureFormat(value)} ${barUnit(value)}`; const parseDecimal = (value) => { const normalized = String(value).trim().replace(',', '.'); const parsed = Number.parseFloat(normalized); return Number.isFinite(parsed) ? parsed : null; }; const getWidthAnchors = (width) => { if (width = table[table.length - 1].w) return [table[table.length - 1], table[table.length - 1]]; for (let i = 0; i = table[i].w && width { const anchors = [ [50, entry.p50], [60, entry.p60], [85, entry.p85], [110, entry.p110], [130, entry.p130], ]; if (weight = 130) return anchors[anchors.length - 1][1]; for (let i = 0; i = w1 && weight { const [low, high] = getWidthAnchors(width); if (low.w === high.w) return getPressureForWeight(low, weight); const lowPressure = getPressureForWeight(low, weight); const highPressure = getPressureForWeight(high, weight); return lerp(lowPressure, highPressure, (width - low.w) / (high.w - low.w)); }; const getRimCoef = (width, rimInternal) => { const idealInternal = clamp(width * 0.55, 17, 27); return clamp(1 - ((rimInternal - idealInternal) * 0.004), 0.97, 1.03); }; const getRevisionCoef = (weight) => { if (weight <= 60) return 0.94; if (weight <= 85) return lerp(0.94, 0.98, (weight - 60) / 25); if (weight { const widthPart = (clamp(width, 25, 60) - 25) / 35; const weightPart = weight 105 ? 0.01 : 0; return clamp(0.055 + (widthPart * 0.045) + weightPart, 0.045, 0.115); }; const getMinPressure = (width, type) => { if (type === 'tubetype') { if (width < 35) return 1.9; if (width < 45) return 1.25; return 0.9; } if (type === 'boyau') { if (width < 35) return 1.8; if (width < 45) return 1.2; return 0.85; } if (width < 35) return 1.5; if (width { if (width <= 24) return 5.5; if (width <= 29) return 5.0; if (width <= 34) return 4.5; if (width <= 39) return 4.0; if (width <= 44) return 3.5; if (width <= 54) return 3.0; if (width { output.textContent = input.value; const percent = ((Number(input.value) - Number(input.min)) / (Number(input.max) - Number(input.min))) * 100; input.style.setProperty('--gp-fill', `${percent}%`); }; const calculate = () => { const weight = Number(weightIn.value); const width = Number(widthIn.value); const rimInternal = Number(rimIn.value); const surface = $('#gp-surface').value; const type = $('#gp-type').value; const weather = $('#gp-weather').value; const casing = $('#gp-casing').value; const feel = $('#gp-feel').value; const load = $('#gp-load').value; const typeCoef = { tubetype: 1.00, tubeless: 0.95, boyau: 1.05 }; const surfaceAdj = { route: 0, blancs: -0.6, engages: -0.9 }; const casingCoef = { souple: 0.97, standard: 1.00, renforcee: 1.04 }; const feelCoef = { confort: 0.96, equilibre: 1.00, rendement: 1.04 }; const loadCoef = { neutre: { front: 1.00, rear: 1.00 }, avant: { front: 1.04, rear: 0.98 }, arriere: { front: 0.98, rear: 1.05 }, bikepacking: { front: 1.02, rear: 1.03 }, }; let base = getBase(width, weight); base *= typeCoef[type]; base += surfaceAdj[surface]; base *= getRevisionCoef(weight); base *= casingCoef[casing]; base *= feelCoef[feel]; base *= getRimCoef(width, rimInternal); if (weather === 'humide') base *= 0.96; let front = base; let rear = base * (1 + getRearDiff(width, weight)); front *= loadCoef[load].front; rear *= loadCoef[load].rear; const minPressure = getMinPressure(width, type); const floorApplied = front < minPressure || rear 0) { cap = Math.min(cap, manualCap); capReasons.push(`limite saisie : ${pressureWithUnit(manualCap)}`); } if (Number.isFinite(cap)) { front = Math.min(front, cap); rear = Math.min(rear, cap); } $('#gp-front').textContent = pressureFormat(front); $('#gp-rear').textContent = pressureFormat(rear); $('#gp-front-unit').textContent = barUnit(front); $('#gp-rear-unit').textContent = barUnit(rear); $('#gp-results').hidden = false; const capNote = $('#gp-cap-note'); if (capReasons.length > 0) { capNote.textContent = `Sécurité : ${capReasons.join(' + ')}. Respectez toujours la limite la plus basse indiquée sur le pneu, la jante ou la roue.`; capNote.hidden = false; } else { capNote.hidden = true; } const lowNote = $('#gp-low-note'); if (floorApplied) { lowNote.textContent = 'Pression minimale appliquée pour limiter le risque de pincement, talonnage ou comportement flou.'; lowNote.hidden = false; } else if (Number.isFinite(cap) && cap { updateRange(range); range.input.addEventListener('input', () => { updateRange(range); if (hasCalculated) calculate(); }); }); calculator.querySelectorAll('select, input[type="checkbox"], input[type="number"]').forEach((input) => { input.addEventListener('input', () => { if (hasCalculated) calculate(); }); input.addEventListener('change', () => { if (hasCalculated) calculate(); }); }); $('#gp-calc-btn').addEventListener('click', () => { hasCalculated = true; calculate(); }); }); });

La pressione degli pneumatici è una regolazione essenziale per comfort, prestazioni… e divertimento in sella. Se sono troppo gonfi, gli pneumatici perdono grip e comfort. Troppo sgonfi? Aumenti il rischio di forature, la sensazione di instabilità, o peggio – il cerchio che sbatte.

Ecco perché abbiamo creato questo calcolatore della pressione degli pneumatici per bici, semplice e rapido, basato su diversi criteri chiave:

  • Il peso totale (bici + ciclista + eventuali borse)
  • La larghezza reale dello pneumatico, misurata in millimetri
  • Il tipo di terreno (strada, strade bianche, sterrati impegnativi)
  • Il tipo di pneumatico: copertoncino con camera d’aria (tubetype), tubeless o tubolare

Grazie a questo strumento ottieni una pressione consigliata per lo pneumatico anteriore e quello posteriore, espressa in bar. Il calcolo si basa sulle raccomandazioni sul campo di Gravel Passion, combinate con una tabella delle pressioni derivata da test concreti.

Come usare questo calcolatore?

I nostri pneumatici preferiti per il gravel

Come regolare al meglio la pressione dei tuoi pneumatici gravel o da strada?

👉 Nel gravel, una pressione troppo alta penalizza comfort e aderenza, soprattutto sui fondi sassosi.
👉 Su strada, una pressione troppo bassa aumenta il rischio di foratura per pizzicatura.

💡 Regola generale:

  • Più lo pneumatico è largo, meno va gonfiato.
  • Maggiore è il peso totale, più la pressione va aumentata.
  • La ruota posteriore sopporta più carico: la pressione sarà quindi leggermente più alta dietro.

 

Gli ultimi pneumatici testati

5 consigli per gonfiare gli pneumatici gravel alla giusta pressione

Consulta il manuale del produttore o l’etichetta dello pneumatico: spesso il produttore indica un intervallo di pressione consigliato sul fianco dello pneumatico (in PSI o in bar). È un ottimo punto di partenza.

Tipo di terreno: su fondo più accidentato, una pressione inferiore può offrire più trazione e un rotolamento più confortevole. Su superfici più lisce, una pressione più alta può rendere la scorrevolezza più efficiente.

Peso del ciclista: se pesi di più, in genere servirà una pressione maggiore per evitare le forature per pizzicatura (note anche come “snakebite”).

→ Condizioni meteo: una pressione leggermente più bassa può offrire più grip su superfici bagnate o scivolose.

Tipo di pneumatico: i tubeless possono in genere lavorare con pressioni leggermente più basse rispetto agli pneumatici con camera d’aria.

Perché usare un calcolatore piuttosto che una tabella fissa?

Una tabella delle pressioni è utile, ma spesso troppo generica. Il nostro strumento ti permette di incrociare più criteri e di adattarti alla tua configurazione reale. È anche perfetto per confrontare le tue impostazioni tra due bici, due montaggi di pneumatici o due uscite (asfalto vs gravel impegnativo).

In sintesi

  • 📏 Inserisci il tuo peso, la larghezza dello pneumatico e il terreno
  • ⚙️ Scegli il tipo di pneumatico
  • 🎯 Ottieni una pressione personalizzata per l’anteriore e il posteriore

Ma soprattutto… prova, pedala, regola! Niente sostituisce le sensazioni sul campo, ma questo calcolatore ti offre una base affidabile da cui partire.

🛍️ I nostri negozi e servizi gravel preferiti!
🤑 Les meilleurs codes promos en Agosto 2026