【きむ茶工房ガレージハウスの掲示板】

FC2BBS

11612

誹謗、中傷、虚偽情報や商用目的・宣伝目的等の利用と判断した場合は削除する事があります。

名前
件名
メッセージ
メールアドレス
URL
アイコン
文字色
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

ADS1015のarduino用サンプルスケッチについて - カエデ

2017/03/07 (Tue) 08:40:30

お初になります。
カエデと申します。

ADS1015とarduinoでA/D変換したくてこのページにたどり着きました。
サンプルスケッチをお借りしようと思ったのですが、リンクが切れたのか分かりませんがダウンロードできません。
一度確認していただいてもよろしいでしょうか?

Re: ADS1015のarduino用サンプルスケッチについて - きむしげ

2017/03/07 (Tue) 10:19:47

初めまして、カエデさん

アップし忘れていました。
ご迷惑をお掛けしました、
ごめんなさい。
アップして置きました、
よろしくお願い致します。

Re: Re: ADS1015のarduino用サンプルスケッチについて - カエデ

2017/03/07 (Tue) 11:39:46

きむしげ様

カエデです。

素早い対応ありがとうございますm(__)m
これからもサイトを利用させていただきます。
よろしくお願いします。

GPS時計の液晶LCDの表示関数について 三角むすび

2017/01/15 (Sun) 13:13:13

きむしげ様お世話になります。三角むすびでございます。
きむしげ様のHPで以下のページについて、質問させて下さい。

http://www.geocities.jp/zattouka/GarageHouse/micon/GPS/GPS2.htm 内

GPS1.lzhについて

skI2CLCDlib.c の C言語ソースについて

/*******************************************************************************
* LCD_SetCursor(col,row) *
* LCDモジュール画面内のカーソル位置を移動する処理 *
* 実際のDisplay Data RAMは2x40byteのエリアが有ります。(但し2-line display) *
* 指定位置の数値データ内容チェックは行っていないので数値は正しく設定する事。*
* *
* col : 横(列)方向のカーソル位置(0-39) *
* row : 縦(行)方向のカーソル位置(0-1) *
*******************************************************************************/
void LCD_SetCursor(int col, int row)
{
int row_offsets[] = { 0x00, 0x40 } ;

command(0x80 | (col + row_offsets[row])) ; // Set DDRAM Adddress : 00H-27H,40H-67H
}



上記関数内の数値は以下のHPの説明から、
今回のGPS時計では、
LCD_SetCursor(int col, int row)内をどのような値に設定すれば良いのか教えて下さい。
今回の実験では液晶LCDは表示しなかったので、この関数の設定を変えなければならないと僕は考えています。(コメントにある・・・指定位置の数値データ内容チェックは行っていないので数値は正しく設定する事・・・ここがわかりません。すみません。)

http://www.geocities.jp/zattouka/GarageHouse/micon/MPLAB/12F1822/LCD/LCD.htm

通常LCDのDDRAMアドレスを指定してそこに文字データを書き込めば画面に表示されます。
(以下は8文字x2行と16文字x2行のLCDにて説明しますが、1行LCDは少し異なります、
 ここでは"2-line display"ですよ)

DDRAM構成図
DDRAM構成図
緑枠が8文字x2行のLCDで、青枠が16文字x2行のLCDです。

この様に実際は表示している場所以外もDDRAMエリアが有り、その場所に対しても文字データを
書き込めますが表示はされません。(表示させる方法は有ります)
でぇ、その隠れているエリアを表示させる為に、ページ画面と言う概念を用いて私独自の方法で
表示できる機能を提供します、ってこんな機能必要なの?みたいなぁ。

ページ画面機能

下記の様にDDRAMをページ単位に分けて、そのページを指定する事により表示させます。
16文字x2行LCDは[20H]/[60H]以上は使いません。(もったいない人はご自分で行いましょう)

