[Bug Fix] 中華Arduino Unoのバグはパターン間違い

ChinaUno3 ChinaUno4 2016-08-14結局問題は、パターンが間違っていたということだった。赤丸の箇所がアースにつながっているのが正しいのだが・・

 

 

 

 

力技で、ワイヤリングをしてみた。あと、同じ基板が、まだあったようだ。トホホ

 

 

 

 

切れていたのは、電源判定の分圧回路のアース側だった。

 

image結果は正しく読めるようになりました。

[挙動不審の中華Arduino] Faboの温度センサーが正しく読めないわけじゃなかった

imageFaboの動作確認をとっていたのだが、付け替えたはずの中華Arduino UNOでは温度センサーが正しく読めていないことが判明した。

左の写真をみてもらおう。
サークル時計の中央の表示はDS18B20による値で正しいと思われるのだが、後方の拡大液晶表示は更に9度も高い温度が表示されている。

何かが間違っている。

 

 

image古いほうのイタリア製のArduino UNOでの測定結果は、後方のモニタも同様に27度と表示している。

ちなみに、このセンサーは電圧で温度を出力するLM61CIZは2.7Vで動作する温度センサーで-30度から100度の範囲を300mVから1600mVまでのアナログ電圧で通知してくれる優れものなのだが・・・。

どうやら怪しいのは中華のArduino UNO互換機だ。電源電圧が5Vかかっていないような雰囲気だ。ADの最大計測値は電源電圧だから低いと仮定した場合には、読み取り値が大きくなり結果として温度が高いと表示してしまったようだ。

手抜きをして、サンプルコードをそのまま入れて、中華製Arduino UNOの素性を明らかにしていなかったことが事態を引き起こしたということだ。

ちなみに手元にあったArduino Leonardoでも正しい値を表示した。

電源電圧を測定してみると若干中華Arduinoの電圧が低いのだ。ちなみに動作条件はどちらもUSBでPCと接続してIDEでサンプルを書き込みシリアルモニタで確認しているわけだ。

回路図から追ってみると、どうも接続していないはずのDC入力があるという判断をしてFETがカットオフされてUSBからの電源供給がFETに入っているダイオードの順方向降下が起きているようだ。ADCが動作するのは、その最大電圧に対しての計測なので、温度が高く表示されてしまったということのようだ。

さて、対策(補修)はどこだろう