home    2017/6/18


仰角もデジタル表示のほうが見やすいので仰角 角度計を作成しました。

使用PICは

ICマイコン PIC18F14K50-I/P
■20ピン USB2.0インターフェース内蔵
■USBインターフェース用256バイトRAM内蔵
■フラッシュ 16kバイト
■データメモリー 768バイト
■I/O 17 ※内1ピン(MCLR)は、インプット専用
ADコンバーターの入力インピーダンスが低いのでLM324 OPAMPを使って入力インピーダンスを上げました。
自作CNCで基盤切削 これで2枚分です。最近は同じものを2枚作るようにしています。時間もほとんだ変わらない。
いつ作ってもCNCの位置精度にはほれぼれします。穴がピタッと真ん中です。
/* 
* File: newmain.c Author: A
*PIC18F14K50 Created on 2013/03/28, 12:23
*/
#include <stdio.h>
#include <stdlib.h>
#include <xc.h>
#pragma config USBDIV = OFF //;USB CLOCK SELECTION BIT
#pragma config MCLRE = OFF //;MCLR PIN ENABLE BIT
#pragma config IESO = OFF //;Internal/External Oscillator Switchover bit
#pragma config FCMEN = OFF //;Fail-Safe Clock Monitor Enable bit
#pragma config FOSC = IRC //;OSCILLATOR SELECTION BITS
#pragma config PWRTEN = ON //;Power-up Timer Enable bit
#pragma config PLLEN = OFF //;X PLL ENABLE BIT(OSCILLATOR MULTIPLIED BY 4)
#pragma config PCLKEN = OFF //;PRIMARY CLOCK ENABLE BIT
#pragma config BOREN = OFF //;Brown-out Reset Enable bits
#pragma config LVP = OFF //;Single-Supply ICSP Enable bit
#pragma config CPUDIV=NOCLKDIV //;CPU SYSTEM CLOCK SELECTION BIT
#pragma config CP0 = OFF //;Code Protection bit
#pragma config CP1 = OFF //;Code Protection bit
#pragma config CPD = OFF //;Data EEPROM Code Protection bit
#pragma config CPB = OFF //;Boot Block Code Protection bit
#pragma config WDTEN = OFF //;Watchdog Timer Enable bit
#pragma config HFOFST = OFF,STVREN = OFF,BBSIZ = OFF,XINST = OFF
#pragma config EBTR0 = OFF,EBTR1 = OFF,EBTRB = OFF
#define _XTAL_FREQ 8000000
//const unsigned char seg_data[16] = {0x40, 0x79, 0x24, 0x30, 0x19, 0x12, 0x02, 0x58, 0x00, 0x18,0x08, 0x03, 0x27, 0x21, 0x06, 0x0E };
const unsigned char seg_data[16] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x27, 0x7F, 0x67,0x77, 0x7C, 0x58, 0x5E, 0x79, 0x71 };
const unsigned char scan[4] = {0b00010000,0b00100000,0b01000000,0b10000000};
//const unsigned char scan[4] = { 0b11101111,0b11011111,0b10111111,0b01111111};
unsigned char digit_no; // 表示走査桁指定
unsigned char dsp_buf[4]={0,0,0,0}; // 表示バッファー
int dsp_cnt; // 表示用カウント
void main()
{
OSCCON = 0b01101010 ; //8MHz 選択
TRISA = 0b11111111;
TRISB = 0b00000000;
TRISC = 0b00000000;
PORTA = 0x00; // ポート初期化。
PORTB = 0b11111111; //全桁消灯
PORTC = 0b11111111; // ポート初期化。
digit_no = 0; // 走査桁NoをLSDに初期化
dsp_cnt = 0; // 表示カウンタを初期化
signed int temp1,temp2,temp3; // 10進数変換に使用
int i; // 10進数変換に使用
int n; // 10進数変換に使用
ADCON1 = 0b00001000; //PVCFG 10 NVCFG 00
ADCON2 = 0b10111111; //右ADFM1,ACCQT111ADCS111(FRC)
REFCON0= 0b10100000; //FVR 2.048V
ANSELH = 0b00000000 ; //ana off
ANSEL = 0b00001000 ; //RA4アナログ ANSELH=0;
ADCON0 = 0b00001111; //RA4,ADON 変換開始


while(1){
while(GODONE){ } // A/D変換済みなら
dsp_cnt =ADRESL+(ADRESH*256) ; //
GODONE = 1; //次の A/D変換開始
//temp1 = dsp_cnt; // dsp_cntを4桁の10進数に変換
temp1=dsp_cnt<<1; //2046フルスケールニする
temp1=temp1-100 ;//基礎電圧減算
temp1=temp1-900; //90度の時0表示
temp3=0;
while (temp1<0){
temp1++;
temp3++;
} //-数値の変換
if (temp1==0) temp1=temp3;//-の処理
n = 1000; //1000の位
for(i = 3; i >= 0; i--){
temp2 = temp1 / n; // 千、百、十、一の個数を計算
dsp_buf[i] = (unsigned char)temp2; // 表示バッファーに代入
temp1 = temp1 % n; // 余りを求める
n /= 10;
}
__delay_ms(5) ;
PORTB = 0b11111111; //全桁消灯
PORTC = seg_data[dsp_buf[digit_no]] ;//7セグDATA出力
PORTB = (scan[digit_no]) ; // 走査ビット出力
if(++digit_no == 4){digit_no = 0;} // 表示桁を1桁目に設定
}
}
 

 

