JH7UBCブログ

アマチュア無線 電子工作 家庭菜園など趣味のブログです

北帰行

2024-03-25 08:24:07 | 夢の森から
 今朝、ゴミ出しに外に出ると「クワ クワ クワ」とにぎやかな声が空から聞こえてきました。白鳥が鳴きながら編隊飛行をしているのです。

 いわゆる白鳥の「北帰行」。白鳥が北の国に向かって飛んでいきます。約20羽ほどが「く」の字型を作って、かなりの速さで正確に北を目指して飛んでいきました。少し眺めている間に4グループ見ることができました。

 昨日、会津若松市に向かう途中、湯川村あたりで田んぼで餌を食べる白鳥を多数目撃しました。あの白鳥たちなのかな、などと想像しました。これから長い長い旅ですね。無事に到着するよう願いました。

 今年の2月は、とても暖かく、2月中旬ころに白鳥が鳴きながら飛行する姿を見かけました。もう帰るのかな、北の国はまだ冬だよ。ちょっと早いんじゃない。彼らが帰ったかどうかは分かりません。飛行訓練をしていただけかもしれません。

 例年なら3月中旬から下旬が渡り鳥の移動の季節だと思います。雪が解け始めた田んぼに「タゲリ」などの渡り鳥が羽を休めているのをこの季節によく見かけました。でも、今年は雪の量、気温ともちょっと異常です。これも地球温暖化の影響でしょうかね。

 白鳥も北に帰り、いよいよ春ですね。それにしても今年はいつまでも寒い。

今年もクロッカスが咲きました

2024-03-11 21:31:20 | 夢の森から
 今日は、東日本大震災から13年目の3月11日です。

 このところ、毎日雪が降り寒い日が続いています。そういえば、震災の年もいつまでも寒く、あんなに春が待ち遠しかったことはありませんでした。

 今日、窓から畑の方を見ると黄色い小さな花が咲き始めたのが見えました。「あ! クロッカスだ」急いでカメラを持って写真を撮ってきました。昨年より4日早い開花です。


 畑の片隅で黄色いクロッカスが咲いていました。この小さな花が春一番に咲き、我々の心に春の訪れのうれしさを与えてくれます。


 シャックの軒下には、まだ雪が残っています。でも道路や駐車場の雪はすぐ消えるようになってきました。いよいよ春ですね。



TOP BAND コンテストの結果発表

2024-03-08 08:52:22 | アマチュア無線
 2月10日(土)21:00~11日(日)21:00に開催された第40回KCJ TOP BANDコンテストの結果が発表されました。結果はこちら

 シングルオペ部門201局、QRP部門15局の参加局と今年も賑やかでした。
 当局JH7UBCは、シングルオペ部門で28位でした。昨年に比べてスコアはアップしたのですが、順位はダウンしました。参加局が多かったのと上位が激戦でしたね。

 昨日、正式結果と福島県1位の賞状がメールで届きました。
 ありがとうございました。



Arduino UNO R4 (WiFi) OPAMP テスト

2024-03-06 13:04:29 | Arduino
 Arduino UNO R4(WiFi)は、オペアンプを内蔵していますので、その使い方の勉強をします。「それやってみよう」というサイトのこちらのページとArduino チュートリアルのこちらのページを参照しました。

 Arduino UNO R4(WiFi)は、4個のオペアンプを持っていますが、実際にすぐ使えるのは1つ(OPAMP0)で、入出力は、アナログピンに次のように割り当てられています。
OPAMP0 input+ = A1
OPAMP0 input- = A2
OPAMP0 output = A3
 このオペアンプを使って、ボルテージフォロアと非反転増幅のテストをします。
 

 まず、ボルテージフォロアのテストをします。
 DACの出力(A0)をOPAMP INPUT+に接続します。OPAMP output(A3)をOPAMP input-(A2)に接続します。DACにオペアンプを接続することにより、低い出力インピーダンスで安定して電圧を取り出すことができます。

 スケッチです。
-------------------------------------------
#include <OPAMP.h>

void setup() {
OPAMP.begin(OPAMP_SPEED_LOWSPEED);
analogWriteResolution(12);
analogWrite(DAC,1023);
}

