好的,這實際上需要一些有關這些小型計算機內部工作方式的知識。自行車計算機需要非常低的功率,因此最簡單的方法就是使其變得非常簡單。普通計算機可以使用非整數。整數是1,2,3,4等,非整數表示例如1 / 2、0.5762或pi。計算機使用所謂的浮點數表示非整數。
但是,與整數相比,這些小型計算機很難使用浮點數。所以,他們沒有!它們僅使用整數來進行所有必要的計算,並且幾乎沒有例外,它們都限於8位整數。 8位整數可以存儲0-255的值。因此,任何計算都將(a)不比整數更精確(例如:將8除以5將得到1而不是1.6,因為您不能表示小數點後的數字),並且(b)不能超過0的範圍-255。
更糟糕的是:大多數自行車計算機甚至無法進行數學運算。好吧,它們通常可以相加和相乘,但不能相除或相減。它們真的是超級裸露的東西,因為它們必須在單個鈕扣電池中的果汁中存活幾年。
那麼,這如何影響距離,速度以及最終平均速度的計算?好的,一台自行車計算機只有2個輸入:一個非常精確的計時器(通常每秒輸出1024至32768個脈衝)和一個來自車輪上磁鐵的脈衝輸入。它還知道您的車輪圓周多長。因此,為了計算您的當前速度,它會執行以下操作:
- 等待車輪上的脈衝
- 啟動計時器
- 下一個車輪脈衝到來時,停止計時器
- 將您的車輪周長除以時間,並使用查找表將其轉換為人類可讀的內容。
因此,假設計時器運行在1024Hz,並且您的自行車車輪以每秒大約5轉的速度旋轉(36 km / h或22mph)。這意味著您將計算地板(1024/5)= 204每轉一圈的計時器滴答數。在小型處理器中,是一個查找表,該表將這204個滴答聲與您的特定車輪尺寸(您在其中編程)相關聯,然後查找需要在屏幕上顯示的速度。它實際上並沒有計算出來,因為該處理器很難做到這一點。此外,該表僅需是一對車輪尺寸的幾十個或100個不同的時間值。例如5x100的表格,從計算機角度來說很小。
距離很容易計算:只需將輪周長乘以轉數即可。然後,使用另一個查找表將其與可顯示的內容相關聯。這也只需要一個小的查詢表。
但是,平均速度並不是可以放入合理大小的查詢表中的。可能發生的跳閘距離和跳閘時間值太多。因此,這些計算機必須以某種方式作弊:要么需要使用非常有限的數學功能,要么需要四捨五入或尋找最接近的平均值。這正是您的自行車計算機正在做的事情。
尤其是在當今,有更先進的自行車計算機。使用較舊的設計時,您確實可以看到此操作的查詢表性質:例如,它可以顯示22.3 km / h和22.5,但不顯示22.4。為什麼?它不在查找表中。無論您多麼努力地以22.4 km / h的速度精確行駛,它都不會真正顯示該值。同樣,較舊的設計將只允許您輸入輪胎的英寸尺寸,而不是實際的精確周長(mm)。
如今,實際上有一些自行車計算機可以處理更多的“複雜”數學運算,並使用更好的數字表示形式(16位整數或浮點數)來更好地估算速度和平均值。