水草缸 CO₂ 浓度估算
没有 CO₂ 测试仪也能粗估:利用 pH、KH 与二氧化碳之间的固定关系反推。 这个方法有明确的适用前提,请看下面的说明——它不是精确测量。
公式与原理
二氧化碳溶于水会形成碳酸,降低 pH。KH(碳酸盐硬度)是水抵抗 pH 变化的能力。 两者的组合决定了水中溶解 CO₂ 的量,这是一个标准的碳酸盐平衡关系:
CO₂ (ppm) = 3 × KH(dKH) × 10(7 − pH)
这个公式在「KH 主要由碳酸盐构成、且水中没有其他显著影响 pH 的酸」时成立。
目标区间
| CO₂ 浓度 | 含义 |
|---|---|
| 低于 10 ppm | 二氧化碳不足,水草生长慢、容易长藻(因为草吸收不到碳) |
| 10 – 20 ppm | 偏低,适合低光缸或不加碳的缸 |
| 20 – 30 ppm | 水草缸的目标区间,生长与安全性平衡最好 |
| 30 – 40 ppm | 偏高,鱼开始出现浮头、急促呼吸 |
| 40 ppm 以上 | 危险,鱼会缺氧死亡 |
· 水草泥 / 泥炭——会释放腐殖酸降低 pH,但这不是 CO₂ 造成的;
· 沉木——同样释放有机酸;
· pH 缓冲剂或 pH 调低剂——人为改变了 pH,公式前提被破坏;
· 开灯后水草大量消耗 CO₂——pH 会因此上升,此时读数不代表 CO₂ 供给量。
所以这个方法适合看趋势(早上与傍晚对比),不适合当绝对值用。
这套公式能信几分
它有用,但精度比大多数人以为的差得多。原因在公式里的 10(7−pH)——这是指数关系,
所以 pH 的读数误差会被放大成 CO₂ 的巨大误差:pH 每错 0.1,算出来的 CO₂ 就差四分之一左右。
| 读数来源 | 典型误差 | 传到 CO₂ 上是多少 |
|---|---|---|
| pH 试纸 / 比色卡(分辨率约 0.2) | ±0.2 | 差 1.6 倍——用它套这个公式基本等于瞎猜 |
| pH 笔,长期没校准 | ±0.1 以上 | 差 1.3 倍以上 |
| pH 笔,用标准液两点校准过 | ±0.02 | 差 5% 左右,这时候数字才能用 |
| KH 滴数法(1 滴 = 1 dKH) | ±1 dKH | KH 4 时 ±25%;KH 2 时 ±50% |
两条误差叠在一起,最坏情况估算值可以差一倍。所以「用 0.01 分辨率的 pH 笔 + 定期校准」不是讲究, 而是这个公式有没有意义的前提。只有比色剂的话,就只看趋势,不看数字。
更麻烦的是:pH 这把尺子在这里刻度特别密
以 KH 4 为例,把本页的公式正着算一遍,你会看到一件事:
| pH | 估算 CO₂ | 判断 |
|---|---|---|
| 6.90 | 15.1 ppm | 偏低 |
| 6.80 | 19.0 ppm | 偏低(本页默认值) |
| 6.70 | 23.9 ppm | 理想 |
| 6.60 | 30.1 ppm | 理想区间上限 |
| 6.50 | 37.9 ppm | 偏高,鱼可能已经不适 |
| 6.40 | 47.8 ppm | 危险 |
什么时候测,才不算白测
CO₂ 在一天里是大幅波动的,同一个缸早上和傍晚能差出好几倍。想看出趋势,必须固定在同一个时间点:
| 测的时刻 | 代表什么 | 怎么用 |
|---|---|---|
| CO₂ 开启之前(清早) | 基线,此时缸里的 CO₂ 最低 | 每天固定在同一个时刻测,作为参照点 |
| 关灯前 30–60 分钟 | 当日峰值,供气够不够看这里 | 两个读数相减得到「pH 落差」 |
| 关灯后 2 小时 | 夜间风险窗口 | 只在怀疑缺氧时测,用来排查溶氧问题 |
用落差代替绝对值还有一个好处:水草泥、沉木释放的有机酸会同时压低两次读数,相减之后就抵消掉了, 剩下的主要是 CO₂ 的变化。换算关系很直接:
| pH 落差 | 峰值 ÷ 基线 | 含义 |
|---|---|---|
| 0.1 | 1.26× | 供气几乎没起作用 |
| 0.3 | 2.0× | 有一点效果,但远远不够 |
| 0.5 | 3.2× | 低光缸可能够用 |
| 0.8 | 6.3× | 多数水草缸的合理区间 |
| 1.0 | 10× | 供碳充足,同时要盯紧鱼 |
注意:这张表给的是倍数,不是 ppm。要换成 ppm 还得知道基线——如果开气前缸里大约是空气平衡的量(几个 ppm 的量级), 那 1.0 的落差差不多就是 20–30 ppm 这个区间;但夜间 CO₂ 会蓄积,基线会被抬高,落差随之变小。 所以把它当相对指标用:它回答的是「今天比昨天多还是少」,而不是「现在正好是几 ppm」。
调 CO₂ 的正确顺序
- 先确认不是缺碳,而是缺光或缺肥——很多人一长藻就加 CO₂,其实可能是光照过强或时间过长。
- 提前开、提前关:CO₂ 在开灯前 1–2 小时开始,关灯前 1–2 小时关闭。因为关灯后水草不再消耗 CO₂,继续供气会累积到危险水平。
- 每次只调一点:调整气泡率后观察 24 小时再动第二次。CO₂ 的调整需要时间稳定,急着加是事故的主要来源。
- 保证水面有轻微扰动:这是气体交换的出口。完全不扰动的水面会让 CO₂ 累积、氧气进不来。
- 夜间一定要关 CO₂,并且可以考虑夜间开气泵(这是最常见的安全做法)。
- KH 太低的缸要小心:KH 低于 2 dKH 时 pH 会被 CO₂ 拉得极低(可能跌破 6.0),对鱼和虾都是冲击,需要先提高 KH。
气泡率怎么调:一次只动一个变量
调 CO₂ 失败的绝大多数案例,不是因为气泡率调错了,而是调整的节奏错了。 下面这个顺序能让每次调整都留下可用的信息:
- 先定开关时间,再调气泡率。顺序反过来的话,你分不清变化是「量的问题」还是「时间的问题」,永远调不明白。
- 数气泡要有依据。用手机秒表数 15 秒的气泡个数再乘 4,得到「每秒几泡」。记下来——不记数字,一周后就只剩感觉了。
- 每次只调一档。从每秒 2 泡调到 2.5 泡就够了,然后观察满 24 小时再动第二次。CO₂ 需要时间在整缸水里达到新的平衡。
- 调整后的第一个晚上要盯着。过量事故绝大多数发生在关灯后的几个小时,而不是白天。
- 每次都记三行:气泡率、开气前的 pH、关灯前的 pH。这三行数字比任何「别人缸里的经验值」都有用。
- 水面扰动只减到「有轻微波纹」为止,不要再往下减。这是 CO₂ 唯一的出口,堵住出口等于拆掉安全阀。
② 一次把气泡率翻倍。在同一个缸上,「不足」到「过量」之间可能只隔两档气泡率, 没有中间地带给你试探。CO₂ 没有「慢慢来」的替代方案,只有「一次一档」。
夜间:最容易出事的时段
关灯之后,水草从「产氧」切换到「耗氧」,而鱼、虾、螺和硝化细菌本来就在耗氧。 这是一天中溶氧最低的时段,通常出现在天亮前的几个小时。此时如果 CO₂ 还在供气,等于雪上加霜。 所以「夜间必须关 CO₂」不是省气的建议,是安全措施。
| 做法 | 为什么 |
|---|---|
| 用两个定时插座分别控制灯和 CO₂ 电磁阀 | 避免「忘记关」。同时可以做到 CO₂ 比灯早开 1–2 小时、早关 1–2 小时 |
| 先停 CO₂,再开气泵 | 气泵会把 CO₂ 赶出去。两者同时开等于一边加一边赶,你只会把气泡率白白调高一档 |
| 气泵定在关灯后 1 小时到天亮 | 覆盖溶氧最低的那段窗口,又不影响白天的浓度 |
| 水面留轻微波纹,别做成完全静止 | 气体交换的出口。有盖板、有玻璃盖的缸尤其要注意,盖板会把交换面积吃掉大半 |
| 密植缸、高水温的缸更保守一点 | 植物越多、水温越高,夜间耗氧越快,留给你的余量越小 |
如果早上起来发现鱼都聚在水面呼吸,先别急着降气泡率:把气泵提前到关灯后立刻开, 看第二天有没有改善。这一条经常就够解决问题,而它比调 CO₂ 更安全。
KH 太低怎么办
KH 低不等于「不能用 CO₂」,而是同样的目标浓度,你要把 pH 压得更低。
这是纯数学的结果——把本页公式反过来算 pH = 7 − log₁₀(目标 ppm ÷ (3 × KH)):
| KH | 达到 25 ppm 需要的 pH | 问题 |
|---|---|---|
| 1 dKH | 6.08 | pH 太低,多数鱼虾受不了;也已经接近会抑制硝化细菌的区间 |
| 2 dKH | 6.38 | pH 偏低;KH 容易被硝化作用消耗掉,基线会往下漂 |
| 4 dKH | 6.68 | 多数水草缸的舒适区 |
| 6 dKH | 6.86 | 安全余量大,但喜欢软水的草会不适应 |
低 KH 的缸有三件事要一起考虑:
- KH 会被硝化作用吃掉。硝化细菌把氨氮转成硝酸盐的过程会产酸、消耗碳酸盐碱度: 每氧化 1 mg/L 氨氮,大约消耗 7 mg/L 碱度(以 CaCO₃ 计),约合 0.4 dKH。 KH 只有 2–3 的缸,几周不测就可能掉到 1,而你还以为它没变。
- 要提 KH 就慢慢提。碳酸氢钠(小苏打)是常见选择。理论换算是 每 100 升水加 1 克小苏打,约提高 0.33 dKH。这是化学计量值, 实际缸里会受磷酸盐缓冲和底床影响,而且它同时会抬高 pH、增加水里的钠—— 所以务必分次加、每次加完测一次,不要一天加到位。
- 更省事的做法是把目标降下来。KH 2 的缸把目标定在 15–20 ppm, pH 大致落在 6.5–6.6;而 KH 1 的缸就算只追 15 ppm,pH 也只有 6.3—— 所以 KH 低到 1 的时候,更该先做的是把 KH 提上去,而不是先加 CO₂。
七个最常见也最贵的错误
| 错误 | 会发生什么 | 怎么改 |
|---|---|---|
| 用比色剂的 pH 读数去套公式 | ±0.2 的读数,算出来的 CO₂ 可能差 1.6 倍,等于在猜 | 换 0.01 分辨率的 pH 笔并定期校准,或者改用落差法只看趋势 |
| 关灯后忘了关 CO₂ | 浓度持续爬升,叠加夜间的低溶氧,鱼在凌晨死亡 | 两个定时插座;或者用「灯亮才通电」的联动插座 |
| 把水面扰动降到最低来「保碳」 | 唯一的出口被堵住,油膜还会进一步妨碍交换 | 保留轻微波纹,宁可多开一点气泡率 |
| 为了压藻类而猛加 CO₂ | 藻类通常是光或肥的问题;CO₂ 过量先死的是鱼 | 先用 灯光计算核对光强和光周期,再谈加碳 |
| 一次同时改光、CO₂、肥 | 出了事无法归因,只能全盘回退,等于白折腾一个月 | 一次只动一个变量,每个变量观察 24 小时以上 |
| 把「水草冒泡」当成 CO₂ 达标的证据 | 换水后叶片上的气泡是溶解气体析出,不是光合作用,会误导你继续加量 | 看 pH 落差、看新叶长势、看鱼的状态,三者一起看 |
| 在低 KH 缸里照抄别人的浓度目标 | 同样的 30 ppm,在 KH 2 的缸里对应 pH 6.30,对鱼虾冲击很大 | 按自己的 KH 反算 pH,或者干脆把目标降到 15–20 ppm |
常见问题
水草缸 CO₂ 多少 ppm 合适?
· 低光缸、阴性草缸(水榕、铁皇冠、莫斯、椒草):15–20 ppm 就够,甚至不加;
· 高光密植缸:25–30 ppm,同时必须配上足够的肥和流量;
· KH 低于 2 的缸:建议把目标降到 15–20 ppm,因为同样的浓度需要把 pH 压得很低;
· 有虾的缸:比纯鱼缸更保守,先从小目标开始。
最后一条最重要:数字区间只是起点,鱼的状态才是终点。
怎么知道 CO₂ 够不够?
① pH 落差——开气前测一次、关灯前测一次。落差小于 0.3 基本等于没起作用; 0.8–1.0 说明供碳比较充足(参考上面的落差换算表)。
② 水草的新叶——缺碳时新叶变小、节间拉长、生长停滞,而且黑毛藻、鹿角藻这类能用碳酸氢盐的藻会先占优势, 所以「突然爆黑毛藻」经常是碳不足的信号,不是碳过量。
③ 鱼的状态——如果鱼在高峰时段还都在中下层正常游动,说明这个量它还受得了。
只靠公式算出的那个 ppm 数字,误差可能有 1.5 倍以上,不能单独作为判断依据。
CO₂ 要一直开吗?
正确做法:开灯前 1–2 小时开,关灯前 1–2 小时关。提前开是为了让浓度在灯亮时已经到位; 提前关是为了在关灯前把多余的排掉。用两个定时插座就能做到,不需要记得。
CO₂ 过量鱼浮头了怎么办?
① 立刻关掉 CO₂(这一步最快,也最有效);
② 增加水面扰动——抬高出水口、开气泵、把水面吹出波纹;
③ 观察 10 分钟,如果鱼开始回到中下层,说明在恢复;
④ 如果鱼已经侧翻、躺底、鳃盖大幅开合,再做一次 30% 换水(新水的溶氧更高,也能稀释 CO₂);
⑤ 事故之后把气泡率降一档,并把停机时间再提前半小时。
不要先去调气泡率,也不要先测 pH——那几分钟可以用来救鱼。
KH 太低能加 CO₂ 吗?
① pH 会被压得很低。KH 2 时 25 ppm 对应 pH 6.38,KH 1 时只有 6.08—— 前者多数鱼还能忍,后者很多鱼虾就开始出问题,而且这个 pH 已经会明显拖慢硝化作用。
② 缓冲弱的真正问题是基线会漂。硝化作用会消耗 KH,水草泥和沉木会释放有机酸, KH 只有 1–2 的缸几周不测就可能掉一档;KH 掉了,同样的 CO₂ 对应的 pH 就更低, 等于你在不知情的情况下又把 pH 往下推了一截。所以低 KH 缸要测的不是 pH 偶尔漂了多少, 而是KH 本身有没有在往下走。
更稳的做法是先把 KH 提到 3–6(见上面「KH 太低怎么办」一节), 或者干脆把目标定在 15–20 ppm,不要追 30。
pH 控制器准吗?
· 水草泥、沉木释放的有机酸会压低 pH,控制器会以为 CO₂ 够了,于是提前关气;
· 它依赖电极,电极会漂移、会老化,需要定期用标准液校准(换探头之前,读数一直是错的);
· 它不会看鱼。如果设定点本身就偏高,它会非常精确地维持一个危险值。
所以控制器的价值是「减少人为失误、防止忘记关」,不是「替你做判断」。 控制器开着的时候,判断标准仍然是鱼的状态——鱼浮头就关气,不要因为设备显示正常就等着。
气泡率怎么调?
① 先把定时器设好(提前开、提前关),这一步不做好,后面所有调整都没有参照;
② 数气泡:手机秒表数 15 秒再 ×4,得到每秒泡数;
③ 每次只调一档,观察满 24 小时再动第二次;
④ 记下「气泡率 + 开气前 pH + 关灯前 pH」三行数据。
另外,调整幅度受水流影响很大:如果水流没把 CO₂ 带到缸底和水草附近,你只能靠加大气泡率来补偿, 结果是水面附近的浓度已经过量,而角落的草还在缺碳。这种情况先解决水流,再谈气泡率, 可以参考 过滤流量计算 看周转次数。
不加 CO₂ 能养水草吗?
· 适合的草:水榕、铁皇冠、莫斯、椒草、水兰、皇冠草、黑木蕨等阴性草;
· 光照:弱到中等,光周期 6–8 小时(不要拉长,拉长只会喂藻);
· 施肥:少施或不施,因为光弱时草消耗不掉,剩下的全归藻类;
· 换水:照常,甚至更勤一点,用来带走累积物。
反过来说,不加碳却开着强光,是最经典的「暴藻配方」—— 藻类在低浓度碳的条件下竞争力比水草强,所以先赢的一定是藻。 另外市面上有「液态碳」类产品,用量仍以产品说明为准,并且要注意它们对虾和硝化细菌也可能有影响。
为什么早上和傍晚测出的 CO₂ 差很多?
· 夜里水草和所有生物都在呼吸,CO₂ 累积,pH 降到一天最低;
· 开灯后水草开始光合作用,大量消耗 CO₂,pH 慢慢回升;
· 停气之后剩余 CO₂ 逸出,pH 继续回到基线。
所以同一个缸早上和傍晚差 0.5–1.0 个 pH 是完全正常的。 把这个规律用起来:固定「开气前」和「关灯前」两个时间点各测一次, 落差就是你的调整依据(见上面「这套公式能信几分」里的落差换算表)。 千万不要拿早上和傍晚两个数字去互相验证,它们本来就不该相等。
水草冒泡就说明 CO₂ 够了吗?
· 很多供碳完全正常的缸并不冒泡——水流大、水温低、草种不同都会让它看不到;
· 换水之后叶片上挂的气泡不是珍珠反应。自来水在管道里是加压溶解气体的, 换进缸里压力释放,气体析出附着在叶片和缸壁上,看起来很像,但它和光合作用没关系。
判断供碳还是回到三个证据:pH 落差、新叶长势、鱼的状态。
CO₂ 与 pH、KH 速查表
这张表是把本页公式反过来算的:pH = 7 − log₁₀(目标 ppm ÷ (3 × KH))。
用法是「我现在的 KH 是 4,想把 CO₂ 稳在 25 ppm 左右,那 pH 大致应该落在 6.68」——
注意它仍然是估算值,请配合上面的误差说明使用。
| KH | 20 ppm 对应 pH | 25 ppm 对应 pH | 30 ppm 对应 pH | 这个 pH 意味着什么 |
|---|---|---|---|---|
| 1 dKH | 6.18 | 6.08 | 6.00 | 太低,多数鱼虾不适,也会抑制硝化作用 |
| 2 dKH | 6.48 | 6.38 | 6.30 | 偏低,建议把目标降到 15–20 ppm |
| 3 dKH | 6.65 | 6.56 | 6.48 | 偏低,要每天盯鱼和 KH |
| 4 dKH | 6.78 | 6.68 | 6.60 | 舒适区,多数水草缸在这里 |
| 6 dKH | 6.95 | 6.86 | 6.78 | 较宽裕 |
| 8 dKH | 7.08 | 6.98 | 6.90 | 宽裕,但 pH 本身偏高 |
| 10 dKH | 7.18 | 7.08 | 7.00 | 宽裕,只适合硬水草 |
从表里能读出一件事:想让 CO₂ 达到同一个浓度,KH 越低,你要把 pH 压得越低。
KH 1 的缸要压到 6.08,KH 4 的缸只需要到 6.68——前者已经落在多数鱼虾不舒服的区间,
后者只是水草缸的日常。
有一点容易搞混,说清楚会更安全:按本页公式,CO₂ 引起的 pH 落差只取决于 CO₂ 变成了几倍
(落差 1.0 永远是 10 倍),和 KH 无关。所以低 KH 缸真正要防的不是「CO₂ 把 pH 摆得更厉害」,而是另外两件事:
① 绝对 pH 更低——同一个 25 ppm,KH 1 要压到 6.08,这个 pH 本身就会拖慢硝化作用;
② 基线会往下漂——碱度被硝化作用和有机酸慢慢吃掉,KH 一掉,
同样的 CO₂ 对应的 pH 就更低,等于你在不知情的情况下又把 pH 往下推了一截。
参考 单位换算 了解 dKH 与其他硬度单位的关系。