void loop() {
}
-------------------------------------------
 このスケッチでDACから1.19Vが出力されます。



 ボルテージフォロアを通した電圧です。1.19Vと変わりません。


 次に、オぺアンプの配線を非反転増幅に変えて、テストします。
 R1=10kΩ、R2=20kΩとして、増幅率3倍の非反転増幅器としてオペアンプの出力電圧を測定してみました。3倍の電圧が出力されました。OKです。


 以前、DACのテストで行った鋸歯状波をオペアンプのボルテージフォロアを通して出力させてみました。
 スケッチです。OPAMPのスピードはHIGHとしました。
 ちなみに、帯域幅は、LOWSPEEDのとき低電力で40KHzまで、HIGHSPEEDは1.7MHzまで
-----------------------------------------------------
#include <OPAMP.h>

void setup() {
OPAMP.begin(OPAMP_SPEED_HIGHSPEED);
analogWriteResolution(10);
}

void loop() {
for(int i=0;i<1024;i++ ){
analogWrite(DAC,i);
}
}
-----------------------------------------------------
 観測されたオペアンプの出力波形です。
 オペアンプがないときに比べギザギザが少なくなっています。



Arduino UNO R4 (WiFi) MAX7219 8X7segLEDテスト(再)

2024-03-04 19:23:20 | Arduino
 前の記事でArduino UNO R4(WiFi)でのSPIのテストをしました。それを元に以前Arduino UNO R3でMAX7219 8X7segLEDのテストに使ったスケッチを書き替えてみました。

 配線図です。



 スケッチです。元記事はこちら
--------------------------------------------------------
/*
* Arduino UNO R4 WiFi MAX2719 8X7segLED test
* 2024.03.04
* JH7UBC Keiji Hata
*/

#include <SPI.h>
SPISettings spi_setting(1000000, MSBFIRST, SPI_MODE3);
#define CS_PIN 10
//CLK PIN13
//DIN PIN11

// MAX7219 Register Address
#define MAX7219_DECODE_MODE 0x09
#define MAX7219_INTENSITY 0x0a
#define MAX7219_SCAN_LIMIT 0x0b
#define MAX7219_SHUTDOWN 0x0C
#define MAX7219_DISPLAY_TEST 0x0f

void maxTransfer(uint8_t address, uint8_t value) {
digitalWrite(CS_PIN, LOW); // Start transfer.
SPI.transfer(address); // Send address.
SPI.transfer(value); // Send the value.
digitalWrite(CS_PIN, HIGH); // Finish transfer.
}

void MAX7219_INI(){
maxTransfer(MAX7219_DECODE_MODE, 0xff);// Code B decode for digits 7–0
maxTransfer(MAX7219_INTENSITY, 0x03); // Use lowest intensity.
maxTransfer(MAX7219_SCAN_LIMIT, 0x07);// Display digits 01234567
maxTransfer(MAX7219_SHUTDOWN, 0x01);// Normal Operation
maxTransfer(MAX7219_DISPLAY_TEST, 0x00);// Normal Operation
}

void Clear_Display(){
for(uint8_t i=1;i<=8;i++){
maxTransfer(i,0x0f);
}
}

//x=表示開始digit(digit7-0)、nl=数値の最大長、num=表示する数値
//数値は右詰めで表示する
void printnum(uint8_t x,uint8_t nl,uint16_t num){
String s=String(num); //数値を文字列に変換
uint8_t ln=s.length();//文字列の長さ
int ix=ln-nl; //index初期値
uint8_t sx=x+1; //表示開始アドレス

for(uint8_t i=0;i<nl;i++){
int index=ix+i;
if(index<0){
maxTransfer(sx-i,0x0f);
}else{
String c=s.substring(index,index+1);//indexの文字を1個取り出す
uint8_t m = c.toInt();//文字列を数値に変換
maxTransfer(sx-i,m);
}
}
}

void setup() {
pinMode(CS_PIN, OUTPUT); // CS_Pin is OUTPUT Mode
digitalWrite(CS_PIN, HIGH); // CS=HIGH
SPI.begin(); // Start SPI
SPI.beginTransaction(spi_setting);
MAX7219_INI();
Clear_Display();
}

void loop() {
for(uint16_t i=0;i<10000;i++){
printnum(5,4,i);
delay(500);
}
}
--------------------------------------------------------

  数字がカウントアップされて表示されました。