トピック関連記事
48時間以内の記事は New Mark で表示されます
謹賀新年
皆さん明けましておめでとうございます。

今日は、超久しぶりに、元朝参りに行きました。
区長ってご存知ですか?
都会では死語かも。
実は、今年度、区長になりまして、地域住民と行政のパイプ役を担っています。

元朝参りも、区長の仕事の一つです。
神社でお札を預かってきて、希望者に配ってきました。
勿論、希望者はお金を払っています。


話題替わって、昨年末からのAD変換ですが、
以下のように、ひと工夫をして、
ボリュームの開き具合に応じて、低中高の3段階に分けて、
点滅速度に変化を付けました。
結構楽しんでいます。

今年も、どうぞ、宜しくお願いします。

unsigned int adconv() {
GO_nDONE = 1; // アナログ値読取り開始指示
while (GO_nDONE); // 読取り完了まで待つ
//3段階動作表示用LED点滅
if (RB7 = 1 && ADRES < 500) {
LATA1 = LATA0 = 1;
__delay_ms(50);
LATA1 = LATA0 = 0;
__delay_ms(20);
}
else if (RB7 = 1 && 500 <= ADRES && ADRES < 800) {
LATA1 = LATA0 = 1;
__delay_ms(25);
LATA1 = LATA0 = 0;
__delay_ms(10);
}
else if (RB7 = 1 && 800 <= ADRES) {
LATA1 = LATA0 = 1;
__delay_ms(10);
LATA1 = LATA0 = 0;
__delay_ms(5);
} else {
LATA1 = LATA0 = 0;
}
return ADRES;
TR 2019/01/01(Tue) 20:49 No.1412
Re: 謹賀新年
あけましておめでとう御座います。
今年もよろしくお願いいたします。

元朝参りも、ずーっとしていませんね。
それどころか、ここ数年は初詣もしていません。
寒いのは苦手なんです。それに大酒のみなので。
昨日はタクシーで実家に行きました。


> if (RB7 = 1 && ADRES < 500) {
文法的に間違いでは無いのでエラーにはなりませんけど、多分思っている事とは違います。
本当は「==」だと思います。

で、その文の意味は
RB7=1
の部分はRB7に1が代入されて評価されます。
1で代入なので常に真です。
なので、そのままの意味なら

RB7=1;
if(ADRES < 500) {
と同等の意味になります。
※そこ部分をRB7=0とした場合は常にRB7は偽なので、if文も常に偽になります。

あと、もう一つは、この位の点滅間隔だと「点滅の速さ」では無く「明るさ」の違いになります。
でも、3つの点滅パターンは点灯:消灯の割合は50:20(71%)、25:10(71%)、10:5(67%)と、どれも同じ程度の明るさです。、
「チラ付き具合の区別」という感じです。
点滅間隔での判断なら、全点灯/0.6s毎の切り替え/0.2秒毎のきりかえ、のような3段階が良いと思います。
明るさで判断したいなら、全点灯/40%/10%等のduty比にした方が良いです。そして、チラつきがを感じないような
100Hz程度以上の周波数にした方が良いです。
※でも識別としてはどうしても点滅間隔には敵いません。明るさは変化して比較対象が無いと難しいです。
プログラムのデバッグとしても、明確に、「どこの部分で止まっている」かを識別できるようにした方が良いです。


void adconv(void) {//戻り値が必要でないなら
GO_nDONE = 1;
while (GO_nDONE);

if (RB7 == 1) { //RB7がHIGH
if (ADRES < 500) {
LATA1 = LATA0 = 1;
} else if (ADRES < 800) {
LATA1 = LATA0 = 1;
__delay_ms(600);
LATA1 = LATA0 = 0;
__delay_ms(600);
} else {
LATA1 = LATA0 = 1;
__delay_ms(200);
LATA1 = LATA0 = 0;
__delay_ms(200);
}
} else {//RB7がLOW
LATA1 = LATA0 = 0;
}
}
猛牛ロック   2019/01/02(Wed) 15:39 No.1413
Re: 謹賀新年
猛牛ロックさん、おめでとうございます。

お〜!
大酒のみだったんですか。
自分は、ほどほどの程度です。 でも、晩酌はやっています、習慣になています。


>> if (RB7 = 1 && ADRES < 500) {
文法的に間違いでは無いのでエラーにはなりませんけど、多分思っている事とは違います。
本当は「==」だと思います。


これ、掲示板に書き込んだ後に気づきまして、速攻で治しました(笑い。
この件も、何度も言われていましたので、気付きました。


>void adconv(void) {//戻り値が必要でないなら

本当にそうでした。
何故か、PWMが動作しなくなりました。

それと、点滅を加えたら、動作が緩慢になりました。
32MHzにしないと駄目かもしれません。
テスト中の話ですが、気のせいか、PICがほんのりと暖かなったような気がします。

追記
自作の基板は、プリントですか?

それと、はんだ付けの際、ピンセットを使いますか?
https://www.amazon.co.jp/dp/B07C4MPJSW/?coliid=I38WVPZXS6XWWP&colid=1PYQ17QDJ13GR&psc=0&ref_=lv_ov_lig_dp_it
TR   2019/01/02(Wed) 19:53 No.1414
Re: 謹賀新年
> 何故か、PWMが動作しなくなりました。
> それと、点滅を加えたら、動作が緩慢になりました。
何ででしょうね?多分、動作クロックのせいではないと思います。

> PICがほんのりと暖かなったような気がします。
これが関連しているのかも知れません。暖かくなるというのはそれだけPICの出力があると言う事です。
全体のプログラムや回路が解らないのですけど、もしかしたら出力が多すぎるのかも知れません。
※大きく見れば、PICも1つの抵抗のような物です。PICの内部を流れる電流の量によって、PICが発熱します。


今回は片面の生基板を使っています。大抵は?CNCで削っています。
添付図はその図面です。
(大小1つずつでよかったのですけど、それだけ同時に作りました。)

手配線は苦手です。また、ケースなどに綺麗に収めるのも苦手です。


そのピンセットは良さそうですね。セラミックですか。
かっこいいのに安くあるんですね。
はんだ付けの時にはちょっとだけ使いますね。でも普段使っているステンレスのやつです。

基板のはんだ付けは、左手に半田、右手にコテなので、前後の作業ですね。
あっ、SMDの抵抗とかはピンセットも使います。
でも、はんだ付けも素人レベルですよ。
一番重要なのは顕微鏡だと思います。

猛牛ロック   2019/01/02(Wed) 23:52 No.1415
Re: 謹賀新年
TRさん,猛牛ロックさん,新年おめでとうございます。

今年もよろしくお願いいたします。

=====================
TRさん,私も何年構えに,やったことあります。

私の地区は,いくつかの組が集まって,藩が組織され,

藩がいくつか集まって,町の組織になり,その上に市の組織があります。

私がやったのは一番下の組の組長です。

まあ,仕事と言えば町内会費を集めることと,回覧板を

まとめて,回覧できるようにする手はずぐらいです。

私も,例年通り元旦参りいきましたよ。


**************************

猛牛ロックさん,

>今回は片面の生基板を使っています。大抵は?CNCで削っています。
>添付図はその図面です。
(大小1つずつでよかったのですけど、それだけ同時に作りました。)

いいですねえ。CNCで基盤削れれば,配線のミスもすくなくなりますよね。

今年は,挑戦してみるかなあ。
mabo   2019/01/03(Thu) 21:08 No.1416
Re: 謹賀新年
配線を描いて、mach3用プログラムの為のソフトは何を使っていますか?
TR   2019/01/04(Fri) 14:59 No.1417
Re: 謹賀新年
配線はJWWです。ここでの投稿も作図したものは殆どJWWで書いています。
基板自体は、EAGLEやKiCADを使って見たことはありますけど、暫く使っていません。
部品図面や高さなどの検討だとどうしても、JWWが必須となります。
そうなると、そのままそこに配線も書きだしていく、という感じになっています。

で、それをNCVCでNCコードにしています。

プログラミング(IDE)はPRO MICROでもSTM32ボードでも、ARDUINO IDEです。

あとよく使うのは(OPEN OFFICEの)CALCです。(EXCEL相当のソフト)
ダイヤル部の加工などは、JWWでの座標(点)を拾って、CALCで編集しています。


<追記>
> 配線を描いて、mach3用プログラムの為のソフトは何を使っていますか?

もしかして、これはドライバ的な事を聞いたのでしょうか?
それなら何もありませんよ。
私の作ったのは変形キーボードです。なので、ウィンドウズの標準ドライバで、HIDキーボードと認識します。
MACHにとっては通常のキーボードの↑↓→←等のキーで操作するのと何も変わりません。

猛牛ロック   2019/01/05(Sat) 05:29 No.1418
Re: 謹賀新年
因みに、回路図もさっき書きましたけど、添付図のような簡単な物です。
STM32なら、右側は「+」「-」「STOP」と同じ様にSWのみです。
(なので、簡単すぎて図面も書く必要が無かったのです)

添付図にある、抵抗値だけはちょっと気を使っています。
※この部分は以前やった事のある抵抗値を使いまわしています。

この割合にすると、
char num=(analogRead(A1)+72)>>7;//72は適当な幅を持たせるためのもの
とすると、numが
8の時はどのボタンを押していない。
0〜7ならその数字に相当するボタンを押している
となります。同時押しは通用しません。

LED出力はありますけど、それはマイコン外でのSW処理です。
(でもマイコンコントロールにした方がよかったかも?)
本当は単色=白を予定していたのですけど、丁度いい高さのスライドスイッチが見つからず、
他で使っているのと同じ3ポジションの物を使って、半ば仕方なく赤青2色LEDにしました。

今更ですけど、ボタン確認用のブザー、或いはLEDを付けておいても良かったな、と思っています。

猛牛ロック   2019/01/05(Sat) 06:17 No.1419
Re: 謹賀新年
>配線はJWWです。ここでの投稿も作図したものは殆どJWWで書いています。

そうでしたか。

抵抗等の穴あけピッチは、逐一、インチで計算して作図しているのですか?
そして、Z軸の掘り下げる深さはどれくらいにしているのでしょうか?
きっと、FUSION360でも出来そうですね。
TR   2019/01/05(Sat) 10:25 No.1420
Re: 謹賀新年
電気系の場合は等倍で、目盛(GRID)を2.54で、1/2を標準にしていますね。
もちろん、途中で、切り替えることもあります。

新規部品を書くときには寸法を入れますけどインチを入れる事は殆ど無いです。
大抵の図面でもmmでかいてありますから。

基板のパターン切削なら、0.1mmです。穴は2.3か2.4程度だと思います。
勿論、FUSIONでも出来るでしょうけど、基板パターンだけならやはり基板CADの方が簡単でしょうね。
線がくっ付いて連動して動きますし、配線チェック機能もあったりしますから。

※はんだ付けはやはりプリント基板の方がやりやすいですよ。
何といっても予備半田がしてありますから、SOPとかTQFPなんかだと小手を押しあてただけでも綺麗にくっついたりします。
猛牛ロック   2019/01/05(Sat) 11:03 No.1421
Re: 謹賀新年
こんなページを発見してしまった。(フォルムさんの所です)

arduino テパ
http://forme26a.blogspot.com/2017/02/arduino.html

やっぱりSTMボードにしておけば良かったなぁ〜。
PRO MICROは誰でもやりそうだし。(といっても誰もいないと寂しいかも)
でもこれ、何でPRO MICROを同じ面に付けてるんだろう?
単に試作用、と言う事かな?

基板も超シンプルです。GNDは思いっきり共通ですね。こうした方が良いのかなぁ?
猛牛ロック   2019/01/06(Sun) 16:31 No.1422

処理 記事No 暗証キー

- JoyfulNote v6.02 -
++ Edited by Hamel ++