Open changxinchang opened 2 months ago
私はESP32プログラミングは現在は行っておらず、Arduino core ESP32も当時よりかなりバージョンアップしたので、この古いプログラムは動かない場合があることを予めご了承ください。
まず、電波時計合わせはLEDCライブラリを使用して、正確に68.5kHzを出さねばなりません。 以下の記事を参照してください。 [https://www.mgo-tec.com/blog-entry-ledc-pwm-arduino-esp32.html]
そして、この記事内のプログラムでLEDC_BASE_FREQ
を68500.0
にしてみて、オシロスコープで計測して、ちゃんと68.5kHz出ているか確認してみてください。
ただし、16bit以下では68500付近に近似できない可能性があります。CPU周波数が80MHzのため、丁度良い数値に割り切れないためです。
もし、オシロスコープで68.5kHz出せなかったら、ESP32でBPC電波合わせは諦めた方が良いと思います。
ご返事ありがとうございます。 ESP32は68.5khzの方形波信号を生成できますが、68.5khzのキャリア信号に時間情報を重畳することはできません。
ESP32で68.5kHzの方形波が出せれば、後は以下の記事群をあさって読んでいただければ、受信できそうな気がします。 [https://www.mgo-tec.com/tag/jjy]
と言っても、中国のBPCは全くの無知なので何とも言えませんが、日本のJJYと同じ仕組みならば充分可能かと思います。 プログラミングができても、受信アンテナ回路設計が難しいかも知れませんね。
中国のBPCはどうやらJJYのような振幅変調ではなく、位相変調のようですね。 その方式は私はやったことが無いので、残念ながらこれ以上アドバイスできません。
ご協力ありがとうございます。BPC電波の資料が少なくて、今はゆっくりと修正を模索するしかありません。
こんにちは。申し訳ありませんが、このような方法でメッセージをお送りします。 あなたのESP32 JJY電波製作を見て、あなたのチュートリアルに基づいてBPC電波に改造する予定です。 JJY電波の周波数、エンコード方式とBPC電波が全く異なるため、何度も修正しても成功しない。 ご協力をお願いします。 BPC電波の周波数は68.5kHzで、20sごとに完全な時間情報を取得し、1sごとに1つのデータを受信します。データ形式は00012000122023111201です。 0は100msパルス幅、1は200msパルス幅、2は300msパルス幅、3は400msパルス幅を表します。 取得した時間データを68.5kHzキャリアで送信する方法を教えてください。 どうもありがとうございます