JH7UBCブログ

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

イヌツゲの雪囲い

2023-11-18 18:20:34 | 日記
 午前中は良い天気だったのですが、午後になり急に強風を伴った雨になりました。いわゆる時雨です。

 そんな中、庭のイヌツゲの雪囲いをしました。作業の途中で縄がなくなりコメリまで買いに走ったりしたのですが、何とか7本のイヌツゲの雪囲いを終わりました。



 出来栄えはといえば、ちょっと縄の張りがゆるいところもありますが、まあまあかな。

 中央の一番大きいイヌツゲを囲った棒が少し細いので、雪の重みで折れるかもしれません。

 ともかく、これでいつ雪が降ってもだいじょーぶ。

11月19日追記
 11月18日、夜遅くなって雨が雪に変わり、辺りは真っ白になりました。初雪です。雪囲いセーフでした。
 でも、朝起きてみると雪はほとんど融けていました。

雪囲い

2023-11-14 07:36:39 | 日記
 今季一番の寒気が南下してきて、近くの山が冠雪しました。里にも間もなく雪が降りそうです。


 そろそろ冬の準備をはじめました。タイヤは既に冬タイヤに交換しました。そして、昨日はシャックの雪囲いをしました。


 シャックは片屋根なので、北側に落ちた雪は軒下に積もり、雪が多いときは軒についてしまうほどです。

 周りの家々も既に雪囲いを終え、雪を迎える準備ができました。

 長い冬の始まりです。

PIC18F14K50 ICSPのテスト

2023-11-10 12:07:21 | PIC18F14K50
 PIC18F14K50の勉強を進めていく上で、プログラムを書き込んで動作テストを行う必要があります。PICKit3でプログラムを書き込む際に、回路(ブレッドボード)からその都度PICを取り外すのは面倒です。そこで、ICSPでプログラムを書き込むテストを行いました。

 ICSP用の回路図です。RC2の接続したLEDを点滅させてみます。左側のLEDは電源確認用です。


 MCCの設定はクロックとPinの設定だけで、次のとおりです。



 プログラムです。RC2のLEDを0.5秒ごとに点滅させます。
-----------------------------------------------------
#include "mcc_generated_files/mcc.h"
#define LED LATC2

void main(void)
{
     // Initialize the device
     SYSTEM_Initialize();

     while (1)
    {
         LED = 1;
         __delay_ms(500);
         LED = 0;
         __delay_ms(500);
    }
}
-----------------------------------------------------

 プログラムの書き込み時、電源を回路上から供給するのか、PICkit3から供給するするのかを決めるのは、FileからProject Propertiesを開き


 PICkit3のPowerで設定します。PICKit3から供給する場合は、「Power target circuit from PICkit3」にチェックを入れます。

 回路から電源(電池2本 3V)を供給する場合とPICkit3から供給する場合をテストしました。どちらでもプログラムを書き込むことができました。

 回路から電源を供給する場合は、PICkit3をICSPから外すとプログラムがスタートします。PICkit3から電源を供給する場合は、PICkit3を外してから回路の電源を入れるとプログラムがスタートします。

 ブレッドボードです。PICkit3からフラットケーブルでボードに接続しています。


 これから様々なテストをしますが、このICSP回路を利用して行いたいと思います。

PIC18F14K50の勉強を始めます。 まずはLチカから

2023-11-07 14:10:54 | PIC18F14K50
 PICをUSB接続でパソコンに接続して使いたいと思い、昨年3種類のPICを購入しました。
 PIC16F1455
 PIC18F14K50
 PIC18F27J53
の3種類です。

 PIC16F1455については、一応USBが使えるところまでできましたので、続いてPIC18F14K50の勉強に進むことにします。
 ただ、PIC18シリーズのPICを使うのは初めてですので、ゆっくりとしっかり勉強していくことにします。

 環境は、
 MPLAB X ver6.15
 XC8 ver2.45
 MCC ver5.3.7
です。

 まず、PIC16シリーズとPIC18シリーズの違いを確認しておきます。
 プログラムワードは、PIC16が14ビットですが、PIC18は16ビットに拡大されています。更にPIC18は多重割り込みが可能です。また、PIC18のKシリーズは低消費電力、低価格、高機能などの特徴があります。
 コンパイラは、使い慣れたXC8を使いますが、PIC18は、C18コンパイラも使えます。

 本来、PICはアーキテクチャを十分に理解してプログラミングすべきですが、XC8とMCCを使ってプログラミングする場合は、かなりアバウトでもプログラミングできるところが、我々素人にはありがたいです。

 では、ターゲットPICのPIC18F14K50のスペックを見てみます。今回使うのは20pinのDIPパッケージ(秋月電子で400円)でピンアサインは次のとおりです。


 プログラムメモリFlash16k byte
 データメモリ SRAM 768 byte
        EEPROM 256 byte
 電源電圧 1.8~5.5V
 クロック最大48MHz
 GPIO 15
 10bit A/D 11ch
 ECCP(PWM) 1
 MSSP SPI Yes
            I2C Yes
 EUSART 1ch
 Comperator 2
 Timer(8/16bit) 1/3
 USB Yes
です。

 さっそく、最初の1歩Lチカ(LED点滅)をやってみました。回路図です。
 RC0に接続したLEDを点滅させてみます。


 まず、MPLAB Xでプロジェクトを作成して、次にMCCの設定をします。
 今回は、クロックとI/Oの設定だけを次のように設定しました。


 設定が終わったらGenerateして、main.cを次のようにしました。
-----------------------------------------------------------------
#include "mcc_generated_files/mcc.h"
#define LED LATC0

void main(void)
{
     // Initialize the device
     SYSTEM_Initialize();

     while (1)
    {
         LED = 1;
         __delay_ms(1000);
         LED = 0;
         __delay_ms(1000);
    }
}
-----------------------------------------------------------------------
 PICへのプログラム書き込みは、下の写真のようにPICKit3と付属のゼロプレッシャーソケットを使いました。


 ブレッドボードです。電源は乾電池2本(3V)です。無事1秒ごとに点滅しました。