部品はほとんどありません。

水平の時に0を表示するようにしました。22.4度の表示中です。

下を向けると下向きの角度を表示します。

これで方位角度と仰角度すべてがデジタル表示になりました。

方位の設定には太陽のサンノイズで調整しました。アンテナを太陽に向けてサンノイズ最大にします。その時の実際の太陽方向と表示器を合わせました。

5度くらいの誤差がありました。 

方位204度表示中

home    2013/10/20


ケンプロ KR-500 仰角ローテーターです。 ジャンク本体のみで入手 端子カバーもありません 10000 錆もほとんどなくきれいです。

https://www.google.co.jp/search?q=KR500%E3%80%80%E3%82%B1%E3%83%B3%E3%83%97%E3%83%AD&espv=210&es_sm=122&tbm=isch&tbo=u&source=univ&sa=X&ei=yihjUsfON8SciAfKoYCYDA&ved=0CDsQsAQ&biw=1232&bih=881&dpr=1

取扱説明書 KR-500

現在YAESUが引き継いで販売を行っていますが、現在の端子は防水8Pコネクターになっています。端子カバーを注文してみましたが、欠品とのことで入手できず。

コントローラーを自作しました。表示は0度水平から90度上向きまでです。

最初コンデンサーは無極性の25V100μFの小型電解コンデンサーを使用しましたが、実験中に煙を吹いてパンクしました。

現在は50V220μFの電解コンデンサーを+-を逆にして直列にして使用しています。どうなるか分かりませんが暫く使用してみます。

モーターが唸る音はするのですが、動きません。開けようとしましたが、ねじが固くて回りません。写真のハンマードライバーを使用して金づちで強引にたたいて開けました。アルミケースが割れるほどたたきました。

内部はきれいです。ほとんど使用感がありません。長年の放置でグリスが固まりロックしていたようです。固くて分解後手で直接回しましたが、回りませんでした。

ベアリングを灯油で洗浄。スムースに動くようになりました。ケース下部に水抜き用の小穴があります。

グリスたっぷり、モーターにも注油して、ガンガン動くようになりました。これで10年位はOKでしょう!

モーターは通電すると中の回転部分が飛び出しブレーキを解除するようになっています。その部分に注油するとブレーキが弱くなります。

一部ギヤにはプラスチックが使われています。組み立て時には角度表示用のVRの位置と軸の位置を合わせて組み立ててください。

江本のLB103と合体させてどの方向にも向けれるようにしました。ネーム版には保護フィルムが付いたままです。

皆さんは北や南に方位を合わせる時は如何されていますか?googleの地図で自宅から北方向の遠方の建物をめがけてロックしていますが、設定のたびに数度の誤差があります。水平は水準器で水平に合わせています。

WSJTで月の方向が解ります。雪が降る前に工事をしないと半年先までお預けになります。

これでEME(月面反射通信)に挑戦してみます。?