Arduino初心者熱烈大歓迎質問スレ part20
■ このスレッドは過去ログ倉庫に格納されています
http://www.arduino.cc/
【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね
【分裂騒ぎ】
おさまった模様。くわしくはぐぐれ。
前スレ
Arduino初心者熱烈大歓迎質問スレ part19 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1500745528/
過去スレ
Arduino初心者熱烈大歓迎質問スレ part18 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1485192244/
Arduino初心者熱烈大歓迎質問スレ part15
http://rio2016.2ch.net/test/read.cgi/denki/1451893274/
Arduino初心者熱烈大歓迎質問スレ part17
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/
Arduino初心者熱烈大歓迎質問スレ part16
http://wc2014.2ch.net/test/read.cgi/denki/1451909868/
関連スレ
【Arduino】フィジカル・コンピューティング4【OSC】
http://wc2014.2ch.net/test/read.cgi/denki/1407830304/
学研マイコン Japanino ジャパニーノで遊ぶスレ 3
http://kamome.2ch.net/test/read.cgi/denki/1286354827/ Bカーブでいいけど
そこまでぶれるかな疑問?
電解コンデンサーでもいれてみるか 1 - 10uFくらいの どうでもいいけど
Bカーブって表現嫌い
カーブじゃなくてリニアだろっていつも突っ込みたくなる A接点、B接点この表記はすかんね
設備系じゃないからかね
メーク ブレーク NC NO >>680
今使ってるLogicoolのM705というマウスはクリック感がないばかりでなくフライホイール
になっている。
ホイールを勢いよく回すと7秒間くらい回り続けて一気にスクロールできる。
たまにぽろっと動くという欠点は確かにあるけどスクロールの快適性には替えられない。 エンコーダならA相B相 ボリューム(=ポテンショ)でリニアといったら回転じゃない直線形状のものを
指す場合も多いからBカーブでヨロ スライド式をリニアというのは聞いたことが無いが
テーパーがリニアは普通に使う >>693
カーソルを移動して、[No]を押した瞬間にポイントが1行ズレて、[Yes]を押してしまった、
なんて事が起きて、怖くなってユルユルのクリックは止めてしまった。
ただし、ユルユルのクリックとクリック無しのマウスは似て非なるものかもしれない可能性はある。 リニアポテンショ 約 24,400 件 (0.49 秒) テーパーリニア 約1,210,000件
リニアテーパー 約1,100,000件 linear potentiometer で画像検索してみたら、>>694に納得した。 >>702
A0とGNDに取り付けるかなあ。
なるべくA0の近く。
5VとGNDにも付ける。
複数回計測したのを足し上げて平均する。
電源を電池にする。
とかもやってみる価値あり。 どんなにハードやソフトでノイズを消しても
ソフトによるヒステリシス処理は必須ですよ
MIDI値の境目にボリュームが止まったらダメなので >>702
回路間違ってる。
Arduinoに使われてるATMega328PのA/Dポートの入力インピーダンスとボリュームの抵抗値(10KΩ?)は知らないけど、入力インピーダンスはボリュームの抵抗値より充分に高いと仮定する。
まず今付いてる抵抗と横向きの青線を取り外し、その青線が元々繋がってたボリュームの中央端子に10KΩ(赤黒橙)の抵抗(のリード線)を繋ぐ。
その抵抗のもう一方のリード線を縦の青線の下側に繋ぐ。
その青線と黒線の間に数μFのコンデンサを入れる。
これで簡単なローパスフィルタ回路になる。 ハードのフィルタは必須じゃない
どうせソフトのフィルタを通すだろうから
保護用に軽く抵抗を挟んで置くだけで Oooops!
>>707
今付いてるコンデンサも外す。 基本的な回路はこんな感じで。
A/Dコンバータの入力抵抗は基本的には高いけれど、一般的に内部の等価容量(※)に
変換開始にチャージが発生するので、その瞬間は電流が流れる。可能なら外部のコンデンサを
A/Dの入力端子にぶらさげておくのが良い。電源パスコンが、ICの急激で短時間の大きい電流
をまかなってくれるのと、はたらきは似てるかもしれない。
俺が好きなソフトウェアLPFは
k=0.1
val=valold*(1-k)+AD変換値*k
valold=val 普通の1次のローパスフィルタですね
kは値に理由がないなら
m/2^nの形にしておくと計算が速いよ
移動平均の方が良く使われる気がする
アホでもイメージしやすく、
整数演算にした時の失敗も少ないからって理由だろうけど >>708
本件のようにほぼ直流みたいな周波数ならともかく、
交流信号のサンプリングだと、ちゃんとハードウェアのフィルタを作っておかないと
デジタルでは取り切れませんよね… Arduinoを初めて1週間の初心者です
1時間に1回センサーから値を取得する というスケッチを書きたいのですが どのようにしたらいいかわかりません
delay(1000)を3600回繰り返せばいいのでしょうか
どのように調べればいいかも分からないのでそこから教えてくれると幸いです time(NULL)でとってきた値が秒単位なので過去との誤差が3600になったら1時間経過したことになる
コイツをうまく使いこなせ ずっと「0」です! 値が読み取れません!
#include <time.h>
time_t now = time(NULL);
Serial.println(now); ああ、適当に書いたけどダメらしいな
DateTime.h に DateTime オブジェクトがあるからコイツでやると
DateTime.Hourの値を監視すれば良いのだろうとおもふ #include "LowPower.h" //ライブラリはこちら→ https://github.com/rocketscream/Low-Power
int loop=0; //ループ変数
int data=0; //アナログ入力の変数
void setup() {}
void loop() {
data = analogRead(0); //A0ピンから入力読取り
while(loop<450) //8秒間スリープ x 450回 = 3600秒(1時間)後にループから抜ける
{
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); //8秒間スリープ
loop++;
}
}
※整形するために先頭に全角スペースが入ってる行があるから消して
スリープ仕様だけど、こんなんでどうでしょ? >>722
ありがとうございます!
このスケッチの通りにやったらうまくできました >>722
横からですが頂きます。勉強になります。
このような有用なサンプルコードがまとまって置いてあると凄く助かるんですけど。。。
何処かにありますか? リンク集でもありがたいです NanoのVinに+12Vを繋げて大丈夫ですか?
カタログスペック的には大丈夫そうなんですけど
+10Vまでにしておけって記事もいくつかあったので
Nanoとそれに繋ぐ周辺回路の消費電流が少なければ平気でしょうか >>704
MIDIの受信側の機器はPCなので、USBから電源を取っています。
PCとはUSBで繋ぎつつ、DCを繋ぐと電源はDCからとるしくみになってることは分かったんですが、USBのバスパワーを完全にカットする方法もありますか?
>>705, 707,710
全然違っていました汗
>>706
>ヒステリシス
可変抵抗器の最小の位置(または最大の位置)から回し始めたらMIDIの受信側の機器ではすぐには数値が動いてくれず、しばらく回すと反応してくれます。
こういうのもヒステリシス処理を行えばすぐに反応してくれるんでしょうか?
>>707、710
数μFのセラミックコンデンサが売っていないのでアルミ電解コンデンサでも構わないですか? GPSモジュール繋げて、簡易トリップメーターみたいなのを作ろうとしたら、意外にメンドウだった。
1秒おきに緯度経度が得られるんだけど、よく考えたら距離的な座標ではないので変換しなきゃいけないんだ… >>727
ボリュームの両端は抵抗が変化しない
変化しないものを回路やソフトでどうやろうが変しない
特殊なボリュームを使うか、メカ的に制限をもうけるか >>725
大体のライブラリはexampleセットで入ってると思うんですがそれは。
まず調べるものを変える…というかまさか記法について知りたいわけじゃないよな 程度によるけどボリューム両端の不感帯はあった方がいいよ。
端が最大値だと、ばらつきや経年変化で最大値が得られなくなるかも知れない。 >>731
ありがとう。本体内蔵?のサンプルコードは知っています
>>722のようなちょっとしたコーディングテクニック(tips)集が有ったらと思いまして。。。
頑張って自己研鑽します >>729
ありがとー
Nanoのレギュレーターって裏面ののSOTパッケージのやつですよね?
どうもNanoさん単体で実測24mAくらい消費してるぽいです
DIPの奴でだけどATmega328Pを16MHzで動かしてみたところ14mAくらいだったので
USBシリアルチップやらで10mAくらい使ってるのか
LEDバーアレイを1つ付けるから5mAスタティックで全灯したとして50mA
他の外付けICとかと合わせてまぁ合計100mAとしてシリーズレギュレーター発熱0.7Wくらい?
ちっちゃいアルミのヒートシンク貼っとけばいいですかね? MIDIデバイスのボリュームの件、加速度センサを入力デバイスにして、重力加速度の向きを入力値にすればいい。
ロータリーエンコーダのチャタリング、電源オフ時の値の保持、ボリュームのエンドストップ問題の全てを解決する。
本体を揺らしたり傾けたりしないのならね。 ツマミとは別に、筐体にもセンサつけて差を取れば揺らしてもokだな。 >>727
もちろん電解コンデンサでもOK。(黒線側がマイナス)
とりあえずは0.47μFでテストしても大丈夫かと。 >>735
環境センサの値保持って改めて謎概念だな >>739
フリーフォールの中とかで使わないならアリじゃね? MIDI入力デバイスなのだから、楽器だ。もっと自由な発想が出来るはずだ。吐息でホットワイヤ式エアフロメータを作動させるとか、静電容量スライドパッドとか。 >>740
そういや加速度センサって0G(落下)検出ついてるのあったよな。スカイダイビング中だけの裏モード実装とかあるあ…ねーよ >>722のサンプルですが、ループ変数の「loop」は予約語で使えないですね。適当に変えて
あとループ変数はループを抜けたら0にリセットにするのを忘れてた。
int count=0; //ループ変数
〜〜〜
while( count < 450) //8秒間スリープ x 450回 = 3600秒(1時間)後にループから抜ける
{
LowPower.powerDown(SLEEP_8S, ADC_OFF, BOD_OFF); //8秒間スリープ
count++;
}
count=0; Arduinoの電圧を取得する関数
int getVCC() {
ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1); // ATmega328用
delay(2); // ちょっと待つ
ADCSRA |= _BV(ADSC); // A/D変換
while (bit_is_set(ADCSRA, ADSC));
uint8_t low = ADCL;
unsigned int val = (ADCH << 8) | low;
//前の結果を破棄
ADCSRA |= _BV(ADSC); // A/D変換
while (bit_is_set(ADCSRA, ADSC));
low = ADCL;
val = (ADCH << 8) | low;
return ((long)1024 * 1100) / val;
} mVで取得。
1.5V電池 x 3本(4.5V)だと「4500」
USB電源(5V)だと「5000」前後
使い方
int voltage =getVCC();
用途
バッテリー・電池残量の確認とか >>743
最近のは色々とついてるぞ
割り込み端子出力があって
設定で色々と機能を変えられる
機器の保護用の使い方が多いから >>702 の続きです。
>> 707, 738
これであってますか?
抵抗は10KΩ、電解コンデンサは4,7μFを繋いでみました。
https://i.imgur.com/bpemSdR.jpg >>730
>>732
両端ではなく、両端からちょっと動かした所なんですが、不感帯なんですね >>748
OKだと思う。
ただ、Arduinoとブレッドボート間の配線3本はできるだけ短くする。
ではGood Luck! >>750
どうもありがとうございます
>>751
>>752
また別のボリューム買ったら試してみます 「ちょっと」の量がわからないと判断できないが、
試しに、ボリュームの端から端まで回した時のADC生データ出力をTeratermで受けたのを、動画で撮って見せてくれないかい。 調べ物してて、日本人のブログと海外のブログで違うことが書いてあったら
どっちを信用する? WEBに書かれていることを、そこに書かれていること「だけ」で信用しない。 どっちの方がより信用できる?って意味なら英語かな。 単純化する発想が危うい。
信用するかしないかではなくて、どれぐらい信用できるか、であることが多い。
日本と海外という分け方をするのは、当人が強い単純化志向を持ってる可能性が高いことを示している。
気を付けて。
・本なら信用できる
・活字なら信用できる
・NASAが採用
・海外で称賛
・外国の反応
・立派なスーツをちゃんと着た身なりのしっかりした人だったのに。 多くの目に触れて真偽が評価済であるって意味での英語だから、日本語の方がページビューが多かったら日本語を信じるかも知れないな。
原典が日本語の情報なら日本語を信じる。 >>755
その調べ物ってなんだ?
やましくてココに書けない内容なのか? >日本人のブログと海外のブログで
そもそもこういう基準で判断しない。 AとBの資料が異なっていたら、さらにC、D・・・の資料を調べる。
可能なら自分で検証、確認する。 やってみたけど壊れなかった。
→真実なのは壊れなかったことだけ。正しいかどうかわからない。
実験してみろ。どうだ。俺の言った通りだろう。ちゃんと動作する。おまえは考え過ぎなんだよ。
↑割とこういう人は多い。
絶対最大定格を超えた使い方をしても、部品は必ずしも壊れるわけでもないし、
セキュリティ対策ができていないシステムを運用しても必ずしも襲われるわけでもないし、 シリアルモニターを見ているんですが、Unoのアナログ入力辺りに手をかざすだけで反応するのはどういう現象ですか?
ピンは何もさしていない状態です 入力インピーダンスが高いからだろう
オープンにしてればなるだろ 入力に設定してある端子はオープンにしたらいけないよ
プルダウンなりプルアップなりしなされ >>776
端子に何も繋げない場合もですか?
>>774
>>777
>>778
オープン、プルアップ、プルダウンの用語調べてみます Arduinoでもこういうのって作れるの?
http://www.lab3.kuis.kyoto-u.ac.jp/~nkito/sound.html Arduinoでセンサーやモーター、LEDを使って何か作ってください
と言われた時皆さんはどんなものを考えますか? >>782
倒立振子のフィードバックによる直立制御とかかな >>782
ぐるぐるまわって文字や絵を表示するやつ 機能てんこ盛りか増設切り替えできるセンサーリレー電源タップ ■ このスレッドは過去ログ倉庫に格納されています