Re: GPS時計の液晶LCDの表示関数について - きむしげ

2017/01/16 (Mon) 09:57:20

話長くなりそうなのでメールします。

GPS時計の液晶LCDの表示について 三角むすび URL

2017/01/15 (Sun) 10:23:39

お世話になっております。きむしげ様。
ご許可戴いたGPS時計製作致しておるのですが、液晶LCDに時刻が表示されません。詳細は下記URLに不具合の模様を写した動画をアップロードしてありますので、ご覧になって戴けないでしょうか。僕が思うに、液晶LCDを表示するコンストラスト調整に何か問題があるような気がするのです。アドバイス戴けたら幸いです。宜しくお願い致します。

RGBフルカラーLEDの色を段々に変化点灯させますパート3について なか

2016/12/31 (Sat) 22:05:56

はじめましてなかと申します。
RGBフルカラーLEDの色を段々に変化点灯させますパート3の下記のプログラムについて質問があります。RGBLEDに出力するピン番号についてなんですがもし2と3と4の3つを使用したい場合はどのように書き換えればよろしいでしょうか。よろしくおねがいします。

#include <Adafruit_NeoPixel.h>

// RGBLEDに出力するピン番号
#define RGBLED_OUTPIN 2
// Arduinoにぶら下がっているRGBLEDの個数
#define NUMRGBLED 1

// RGBLEDのライブラリを生成する(色指定はRGBの並びで行う、LEDの速度は800KHzとする)
Adafruit_NeoPixel RGBLED = Adafruit_NeoPixel(NUMRGBLED, RGBLED_OUTPIN, NEO_RGB + NEO_KHZ800);

void setup()
{
RGBLED.begin() ; // RGBLEDのライブラリを初期化する
RGBLED.setBrightness(50) ; // 明るさの指定(0-255)を行う
RGBLED.setPixelColor(0, 0,150,0) ; // 適度に明るい緑の色。(R=0,G=150,B=0)
RGBLED.show() ; // LEDにデータを送り出す
}
void loop()
{

}

Re: RGBフルカラーLEDの色を段々に変化点灯させますパート3について - きむしげ

2017/01/03 (Tue) 10:05:45

初めまして、なかさん。

RGBLEDに出力するピン番号、2番と3番での例です。

#define RGBLED2_OUTPIN 2
#define RGBLED3_OUTPIN 3
#define NUMRGBLED2 1
#define NUMRGBLED3 1

Adafruit_NeoPixel RGBLED2 = Adafruit_NeoPixel(NUMRGBLED2, RGBLED2_OUTPIN, NEO_RGB + NEO_KHZ800);
Adafruit_NeoPixel RGBLED3 = Adafruit_NeoPixel(NUMRGBLED3, RGBLED3_OUTPIN, NEO_RGB + NEO_KHZ800);

void setup()
{
RGBLED2.begin() ;
RGBLED2.setBrightness(50) ;
RGBLED2.setPixelColor(0, 0,150,0) ;
RGBLED2.show() ;

RGBLED3.begin() ;
RGBLED3.setBrightness(50) ;
RGBLED3.setPixelColor(0, 0,150,0) ;
RGBLED3.show() ;
}
といった感じでOKのはずですがぁ
動作させた事はないのでぇ何ともな所があります。

Re: RGBフルカラーLEDの色を段々に変化点灯させますパート3について なか

2017/01/04 (Wed) 18:08:43

ありがとうございます!
早速スケッチを使わせてもらいピンの2.3.4を使わせてもらったところ煙がでて光の速さでUSBをひっこぬきました(笑)。おとなしくピン一個でしてます!

Re: RGBフルカラーLEDの色を段々に変化点灯させますパート3について なか

2017/01/06 (Fri) 21:44:22

こんばんはなかです。
ATmega328単体でこのスケッチは動きますか?
ATmega328単体とはブートローダとこのスケッチを書き込みarduino互換機とした場合です。

GMS6-CR6専用のコネクタについて 三角むすび URL

2017/01/06 (Fri) 18:32:20

お世話になっております。きむしげ様。
GMS6-CR6を購入したのですが、PIC18F25K22が装着されているブレットボードに接続する場合、GMS6-CR6専用のコネクタなどあるのでしょうか?それともGMS6-CR6に付属のケーブルの一方をGMS6-CR6に装着して、もう一方はばらしてピンに半田付けするとかで処理しなければならないのでしょうか。
お知恵をお貸しください。よろしくお願い致します。

GPS時計の設計をお借りさせて下さい 三角むすび URL

2016/12/30 (Fri) 15:39:17

はじめまして、きむ茶工房さま。
私、YouTuberの三角むすびと申します。
早速なんですが、私のYouTubeのチャンネルでGPS時計を製作して動画にしようと考えています。
そこで、きむ茶工房さまの、PIC18f25k22を使たGPS時計のサイトを参考にさせていただきたいのです。
動画で使う回路図、C言語ソースを使わせて下さい。
また、動画の中で、きむ茶工房さまのホームページをご紹介させて戴いて、GPS時計製作のページで回路・プログラム説明させて戴きたいのです。
私のYouTubeアドレスを下記に記入して戴きましたので、ぜひご覧下さい。
下記メールアドレスに、ご了解のメール戴けたら幸いです。
よろしくお願い致します。

Re: GPS時計の設計をお借りさせて下さい - きむしげ

2016/12/31 (Sat) 19:10:10

メールでの返事どおり
ご自由にお使いください。

「PICのEEPROMとHEFについて」の記事 でこぱっち

2016/12/22 (Thu) 18:26:36

きむ茶工房さま

とても内容の濃い記事が満載で、いつも拝見しております。

さて、ちょっと気になりましたので、自分の頭の整理もあって書かせていただきます。

たしかにEEPROMの代わりにHEFがあって、どうやって使うのだろうと思っていたので、非常に興味深い記事です。

ところで、最後の方

「作成したプログラムをコンパイルするとそのコードはプログラムメモリエリア(0h~3FFh)の上からでなく、
下の方から使用されていきます。」

とあってMPLAB Xの画面が出ておりますが、当方はccscのpcw5を使っており、MPLAB Xは使っておりませんが、びっくりしました。

ためしに、12F1501を初期化し、RA0ポートをON/OFFするだけのダミープラグラムを書いてccscでコンパイルし、pickit2で12F1501に書き込んでみました。

すると、プログラムメモリ000hから書き込まれていき、04Ehまでプログラムで埋まり、そこから先は3FFFの初期化されたデータが最終番地3FFhまで続いています。

書き込んだデータを読み込んでみましたが、同じで最終番地(下のほう)からデータが書き込まれている気配はありません。

きむ茶工房さまのこの記事を読むまでは、HEFは後ろのほうにあるのだから、12F1501のプログラムメモリを使い切るような大きいプログラム(1kWぎりぎり)を書かない限り、HEFの読み書きは気にしなくていいのだろうと思っておりました。

何か、当方が勘違いしている気もしますが。。。

Re: 「PICのEEPROMとHEFについて」の記事 - きむしげ

2016/12/23 (Fri) 10:36:23

こんにちは

当方ではXC8コンパイラ専門でして、記事のような結果です。
ccscは分かりません、ですが
PICは電源が入ると0番地から実行します、そこにはプログラムの実態が有る番地へのジャンプコードが書いて有るので
プログラムが何処に有ろうとも動作する様になっています。

久しぶりに秋月電子を覗いた - きむしげ

2016/12/20 (Tue) 10:02:39

農作業が一段落したので、久しぶりに秋月電子を覗いたら
下でコメントのVL53L0X有りました、でもチップのみ
その内に基板に取付けて販売されたら実験してみよう。

感震センサーも有りました、震度5クラスを2回経験した者
としては気になる存在です。
震度5強相当以上の地震が発生した際に出力ってぇ、
震度1から自由な強さで出力して欲しいわね。
まあ、強い地震が発生したら緊急遮断をさせる様な使い方でしょうか。

TTLシリアルJPEGカメラが気になる、撮影してSDカードに記録させたい。

でも、今は16F18313を眺めている最中です、これすごいですね~。
12F1822+12F1501の合体で、性能も1ランク上、いいわぁ~。
なんとぉ、PPS機能だわぁこれ、いいわぁ~。
おおぉ、TIMER0、16ビットだわ、なんとぉ、ポストスケーラ付き。
メモリが2倍なら更に良かったのだがぁ....
もお、これからは16F18313に切り替えたい勢いです。

Re: 久しぶりに秋月電子を覗いた - 中尾だよ

2016/12/21 (Wed) 08:43:22

おはようございます。
恐らく興味を惹かれるものだと思い、お勧めしました。
基板実装済のものはストロベリーにはあります。
ケチるなら海外サイトで800円位、米大統領選前なら、650円位で買えたと思います。

感震センサは独自のアルゴリズムがウリなんでしょう。
加速度センサで各自で適当なのは作れますからね。
実際は震度0~2位の物が欲しいですよね。

PPS機能が世の中に出た時は衝撃でした。
マジでmicrochip凄いよ、と思いました。
今は低電圧化(1.2~1.5V)を早くしてくれ、と願っています。
PICの強みは、マイコンの強化を追及していることだと思います。
マニアックだけど、企業努力してるよなと毎度思います。

プログラムについてわからないとことがあったので教えてください - kk

2016/12/15 (Thu) 14:16:05

http://www.geocities.jp/zattouka/GarageHouse/micon/MPLAB/16F1827/VRtoLED2/VRtoLED22.htm
↑可変抵抗の値でLEDの明るさが変わるという記事を見ました。

while(1) {
num = adconv() ; // 9番ピン(AN9)から半固定抵抗の値を読み込む
CCPR2L = num/4 ; // アナログ値からのデータでデューティ値を設定
}
このwhile文の最後のnumを4で割っている意味を教えてください。

numには1024段階の分解能でアナログの値を読みとったデータが入っていると考えているのですが、

そのデータを4で割るのはなぜなのでしょうか?

自分なりに考えたのですがよくわかりませんでした。

よろしくお願いします。

Re: プログラムについてわからないとことがあったので教えてください - 中尾だよ URL

2016/12/17 (Sat) 10:18:03

ADRESH、ADRESLの説明部分を読んでください。
ビットを左にシフト、右にシフトは聞いたことがあると思います。
4で割ると言うことは、右に2bitシフトと同じ意味です。
4を掛ければ、左に2bitシフトを意味します。
精度的に細かい数字は要らないので、右に2bitシフトしましたよ、が答えです。

Re: プログラムについてわからないとことがあったので教えてください - きむしげ

2016/12/17 (Sat) 14:26:29

"中尾だよ"さんフォローありがとうございます。
因みに、
http://www.geocities.jp/zattouka/GarageHouse/micon/MPLAB/16F1827/memo.htm
の「CCP3/4(PWM)機能」の項目も併せて読んでみてください。
デューティ値の設定方法を見ましょう。

Re: プログラムについてわからないとことがあったので教えてください - kk

2016/12/19 (Mon) 11:05:49

中尾だよさん、きむしげさんご返答ありがとうございます。
4で割る意味がわかりました。本当にありがとうございます。

4で割った場合と、4で割らなかった場合でLEDの光り方を見たところ…
4で割ったとき→可変抵抗を端から端までいっぱい回すとしっかりと、可変抵抗に応じて明るさが変わるのですが(右に回したときが一番暗く、左に回したときが一番明るくなる)

4で割らなかったとき→可変抵抗を端から端までいっぱい回すと、4で割ったときの動作を4回繰り返すようになりました。

これはなぜなんでしょうか?

自分で考えなければだめだというのは思っているのですが、どうも気になってしまいます。

2bitシフトしてやらないとCCP3CONレジスターの4-5ビット目の値が不定なため誤動作をおこしているのではないかと考えています。

2回目の質問で大変申し訳ないのですが、お時間ありましたらアドバイスいただけると幸いです。

Re: プログラムについてわからないとことがあったので教えてください - きむしげ

2016/12/20 (Tue) 09:34:41

おはようございます。

CCP2CONの4-5ビット目は初期値で0が入っていると思うので関係はないです。

4で割らなかった場合は、今度は上位2ビットが無くなると言う事です。
"CCPR2L"は8ビットレジスタで、"num"は16ビット変数ですね、
"CCPR2L = num"だと8ビットに16ビット値を入れ込むのでコンパイラが
上位8ビットを捨てて下位8ビットをCCPR2Lに入れます。
でぇ、アナログ値は10ビットで読み取ります、
なので"num"には10ビットの値が入っていますが、
上の理由で上位2ビットが無くなると言う事ですね。

即ち、"num"値が0x00??/0x01??/0x02??/0x3??の場合
上位がなくなるのでこれらは全てCCPR2L=0x??でセットされます。
って事で、0-1023で処理する所を
0-255:0-255:0-255:0-255と4回繰り返した値で処理されます。
なので、
>4で割らなかったとき→可変抵抗を端から端までいっぱい回すと、
 4で割ったときの動作を4回繰り返すようになりました。
 と言う事です。わかったかなぁ?

Re: プログラムについてわからないとことがあったので教えてください - kk

2016/12/20 (Tue) 22:02:20

なるほどおおw

めっちゃ納得しました;;

ほんとにありがとうございます!!

わからないことがわかるようになるってほんとに楽しいです><

わからないことがあっても自分の力で解決できるようにがんばっていきたいと思います。

わかりやすい解説ありがとうございました。心から感謝申し上げます。

Pololu VL53L0X Time-of-Flight 距離センサモジュールを複数使うには 森 将弥

2016/12/17 (Sat) 00:32:36

いろいろ調べてここにたどり着きました
Pololu VL53L0X Time-of-Flight 距離センサモジュール
をアルディーノで複数個使いたいのですが、リセット付き8chI2Cバスマルチプレクサ PCA9547Dを使えばいいのか、他に方法があるのかアドバイスをお願いいたします。

Re: Pololu VL53L0X Time-of-Flight 距離センサモジュールを複数使うには - きむしげ

2016/12/17 (Sat) 14:29:13

VL53L0XはI2Cアドレスが一つだけなので
PCA9547を使う必要があるでしょう。
PCA9547自体はI2Cアドレスが8個あるので
8個x8チャンなのでVL53L0XをMAX64個までOKですね。

Re: Pololu VL53L0X Time-of-Flight 距離センサモジュールを複数使うには - 中尾だよ

2016/12/17 (Sat) 15:20:56

きむしげさんにもお勧めしようと思っていたのが、VL53L0Xでした。
半年前のモジュールですが、ロボット界隈の人は、発売して直ぐに飛びついたらしいです。
しかし測距距離はもう少し欲しいのが本音で、レーザ安全規格がclass 3くらいのものが理想です。
ドップラーや超音波モジュールも微妙なので、いちユーザーである私もこの方式には期待しています。
低価格なのは立派です。
もう一つは感震センサーですが、震度5の再現は難しいですね。

VL53LOXの測定モードで高精度モードは200ms必要です。
森さんの使い方は分かりませんが、そういう意味では200ms*5個=1秒なので、スレーブは5個が最初の目安ではないでしょうか?
連続で測定するモードがあると、面白そうなモジュールですよね。


Copyright © 1999- FC2, inc All Rights Reserved.