TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
ディジタル画像処理
【Verilog】 記述言語で論理設計Project15 【VHDL】
アンプを語ろう〜良い音って何だ〜2
でんでんタウンでラボでも開こうと思うんだが
☆ オペアンプ part11
(_■三 真空管 総合スレッド 三■_) 第7グリッド
初心者質問スレ 138
電磁波犯罪被害(電磁波兵器/マインドコントロール)
為替実業家 アステリスクの技術洗脳文
【アナログ】テスター総合スレッド 11Volt【デジタル】

Arduino初心者熱烈大歓迎質問スレ part25


1 :2019/09/13 〜 最終レス :2020/01/14
http://www.arduino.cc/

【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
 詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね

前スレ
Arduino初心者熱烈大歓迎質問スレ part23
https://rio2016.2ch.sc/test/read.cgi/denki/1541233445/
Arduino初心者熱烈大歓迎質問スレ part24
https://rio2016.2ch.sc/test/read.cgi/denki/1554776918/

過去スレ
Arduino初心者熱烈大歓迎質問スレ part22
https://rio2016.2ch.sc/test/read.cgi/denki/1534549073/
Arduino初心者熱烈大歓迎質問スレ part21
https://rio2016.2ch.sc/test/read.cgi/denki/1527252804/
Arduino初心者熱烈大歓迎質問スレ part20
https://rio2016.2ch.sc/test/read.cgi/denki/1514503488/
Arduino初心者熱烈大歓迎質問スレ part19
http://rio2016.2ch.sc/test/read.cgi/denki/1500745528/
Arduino初心者熱烈大歓迎質問スレ part18
http://rio2016.2ch.sc/test/read.cgi/denki/1485192244/
Arduino初心者熱烈大歓迎質問スレ part17
http://rio2016.2ch.sc/test/read.cgi/denki/1471967293/
Arduino初心者熱烈大歓迎質問スレ part16
http://wc2014.2ch.sc/test/read.cgi/denki/1451909868/
Arduino初心者熱烈大歓迎質問スレ part15
http://rio2016.2ch.sc/test/read.cgi/denki/1451893274/

2 :
~---~~-~~---~----~~-~-~~---~--~~~-~-~~-~-~~----~~~~~~~---~~~~-~--~~~------~~
-~--~~~--~---~-~~~~-~~--~-~~-~-~-~~-~-~-----~----~~-~--~~-~--~-~-~~~~~-~--~~
~~-~~--~-~-~--~-~~~--~-~~~~--~~-~~-~---~--~-~~--~~-~---~~~~-~~~---~~---~----
--------~~~~~---~~-~~~--~~~---~-~~~~~~---~-~---~-~~-~-~~----~-~-~----~~~~~~~
-~--~--~--~~-------~-~~~~-~--~~~~~~-~~-~~--~~~~~~-~~~-~------~-~---~~-~-~~--
-~~~~~--~~~-~~~-~-~--~-----~~~--~~~-~~~~-~~---~~-~~--~------~~-~-~---~-~--~-
-~~-~-~-~~~~~~-~--~~~~-----~~-~~~---~~-~--~---~~--~~----~-----~--~~-~~-~-~~~
~~~---~-~~~-~~-~~~-~----~~~~----~~----~-~----~-~~~~-~--~~--~~~~-~-~-~~--~---
~-------~---~--~-~-~~~--~~--~~~-~-~--~--~~~~~-~~~--~~--~--~~--~~~~~~-~-~~---
--~--~~~~~~--~~~~~~---~~~~~----~----~~~--~~~~~~--~-------~~~~--~~~~~--------
-~--~~-----~--~-~~~~~~~~~~~-~~~~-~~-~---~~--~-~--~~--~-~~--~~-~-------~~~---
----~~--~-~~---~~~-~--~--~~-~~~~~~~~-~-~~-~~--~--~~-~~-----~-~---~-~~~~-~---
~--~~-~-~~~--~-----~~----~~~----~-~-~~-~----~--~~~~---~~-~-~~~--~~~-~-~~~-~~
~~-~-~~~-~~-~~~~-~-~---~~--------~---~~-~-~-~--~--~--~~~~~~--~~-~~-~~---~--~
~~-~~~~~-~~~---~~------~~~~----~-~-~--~-~--~~-~-~~--~~-~~----~-~~-~~--~---~~
~~---~~-~~~-----~-~--~~-~~--~~~~~---~-~-~~--~~~~--~~~--~~~-~~--~----~~---~--
~----~--~~-~~~-~~~---~-----~~-~~--~-~~-~~-~~~~~-----~-~~~~~~~--~~--~----~--~
~~-~~------~~~~~-~-~---~~~---~-~---~~-~-~~-~~---~-~-~~-~--~--~---~~-~~~~-~~-
~~~--~~-~~~--~~-~~--~~-~~---~-~~~-~~~~----~~------~~---~--~-~--~-~~--~-~-~~-
----~--~-~~~~--~-~-~--~--~~~-~~-~--~-~~-~~-~~-~-~~--~---~-~-~-~~~---~~~--~-~
~--~~-~~-~-~---~~~~---~---~~~--~~----~-~~--~~~-~-~-~-~~-~-~-~~~~-~~-~-~-----
-~~~~~~~~---~-~-~-~-~~------~~~~~----~-----~---~~-~~---~~~--~~~-~~~--~--~-~~
~~~~---~~-~~--~~--~~~--~-----~----~-~~---~~-~~------~--~~~-~~-~-~-~~-~-~~~~~
~-~-~-~--~-~~~~-~~---~-~~~~-~-~--~~----~~~~~~~-------~-~~-~~-~--~~~-----~~--
~~---~--~~~~~--~--~-~~-~~~--~~-~~~~~---~-~~~~-----~-~-~-~~~-~-~------~~---~-
~-~~~~-~-~~~------~~~~-~-~~-------~---~-~~~~-~~----~---~-~~--~~~~----~~~-~~~
~--~~~~-~-----~~-~~-----~-~-~~~~~-~-~--~~--~--~~~-~--~-~~~~~~~~~-~-~--------
~---~---~-~-~~-~-~~~-~--~~~-~--~--~~-~-~--~~-~-~~-~~~~~--~-~~--~---~~----~-~
~---~~~~~~-~-~~~-~-~~-~--~--~~--~~~~~~~---~--~--~-~~----~~~-----~~-~-~-~----
-~-~~--~~----~--~~-~--~~-----~~--~--~~~--~-~~~~---~-~~~-~~---~-~-~--~~-~~~~~
-~--~~-~--~--~--~--~~--~--~-~-~----~~~--~-~~~---~-~-~-~-~~~~~~-~---~~-~-~~~~
~~~~---~--~~~--~----~~~~~~--~--~~-~-~~~~~-~---~-~~-~~-~-~-~--~-~-~-~--~-----
--~-----~~--~~~-~-~~~--~~~-~--~--~---~~--~--~-~~--~~~~~---~~~--~~~-~-~~-~--~
~~-~~-~~--~~-~~~-~--~-~~~----~~-~-~--~-~~-~~-~-~~-~----~--~--~~---~-~~-~-~--
-~~~-~--~-~~~----~-~~--~-~~--~~-~~--~-~~-~~--~~~~~-~~~-~--~---~~~--~----~---
~~~--~----~----~~---~~-~~~~~----~-~~~-~~---~~~~~-~--~-~-~~-~~--~~-~--~---~~-
-~--~~~---~-~~~~-~~~---~-~-~~~-~~-~~-~~~~--~~~~--~-~--~-~~----~~----~~------
~~---~~~~~-~~----~~--~~-~-~-~~~--~~~----~~~~~~--~~--~--~------~---~~--~~~--~
-~---~~~~~--~~-~----~~---------~-~-~--~~-~-~~~-~~~~-~~~~~~----~--~-~-~--~~~~
~~--~-~---~---~-~-~-~~-~-~~---~~--~---~-~---~~-~~-~-~~-~--~-~~-~~-~~~-~--~~~
-~-~~----~~~~~-~-~~-~---~~----~-~-~~-~-~-~--~~~-~-~~~--~-~~-~~---~~~-~-~----
~-~--~-~---~--~~-~------~~-----~-~~~~-~-~-~---~-~~---~~~~-~~~~-~~~~~----~~~~
-~~~---~---~~~~~-~~--~-~-----~-~--~~~~~----~~~-~~--~-~~~--~~-~~~~~-~------~-
-~-----~-~~~-~~~~-~~---~-~-~~~--~~~-~-~--~---~-~~--~~~---~-~-~~~-~-~--~~--~-
~-~~~--~~-~~~~~~--~-~-~~~--~-~-----~~~~-------~-------~~~--~~-~-~-~-~~-~-~~~
--~-~---~~-~~-~--~-~-~---~~--~--~----~--~~~~~----~-~-~-~-~-~~~~~~~~-~--~~-~~
-~-~~-~--~~--~-~~--------~-~~~~-~-~~~-~-----~-~~~~~~~---~-~~~~---~-~~~---~-~
-~-------~~~~-~~~-~~--~~~-----~-~~---~~-~~-~-~~-~---~~~~-~--~-~-~~-~--~--~~~
~~-~-~~-~~~~-~~---~-----~~~--~~~-~-------~--~--~~-~~~---~~-~~~-~~--~~-~-~~--
-~---~--~--~---~~-~---~~--~-~~-~~-~~-----~~~---~~~--~~~----~~-~~~~~-~--~~~~~

3 :
微妙に模様を変えやがって1おつ

4 :
WDTすらハングるてことやっぱあるよね?

5 :
初心者です お願いします…
温度センサーから読み出した値の10回平均を出力したいです。
ネットで色々調べたのですがうまく行きません…
一番簡単な記述はどんな具合になりますでしょうか?
スケッチは以下です

void loop(){
int val = analogRead(A0); // 温度センサーの出力値を読み取る
float volt = map(val, 0, 1023, 0, 5000); // センサの出力値を電圧に変換
float temp = map(volt, 300, 1600, -30, 100); // 電圧を温度に変換

この変換されたtempを10回取得してから10で割って、
Serial.print(temp-average);で出力したいです。
for文を使って色々と試してはみましたが… よろしくお願いします。

6 :
最初の1回目から9回目はどう扱うの?
というか色々と試したとあるけど貼ってもらったほうが早いと覆うよ

7 :
書き方が悪かったようです
10回計測した平均値のみを取り出して出力したい…の誤りでした。

8 :
float total = 0;

for(int i=0;i<10;i++){

 val = analogRead(A0); // 温度センサーの出力値を読み取る
 volt = map(val, 0, 1023, 0, 5000); // センサの出力値を電圧に変換
 temp = map(volt, 300, 1600, -30, 100); // 電圧を温度に変換

 total += temp ;

 delay(適当に);
}

Serial.print(total/10);

9 :
>>7
概略だけど、大域変数を宣言してsetup()で初期値を0にする
次にloop()内で局所変数の配列を宣言して、その配列[大域変数]に各回のセンサー値を代入しては、大域変数をインクリメントする
これを大域変数が9になるまで繰り返し、配列[0]から[9]まで加算して10で割り、Serial.print()で出力して大域変数を0に戻す
と言うのでは?

10 :
>>8
どううまくないのか書かないと。
あとスケッチは全部書く。
各行の間にserial出力を入れてSerial Monitorで値を見る。

11 :
>>10
おまえが書け

12 :
/* 温度センサーDS18B20で10回計測した平均 */
#include <DallasTemperature.h>
OneWire oneWire(4); // 温度センサーのDATピン
DallasTemperature sensors(&oneWire);
float Tempdata[10]; // 取得データ列
int TempdataMax=0; // 取得データ数
int TempdataCnt=0; // リングバッファのポインタ

void setup() {
Serial.begin(9600);
sensors.begin(); // 温度センサー初期化
}

void loop() {
sensors.requestTemperatures(); // 温度取得要求 188ms
Tempdata[TempdataCnt]=sensors.getTempCByIndex(0);
if (TempdataMax<10) TempdataMax++;
float tmpavr=0; // 平均の算出
for (int i=0;i<TempdataMax;i++) tmpavr+=Tempdata[i];
tmpavr=tmpavr/TempdataMax;
Serial.print("datacnt="); Serial.print(TempdataMax);
Serial.print(" new="); Serial.print(Tempdata[TempdataCnt]);
Serial.print(" average="); Serial.print(tmpavr); Serial.println("");
TempdataCnt=(TempdataCnt+1) % 10;
delay(300);
}

インデント崩れると思うので CTRL+t で整形してちょ

13 :
配列組むとプログラムサイズが大きくなるから
単純に10回足して割る10ではどう?

14 :
そうだね、移動平均を使えば1000個の平均も取れる
近似値になってしまうけど、ピーキーな値を取り除くなら有効

/* 温度センサーDS18B20で100回計測した擬似移動平均 */
#include <DallasTemperature.h>
#define SAMPLE_COUNT 100 // サンプル数
OneWire oneWire(4); // 温度センサーのDATピン
DallasTemperature sensors(&oneWire);
float tmptotal; // 取得データの合計値
int TempdataMax = 0; // 取得データ数

void setup() {
Serial.begin(9600);
sensors.begin(); // 温度センサー初期化
}

void loop() {
float tmpavr;
sensors.requestTemperatures(); // 温度取得要求 188ms
float tmpnew = sensors.getTempCByIndex(0);
if (TempdataMax < SAMPLE_COUNT) { TempdataMax++; tmptotal += tmpnew;
} else { tmptotal = tmptotal / SAMPLE_COUNT * (SAMPLE_COUNT - 1) + tmpnew; }
tmpavr = tmptotal / TempdataMax;
Serial.print("datacnt="); Serial.print(TempdataMax);
Serial.print(" new="); Serial.print(tmpnew);
Serial.print(" average="); Serial.print(tmpavr); Serial.println("");
delay(300);
}

15 :
>>13
センサーの中には計測に0.7秒かかるのもあるから
DS18B20を高精度12bitモードで使用した場合がそれなんだけど
それだと7秒後に結果がでる
用途によるけどあまり実用的では無いよね

16 :
おお!こんなにレスが… 徹夜で悩んでたので寝てしまっていました…
>>10 さんのやり方で計測を20回にして少し精度の高い値を取れました
ありがとうございます!
>>13 さんもありがとうございます!こんな高度なコードは自分には
まだ無理そうですが今後の為に保存しておきます。

他の皆さんもありがとうございました!
最終コードは以下のようになりました

void setup() {

Serial.begin(9600);

void loop() {

float total = 0;

for (int i = 0; i < 20; i++){
int val = analogRead(A0);
float volt = map(val, 0, 1023, 0, 5000);
float temp = map(volt, 300, 1600, -30, 100);
total += temp;
delay(100);
}

Serial.println(total / 20);
}

17 :
間違えました >>8 さんのやり方でうまく行きました
>>12 さんのやり方はまだ自分には少しコードでしたの誤りです
他の回答くれた皆さんもありがとう!

18 :
サンプルコードは少ないコードで解りやすく簡潔にが鉄則

19 :
Pro Microで、MsTimer2による割り込みで呼ばれた関数内でWireによるI2Cを行うと
Wire.endTransmission実行時に固まり、PCとの接続もできなくなって
RSTピンを2回GNDに落として接続と書き込みをし直さないといけなくなるんだけど
WireとMsTimer2を一緒に使っちゃいけないとか何かある?
このあとTimerOneも同時に別の目的で走らせようと思ってるんだけど・・・

20 :
>>19
こことか
http://kuchem.kyoto-u.ac.jp/kinso/weda/blog/?date=20180107

21 :
>>20
サンキュー同じの見つけてた
確かにsei()を入れたら意図した動作をするようになった

リファレンスにsei()とcli()が載ってないなあ

22 :
どうしても必要な場合以外、通信の記述はメインループでやるように書くのが吉

23 :
割り込み処理中に別の割り込みの記述するとか
長い処理書くとか頭おかしいのか?
割り込み処理内にはフラグ立てるとか
カウンターのインクリメント程度に留めて
メイン側でフラグ見て処理すべきだろ
割り込み処理内に色んなことしてたら
スタックの消費もバカにならんし
デバッグもめんどくさいだろうに

24 :
初心者なんだからそんなもんだろ
わけのわからんエラーが山のように出たり
場当たり対応して他の割り込みころしてたり
色々痛い目にあって成長してくもんだ

25 :
質問です!
3つの信号出力を持っているセンサーが2つあって、Arduinoへの入力は3本1系統しかないから、レールを切り替えるように手動で切り替えられるようにしたい。
ピンヘッダを考えたけど、もっと省スペースで済ませられる方法はある?

26 :
トグルスイッチ 3回路ON-ON
http://www.gontaya.com/product/77

27 :
>>26
はやっ!
サンキュー!

28 :
スケッチの質問なんですが関数を作成した時、LOOPの前と後どちらに書いた方がいいとかありますか?色々とスケッチを見ていると決まりはないように見えるのですが気になっていまして。

29 :
前に書かないとエラーになった時あったな
だからいつも前に書いてる

30 :
あ、専門家の人よろしく↓

31 :
>>28
暗黙の宣言、暗黙の関数宣言 とかでググってみてください。
Arduino IDEでは>>29の言うように一時期あったけど、いまはどうでもいいみたい、好みで。

32 :
あ、私、専門家じゃないです。

33 :
水温センサーをarduinoで利用したい。
amazonとかで買える汎用のセンサーをお湯とか使って何度でいくつの抵抗値か調べようと思ってる。
調べた特性をグラフにしてarduinoのアナログ入力で読み取る予定。そこで気になったんだけど、グラフが比例してれば、プログラムの対応は出来る。
もしグラフがしっかり比例していなかった場合は、どうプログラムを組めばいいのかな?

34 :
>>33
変換表をもって変換すればいいんじゃね

35 :
どんなセンサー使うつもり?
熱電対でやったことあるけど誤算範囲でほぼ完璧にリニアだった。
補正すること自体を体験的にやってみたいなら別だけど意味無くね?

36 :
>>33
普通にXYグラフ描くつもりでいい

グラフ描くときに比例してるとこで区切って座標とって描くだろ?
データとしてはその点の数だけのXY座標があるじゃん

で、入力値がX座標のどこにあるか判別して
その両側の2点を得る
あとはmap命令で済むだろ

37 :
>>33
温度センサーはDS18B20がオススメ
抵抗値や電圧じゃなくて温度がデジタルで読める
校正とかいらない
防水ステンレスキャップで延長コードついたのも200円くらい

38 :
>>35
まだ調査してないから、リニアか分からないけど、車の社外水温メータpivotに付いてた水温センサーをそのまま使いたかったんだよ。
他の人が教えてくれたデジタルのセンサーでもいいんだけど、センサー先端のネジとかをどうやって作ればいいんだろう?

39 :
>>36
この方法が自分の知識で今すぐ出来るやり方だと思う。変換テーブルはまだ使ったことないけど、勉強してみます。
ありがとう。

40 :
>>29
>>31
遅くなりましたがありがとうございます

41 :
>>33
ExcelとかRで回帰分析して回帰式を用意するのが良いと思う。
プログラムは1次式ではなく、求めた回帰式を利用するだけなので簡単。
33が回帰式のモデルとなる式(2次式、3次式、etc)を用意する必要があるのと回帰分析の知識が必要。
ググればなんとかなるとは思う。

42 :
>>36の書き方だとプログラムするのに誤解しちゃうかもな
両側の2点を得る、じゃなく分岐処理するだけでよい

せいぜいグラフは3つの直線で済むだろう
そうすると3つのmap命令を用意して
あとは入力値で分岐処理、だな

43 :
>>42
入力値で分岐して、その中のmap関数で数値を出すんですね。グラフの特性に合わせて分岐を増やせばいいのか・・・
なんとかやれそうです。
ありがとう!

44 :
>>41
回帰分析をググったけど、まだarduinoにスケッチするとこまで行くのは難しそう。
みんなこんなすごいのを、さらっとやっちゃうんですか?スゴいです。

45 :
>>44
Arudinoでは回帰分析はしないよ。多分できなくはないけど大変だよ。
調べたサンプルの回帰分析はPCでして、読み取り値のxからyを推定する回帰式を作るんだよ。
33は比例と書いているけど、回帰分析ならば、1次式以外にも3次式とか対数式に近似する回帰式も作れるよ。

回帰式さえ作っちゃえば、Arudino側は回帰式に読み取り値xを入れれば、yが返ってくるので、読み取り値で条件分岐するとかが不要になるよ。

46 :
>>45
仕事の合間に回帰式を勉強してきました。重回帰分析じゃないんで、一次関数でいけるかな。式さえ出来れば関数作ってコールしてデータ入れれば結果が出せますね。式が出来るかなぁ。まずはグラフを作るか。テスターと温度計用意だね。

47 :
もしグラフ作成と調整で挫折したら
http://www.semitec.co.jp/support/glossary/glo-thermistor/

センサーが何かを調べて特性がどうなってるか調べて
簡単な方法を見つけなさい

48 :
>>46
1次ならググるとExcelのデータ分析を利用する例がたくさん出るから頑張って。
最低でも10から20はサンプル必要だろうから、実際の特性調査の方が時間が掛かると思うよ。

49 :
折れ線グラフを扱う汎用的なのを作っておくといろいろ便利だよん

50 :
みんな凄いなあ 初心者から見るとカッコいい&#12316;
オレも頑張るぞっと pythonも少しやり始めたんだけど
分析してグラフ化はこっちに任せたほうが良さそうだね

51 :
>>33
自分もDS18B20が楽で良いと思う。
ただ、校正はいらないけど個体毎の誤差は結構あるので、最初にまとめて温度とアドレス控えておいた方が良いかも。5個買って1℃位の差があったので、そこは補正してる。

52 :
技術的な質問じゃなくて、法律・倫理的な質問なんだけど、
LeonardとかでVIDやPIDを書き換えるのって違法になる?
メーカーが金を出して所得した番号を使う時点で違法確定なのか、
販売はNGだが、個人ならokなレベルなのか、
それとも技適警察みたいにネット上では批判される程度のものなのか。

53 :
業界団体規格なので違法にはならんでしょう。USBx.x準拠とかうたったら優良錯誤で違法になるかもしれんけど。

54 :
Arduino UNOの回路をばくって、USB付きの目覚し時計を自作して売ったら、何か駄目な事ってある?

55 :
は゛くって?

56 :
>>54
基本的に回路に著作権はない
arduinoに関してはarduinoと名乗らなければ問題ない
逆にarduinoの回路はavrにusbシリアルくっつけただけに過ぎないわけだが
ブートローダーやusbシリアル変換に使ってるavrのファームは別な話になるけどね

57 :
>>38
車載の水温センサーなんかは基本的にサーミスタでB特性の値から計算するのが普通だけどね
安いしただの抵抗だから耐久性も高いし必要十分な精度あるし

自作しようとするならネジに穴開けて埋め込むだけでいいし

昔の車なんかで見かけたのは精度いらなきゃ線1本で引き回しておしまい

58 :
>>57
車載だと壊れにくくシンプルなの優先するだろうから
ラジエターの冷却液の沸騰上限と凍結下限さえわかれば
途中の温度狂っててもなんでもいいのでは?
CPUの内部温度もサーミスタですよね

59 :
>>58
燃料の噴射量にも関わるので、あまり雑にはできない。

車内の水温計ならそんなレベル。

60 :
>>58
>CPUの内部温度もサーミスタですよね
PN接合の順方向電圧を使います。

61 :
まぁ良くも悪くも初心者スレだよねw

62 :
>>58
まぁ水温で何をするかというと燃料補正
水温が低いときの増量や水温上がってきたときの補正とか
せいぜい10度単位とかだよ

63 :
シリアルモニタのウインドウが表示されないのですが、どうすれば良いでしょうか。
ポート認識はしていて、(windowsタスクバーを見る限り)シリアルモニタ起動もしている様なのですが。
互換品のelegoo uno r3で、ソフトの再インストールはしました。

64 :
ARDUINO 1.8.10 2019.09.13

[ide]
*ライブフォントのサイズ変更がコンソールとシリアルモニターにも適用されるようになりました@ Pieter12345
* Windows @ Pieter12345のソースからIDEを簡単に構築できます
*超小型画面に適した、より小さな設定ウィンドウ
*ダウンロードしたjsonをキャッシュし、@ mattiabertorelloを変更した場合にのみ取得します
*ボードが突然切断された場合、シリアルモニターを一時停止する
*ライブラリは、libインストール中に提案される依存関係を宣言できるようになりました
* SerialPlotter:@chromhelmラベルの追加を許可
* Board Manager @vowstarのtar.xzアーカイブをサポート
* SerialMonitor:コマンド履歴を追加(矢印キーを使用)@ Pieter12345
*アクセシビリティ:設定@ joew46167でアクセシビリティを有効にするチェックボックスを追加
このモードでは、ナレーションとキーボードナビゲーションが大幅に改善されます。
例えば。リンクはアクセス可能なボタンになり、リストは苦痛なく矢印キーでスクロールできます

[wifi-updater]
*最新のNINAファームウェアを追加

65 :
[ハードウェア] *新しいavrツールチェーンをバンドル(5.4.0および64ビットの互換性を今後のmacOS Catalinaと修正)

[arduino -buidler]
* 1.4.7 への更新(新しいarduino-cliに基づく)

66 :
>>63
Tera Termとかの単独のターミナルエミュレータ使ってシリアル通信の確認はできないの?
https://forest.watch.impress.co.jp/library/software/utf8teraterm/

67 :
タスクマネージャーで、起動してる(けど見えない)シリアルモニタウインドウを最大化したら見えるようになりました。
最大化をやめたらまたすぐ消えたんですが、少しいじっている間に直りました。
原因が分かりませんでしたが、とりあえず良かったです。

68 :
>>67
ディスプレイの表示範囲の外に表示されてただけでしょ。
arduino云々の話じゃなくwindowsの基本操作の範疇じゃね?

タスクバーにはシリアルモニタ表示ってやったときにarduinoIDEの二つ目のアイコンが重なって表示されてたはずだからそれのシリアルモニタ側のアイコンにカーソルあわせてちょっと上にカーソル移動するとシリアルモニタのサムネイル画像(っていうのかな?)が表示される。
この時右クリックのコンテキストメニューから移動って選ぶとカーソルキーとかで自由に画面外のwindowでも動かせるようになるんでそれで画面内に戻せばいい。

注意点としてアイコンの上右クリックじゃなくてサムネイルのうえで右クリックね。

69 :
すみません
やりたいことが有り、まだ座学なのですが、電子工作で可能なら始めたいと思っていて、
そのための情報集めている段階なのでテストなど出来ないのですが質問させてください

arduinoをコアに
8chのマルチプレクサ10個をデイジーチェーンでコントロールしたいと思っています
TC4051Bのようにデイジーチェーンの仕組みのないマルチプレクサでそのようなコントロールする場合、
I2CやSPIなどで通信するのがスマートな気がするのですが、
後付でそのような機能を提供するような汎用チップのようなものはありますか?
また、他にもっと簡単な方法がありましたら教えて下さい

用語などを間違っていましたらすみません

70 :
>>69はコピペ荒らし臭いな

71 :
>>69
GR-SAKURA

72 :
74HC595を4個直列にしてシリアル-32bit出力を作って
3bit毎に4051を10個ぶらさげればいけるけど
単純に595を10個並べて80bit出力にしたほうがシンプルだよな
16chの74HC4067も入手しやすいはず
こっちならIC9個で実現できる

73 :
>>69のコピペ元の大本質問者です
初心者質問スレ その134
https://rio2016.2ch.sc/test/read.cgi/denki/1566321111/753
コピペしたのは私じゃないす

>>72
ありがとうございます
元スレにて、
アドレスデコーダー
シフトレジスター
という情報いただき、調べる過程でIOエキスパンダーでも行けそう
という感じになっています
で、マルチプレクサなんですが、 実際にはデマルチプレクサとして使用で8チャンネル10個が必要な回路になります

74 :
>>73
だったら4051じゃなくて14051じゃね
16bit IOエキスパンダー MCP23017
8bit IOエキスパンダー PCF8574 (LCD*I2Cアダプタに搭載してるやつ)
とかでも別にいいと思う
配線大変そうだけどがんばってね

75 :
M5.Lcd.drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x, uint16_t y);

xを-10、yを-20にしたいんですが、uint16_t となってるから負の値は指定出来ないんでしょうか?

76 :
はい

77 :
int16_tならいいのかな
int16_tの負の数ってどう表現したらいいのかな

78 :
>>77
なぜスクリーン上の座標をマイナスにしたい?
画像の描画範囲をずらしたいなら、引数 offX offYで操作するんじゃないの?

79 :
>>78
x, yは画像の描画の原点でデフォだと左上の0, 0になるんですが、
スクリーンのサイズよりも画像が大きいため、画像の右側と下側が見切れてしまいます
そのため、画像の中心がスクリーンの中心に来るようにx, yをマイナス値に出来ればなと思いました

80 :
>>79
Docsを見るとメンバ関数はこうなんだが

void drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x = 0, uint16_t y = 0, uint16_t maxWidth = 0, uint16_t maxHeight = 0, uint16_t offX = 0, uint16_t offY = 0, jpeg_div_t scale = JPEG_DIV_NONE);

引数 offX offYでjpegの描画開始位置を変えられない?ダメだった?

81 :
>>80
わあ!ありがとうございます
ライブラリ見てたら
M5.Lcd.drawJpg(const uint8_t *jpg_data, size_t jpg_len, uint16_t x, uint16_t y);
しか載ってなかったのでsdカードから画像を読み込む関数と違って使える引数がほとんどないんだと思っていました。
試してみます

82 :
>>80
うまく行きました
ありがとうございました

83 :
M5Stackの画面に1秒間隔で時計を更新して表示する関数と5秒間隔で気温の測定とラズパイのデータベースをチェックする関数を作ってマルチタスクで動かしてみました。
画面には時計と気温が表示されていてラズパイのデータベースの値は画面には表示させてないです。

もし、ラズパイのデータベースの値があらかじめ設定した値を超えた場合は時計と気温を非表示にしてデータベースの方だけを画面いっぱいに表示させたいんですがそういうことって可能ですか?
時計の方の更新間隔を伸ばさないと無理ですか?

84 :
割り込み処理っていうの使えばいいのかなと思ったんですがそれってボタンやセンサーのような外部入力だけですか?

85 :
いいえ

86 :
タイマー割り込みを使えばいい。
"arduino 時間 割り込み"でぐぐってみたまい。

というかそもそも君のそのマルチタスクのプログラムというのは
タイマー割り込みを使用しないで出来ているのか?

87 :
いいえ

88 :
割込み使ってれば>>84の書き込みにはならない
ポーリングなら>>83の質問にはならない
いろいろ謎w

89 :
データベース値が設定値超えたら
時計表示をパスすりゃいいだろ

更新と表示を一緒くたにして作るからそうなる

90 :
ど素人の俺からすると
単純にインタラプト入れればいいだけのように思う

91 :
レスありがとうございます
現状ですが、

https://nagatani.github.io/posts/m5stack-dht12-temptoifttt/
を参考にxTaskCreatePinnedToCoreっていう関数を使いました。

んでsetup関数に以下を書きました。
xTaskCreatePinnedToCore(clockTask, "clockTask", 4096, NULL, 1, NULL, 0);
xTaskCreatePinnedToCore(tempTask, "tempTask", 4096, NULL, 2, NULL, 0);

clockTaskは1秒ごとに時間の表示、tempTaskは5秒ごとに気温の表示とラズパイへのアクセスです。
loop関数にはM5.update();だけ書いてあります。

92 :
arduino 時間 割り込み
ググってみました

現状は関数の中で例えばディレイを1000として時計を動かしていますが、そうじゃなくて、
まず5秒毎にラズパイのデータの確認をして設定値より低ければタイマー割り込みという機能を使って1秒毎に時計を表示する関数(clockTask)を動かす、5秒毎にtempTaskを動かすって感じでしょうか?

93 :
タスク間で通信をするんだよ。一番初心者にも解りやすいのはグローバル変数で作ったフラグやデーターを使う事です。

まず、1秒毎に起動するタスクと5秒毎に起動するタスクをつくる。
1秒の方では現在時刻の取得、最新温度とデーターベースから取得された値の確認をして、条件に合致しなければ時刻表示、合致したらアラート表示。
5秒毎の方では温度の計測と保存、データーベースへのアクセスと値の取得を行う。
みたいにすればいい(一例です)。

割り込みを使わず泥縄式にloop(){delay(1000);every1sec();if(count++%5==0)every5sec();}でも
各時間毎の処理内容は同じで出来ます。どうするのが良いかはスキルとプログラムの要求仕様や規模などによる。よく考えてみてw

94 :
timeInfoで201910062143って今の時間を変数に入れるのってどうやるんですか?
dday = timeInfo.tm_mday;って取り出したら06じゃ無くて6になっちゃう

95 :
sprintfで整形すればいいじゃない

96 :
>>95
String imaNoJikan = "";
imaNoJikan = String(sprintf("%04d%02d%02d%02d%02d%02d", timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday, timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec));
ってやったら
invalid conversion from 'int' to 'const char*' [-fpermissive]
こんなエラーが出ました

97 :
>>96
そらそやろ。sprintf の戻り値はintだからやで。しかも引数も間違えてるよ。

98 :
sprintfの出力文字列は第一引数にchar配列を入れて受けるんだよ
ググればすぐ出てくるだろに

99 :
ググり方分からないです…

100 :
>>96
sprintfの戻り値ってintだから当然そうなる。あと第1引数は文字列を格納するバッファー。

101 :
char imaNoJikan[14];
sprintf(imaNoJikan, "%04d%02d%02d%02d%02d%02d", timeInfo.tm_year + 1900, timeInfo.tm_mon + 1, timeInfo.tm_mday, timeInfo.tm_hour, timeInfo.tm_min, timeInfo.tm_sec);
Serial.print(imaNoJikan);
コンパイルのエラーは出ないけどシリアル見てたら再起動繰り返してるっぽいです

102 :
>>101
今やったらちゃんとimaNoJikanの中に入っていました

>>97
>>98
>>100
どうもありがとうございました

103 :
>>101
今の時間の2秒前ってどうやって求めるんですか?

104 :
1970/1/1からの秒数のまま計算するんじゃない?

105 :
今の時間の2秒前のUnix時間を作ってそこから
>>101 みたいに変換する感じですかね?調べてみます

106 :
>>105
JST変換するとき9時間足すのを
8時間59分58秒足す感じで

107 :
DCモータ2軸制御のためにArduinoシールドを探しています。
動かしたいモータはマブチのRS-280RA-2865で、特性は
URLのような感じになります。
https://i.imgur.com/wbAO6r0.jpg

モータは起動時には最大出力で回り、以降はバランスをとるためにほぼ0rpmあたりになる予定です。
ざっと見た感じ、AdafruitのServoShieldしか見つかりませんでしたが、
これでも十分動作できそうですか?

108 :
電源電圧何ボルトなの? 静止時に流れる電流に耐えられれば使える
3ボルトで4.7Aとはまあ結構流れちゃうねぇ。

109 :
>>108
マイコンボードはSTM32の予定です。
電源電圧を複数用意するのは面倒なので5Vを3Vに降圧しようと考えています。

110 :
>>101
imaNoJikanに終端文字の\0が入る領域が足りてないが大丈夫か?

111 :
あるあるw

112 :
Nano Everyの出荷始まってるけど話題ないの?
Pro Miniで充分だから?

113 :
10倍の価値があり、総務省様のお眼鏡にかなえば
そのうち話題になるやろ、どっかでw

114 :
Everyは技適関係ないよ

115 :
うちのEveryはそろそろ車検

116 :
照度を調べたいのでフォトトランジスタNJL7502Lを買ってみました
CdSセルに比べてちょっと向きを変えただけで大きく値が変わってしまって難しいです
必要な抵抗値とArduinoでの計算式が知りたいです
10kΩの抵抗を付けてAnalogReadを1024で割って3.3をかけたらいいんですか?

117 :
>>116
https://www.njr.co.jp/products/semicon/PDF/NJL7502L_J.pdf
半値角が±20度しかない(データーシート4頁のDirectivity参照)。
これはレンズによるものだから、CdSに近づけたいならレンズを削り取る。

照度換算は、10kΩ負荷で5V系ならanalogReadの値に1.48を掛けるんだな。
感度が33μA@100Lx。10kΩ負荷では0.33V@100Lxよって3.3mV/Lx。
float Lux = analogRead(ch) * 5.0/1024 / 0.0033;

なお、15kΩ負荷にすればanalogReadの値が即Lux値になるから小数計算不要で高速化。

118 :
>>117
どうもありがとうございます!
NJL7302L-F3だと±55度だそうなのでこっちの方が使いやすいですか?色が黒なので赤外線用っぽく感じたので。
直列で10kΩ+1kΩ+1kΩ+1kΩ+1kΩ+1kΩと繋ぐと15kΩになりますか?

119 :
>>118
これでやると蛍光灯の室内で130前後でiPhoneのライト当てると986くらい
16bitのADC使った方がいいんでしょうか?

120 :
NJL7502L ピ−ク感度波長 560nm
赤外線 850-940nm
560nmは緑ー黄緑

121 :
大丈夫そうですね

122 :
うーん全く分からない…
廊下持っていくと照明ついてるのに0にしかならない

123 :
>>118 >直列で10kΩ+1kΩ+1kΩ+1kΩ+1kΩ+1kΩ…
OKだよw
でも10kΩを2つ並列にしたら5kΩになるから、これと10kΩを直列にしたら全部で3個で済むよw

>>119
16bit必要かどうかは、何をどう計りたいか、という君の要求仕様による。
7.5kΩを負荷にしたらanalogRead()*2がLux値になるから2047Luxまでいける。最小分解能はもちろん2Luxになる。
晴天時野外とかは数万Lux有ったりするけど、人間用の室内照明で1000Lux越えるのは珍しい。といった条件を総合して考える。

124 :
>>123
>ACD
部屋の電気を消すだけで数値は必ずゼロになってしまうから気になりました
実際には真っ暗じゃないです

125 :
ProMicroを使用してPB,PD,PF合計額18個のピンでdigitalReadをfor文で18回繰り返してるんですが、
もしかして一度、もしくはポート毎の3回とかでバイナリ値で取れたりしますか?

126 :
PORTDとかで取れるんじゃないの?

127 :
>>124
人の目は慣れると1ルクス以下でも見えるからな
計測するなら対数変換するかレンジ切替とかした方がいいんじゃないかな

128 :
>>125>>126
入力を拾うのはPINxレジスタの方だね
PORTxは出力を設定する方
マイコンのポートとArduinoのピン番号の対応をぐぐれば同じポートのピンはまとめて取れる

129 :
半年前に作ったプログラムと回路が難しすぎて、どのように動作しているのか理解出来ない

130 :
あるあるアルドゥーノ

131 :
ど素人です。お手柔らかにお願いします。
VCCから5Vを取り出して大体0.5Vにしたいので分圧しました
10kΩと1kΩ直列にしてグランドにつないでみました
VCC→10kΩ→0.5V取出→1kΩ→グランド
0.5V取り出したら分岐して6個のセンサーを付けて
センサーからそれぞれA0〜A6につなげた場合
A0〜A6各それぞれの入力インピーダンスは10kΩということでいいのでしょうか?

132 :
>>131
違う

というか色々繋ぎ方にも疑問があるのでセンサーの型式と回路図(ちゃんとした記号を使った奴じゃなくてもいい)をあげてほしい

133 :
>>131
それで分圧した場合、0.454v位のはず
また、0.5v-センサ-アナログ入力ってなにか違う気がする
たとえばこんな感じゃない?
(ただし分岐しない前提)
抵抗----0.5v----アナログ入力
     |
    センサ
     |
   グランド

134 :
https://i.imgur.com/y4O9qCp.jpg

135 :
書いてみたけどどうかな

136 :
センサー2個だけだけど最大付けられるだけ付けたい

137 :
アナログ入力の電圧はArduinoの1.1Vを使います
交流なので本当はまんなかの0.55Vが理想なのですが
多少はズレても一定であればプログラムでなんとかなりそうなので0.45Vくらいとします

138 :
「10kΩと1kΩで分圧したインピーダンス」は、テブナンの定理と言って約909Ωです
単に0.5Vの電源を作りたいって場合は、オペアンプを使った手法(単電源で仮想GNDを作るときによく使う)

139 :
>>137
クランプ式電流センサを使用して交流の電源(おそらく100vや200vの商用電源)
の消費電力(流れてる電流)を測定したいって事かな?
基本的な考えはOKだと思いますが、VCCの電圧とArduino内蔵のFVR?(内蔵基準電圧)を使うと測定値が安定しないと思います
今回のような場合、AREFを使って外部のリファレンス電圧を参照した方がよいと思います
例えばVCC-R8K-R1K-R1K-GRDの様な分圧用抵抗を用意する(R8KはR3.3K+4.7K or R1.2K+6.8K等)
R8K-R1Kこの間からAREF用の電圧(1.0V)を得る
R1K-R1Kこの間から0.5Vの電圧を得る
センサが1:2000+R1Kだとして0.7A位まで測定できるかな・・
この回路で同様のセンサーを複数繋いでも問題は(測定結果の誤差など)無いはずです
(クランプ式センサー使ったことがなく、Arduinoも昨日始めたばかりなので間違えてたらごめん!)

140 :
>>137
あと、測定するものが電熱器みたいのならその回路でも大丈夫だけど、
電流が絶えず細かく変化する相手(電熱器以外の殆ど)ならサンプルレートを考慮しながら
クランプセンサの抵抗と並列にコンデンサを繋いで測定する電圧の変化を安定させたほうが無難だとおもう
Arduinoがどの位の性能か把握してなく可能か不明だが、1秒当たり数千回×センサーの数のサンプルが必要なのでは?

141 :
遅くなりましたが皆さんありがとうございます
>>138テブナン定理大変勉強になりました
オペアンプこれから勉強してみます
>>139
確かに安定しないのです
ソフトウェアローパスフィルター入れて無理矢理安定させてる感じです
教えていただいた回路試してみます
楽しみです
>>140
測定するものはAC100〜220V50Hzで電流は1mAから1A程度までで常に変動しています
交流なのですがコンデンサ入れた方が良いのですか?
50Hzなのでサンプリングレートは特に問題ないと思っています
そうですね今暗算したところその程度の回数は必要ですね
回数はまだカウントしたことはないですが
以前計算してみたところ全然余裕で逆に制限を入れるか検討していたところです
回数は実際見た方がいいので確認しようとは思っています

142 :
>>141
>交流なのですがコンデンサ入れた方が良いのですか?
コンデンサを使用するのは手段の一つだと思います、回路次第で他にも手段が有るので・・・
サンプル速度にもよりますがサンプルの間で電流が激しく変動するなら何らかのフィルターが必要だと思います
サンプル速度を上げてなるべく小さなコンデンサを使うことで誤差を少なくできるかと
また、クランプ式の電流センサーのコイルがある程度フィルターとしても機能してるので必要ない可能性も・・
センサーの抵抗にコンデンサはあれだったので(強引)以下のようなRCフィルターはいかがでしょうか?
センサ ーー抵抗ー+ーAD入力   ←(コイルの出力とAD入力の間にまず抵抗を加える)
        |
      コンデンサ     ←コンデンサで細かな変動を減らす
        |
     分圧の0.5V
追伸
>A0〜A6各それぞれの入力インピーダンスは10kΩということでいいのでしょうか?
今回のような回路の場合、分圧の抵抗から電流が流れないので
分圧抵抗は入力インピーダンスには関係ないはずです
後は・・まあもっと詳しい人が教えてくれるかと・・・

143 :
↑図面っぽおいのがブラウザによってズレてるので・・・
コンデンサの位置は抵抗とマイコンの間です

144 :
そんなことarduinoなの?

145 :
交流のまま取り込む訳だから毎秒数百回サンプリングしてソフトで全波整流
してローパスフィルター掛ければいいんじゃね?

146 :
Pythonの場合、何もしない関数やif文の場合、中に「pass」と書いておけばいいんですけどArduinoだとどう書いたらいいですか?

147 :
いくら何でも//くらい自分で調べろよ

148 :
ブロック内に何も書かなければなにもしない

if (true) {
}
else {
}

void func1()
{
}

149 :
回路の質問をした者です
大変参考になりました
ありがとうございます
また質問させていただきます

150 :
本当の素人質問で申し訳ないのですが、
5vをつないで回路を作るときと5vをつながずに回路をつくるときの違いがわかりません
ぜひ教えてほしいです

151 :
ちょっと何言ってるか分かんないっすけど

152 :
>>150
参考にした回路図があるんだろうから画像かなんかで見せて

153 :
>>150
Arduino UNOとかマイコンの出力には5Vが出ているが
LED1個か2個点灯させる程度のドライブ能力しかない
もっとたくさんのLEDやモーターなどを使いたい時は
トランジスタやFETをスイッチさせて、
外部から供給した5Vを制御する回路が必要となる
基準は40mA超えるかどうか

154 :
>>153
質問者の意図に合ってるかは分からないが、推理力に感心した。

155 :
すみません ほんとの素人なので質問もうまくできないんです

質問を変えさせてください
https://i.imgur.com/KKLfe2H.jpg
この画像の回路図ってどうなってるのですか?

156 :
これ絵には書いてないけどArduinoにはACアダプタかUSBが刺さってる前提の回路だね
このままだと電源がないから何の反応もないよ

157 :
>>155
あーうー、13番ポートとGNDの間にLEDがぶっささってるが、5Vが無いと言う意味か?
13番ポートには5Vか0Vのどっちかが出力されるから、5VはArduinoの中から来るんだよ。
 (ちなみにポートにLEDを直接繋ぐのは関心しないのだが、これはそのうち。)
次に、図の上の方にある回路に5V(とGND)が供給されている=5Vが必要なのはなぜかという事だ(ろう)が、
これは7番ポートが入力だからだよ。Arduinoが入力だから、5V(かGND=0V)は回路側で用意する必要があるから、
Arduinoの電源ポートからもらって来来る必要があるんだよ。

158 :
>>156
なるほど!!!!
OUTPUTに指定したピンは電圧の源みたいに考えて大丈夫ってことですよね?

159 :
>>155
あなたの持っている「Arduinoを始めよう」をちゃんと読めばそこにすべて書いてある。
自分が読んで理解した内容を踏まえて質問するべき。
あえてどこからの引用か隠して質問する意図は何?

160 :
>>158
そのとおり!でも、20mA、最大40mA程度しか流すことができない。
そこで>>153さんの言ってることが役に立ってくる!

161 :
>>155
質問の内容が判ったかも
図面のLEDはあくまでボード上の内蔵LEDの代わりに表記してると思われるのでスルーします。
質問は押しボタンスイッチの接続の方法が主に3種類あってそれぞれの違いを知りたいって事だと思います。
1・ 5v(vcc) ― sw ―ポート 加えて sw―ポートの間に抵抗を繋いでGNDに接続
2・ GNDーーswーーポート swとポートの間にに抵抗を繋いで5v(vcc)に接続
3・ GND ― sw ― ポート
上から
1、入門者向きボタンを押したら入力がHIになる
2、ボタンを押したらLOWになる
3、内蔵のプルアップ機能を使用する 2で使用してる抵抗と同等のものがチップに内蔵してるのでそれを使用する(ボタンを押したらLOWになる)

162 :
俺も持ってるけどどこいったかな

163 :
一世帯に一冊は有るはず。

164 :
>>157
ありがとうございます!これのレスのおかげでかなり理解がすすみました!!
>>159
すみません 引用を言い忘れていました
別に他意はないです 本を読んでもわからなかったので質問させていただきました
>>160
なるほど! もっと理解が進んだときに役に立出られるように覚えておきます
>>161
難しいですが、ちょっと考えてみます

165 :
出来ん坊に限ってちゃんと教科書を読まない。

166 :
わかりづらい質問を何回もして申し訳ないのですが、

LEDの方とスイッチの方の回路は別々と考えてもいいってことですよね?スケッチで指示しているから、ボタンを押したときにLEDが付くという認識でいいでしょうか

あとOUTPUTに指定したポートから出て最後にINPUTのポートに戻るような回路はダメなのですか?
OUTPUTが出力でINPUTが入力という理解ならば大丈夫なように思えるのですが、調べてみたらI/Oポート同士を繋げたらショートすると書いてあったので混乱してます

167 :
>>166
別にどうつなごうと勝手にすればいいが、+出力とGND出力をつないだらショートして
大変なことになるだろうことは想像できるでしょ

自分で出力したものを自分で入力するなんてのは無駄だから普通はやらないってだけ。

168 :
5Vと12V、二つのACアダプタのGNDをつないで、回路の5Vと12Vの入力に使ったら、爆発するのかな?

169 :
抵抗なしでLED繋ぐ奴多いな、UNOぶっこわれるのに
壊れ方は爆発とかしなくて、出力状態に関わらずLEDが点灯してしまうとか
別のピンオフにすると壊れたポートもオンになるとか
指でGNDに触れると出力状態が変わるとか
そんな感じの壊れ方になる場合が多いよ

170 :
>>167
>自分で出力したものを自分で入力するなんてのは無駄
普通にやるだろ
センサー入力を止めたい
外部ICでデコードする
シリアル制御線がループバックになってる


171 :
>>166
Q)あとOUTPUTに指定したポートから出て最後にINPUTのポートに戻るような回路はダメなのですか?
A)OK

Q)OUTPUTが出力でINPUTが入力という理解ならば大丈夫なように思えるのですが、
A)OK

Q)調べてみたらI/Oポート同士を繋げたらショートすると書いてあったので混乱してます
A)場合による
INPUTに設定したI/Oポート同士を繋げた=OK
INPUTに設定したI/OポートとOUTPUTに設定したI/Oポートを繋げた=OK
OUTPUTに設定したI/Oポート同士を繋げて、両方のピンが0Vになってる=セーフ
 〃、両方のピンが5Vになってる=セーフ
 〃、片方が0V,もう片方が5Vになってる=アウト

元の文は”I/Oポート同士を繋げたらショートする場合があるので注意”ではないだろうか

172 :
Hi/Loとハイインピーダンス組み合わせてIOピンより多いLED制御するトリッキーな回路思い出した

173 :
俺はラダー抵抗によるDA回路が頭に浮かんでしまうな

174 :
>>171
なるほど!
I/Oポート同士を繋げたら絶対にショートするわけではないのですね!
とてもわかりやすい解説ありがとうございます!

175 :
>>174
なんでかっていうと
短絡(ショート)とは、電位差のある2つ以上の点を、非常に小さい抵抗値の導体で接続することをいいます。
 だからね。

176 :
INPUT_PULLUP使うと簡素化できるよ
https://mag.switch-science.com/2013/05/23/input_pullup/

177 :
>>172
普通のポートから生のLCDを駆動するってのもあったなあ。
https://ednjapan.com/edn/articles/1802/26/news033.html

178 :
>>166
もしかしてINPUTを電流が帰ってくる所だと思ってないか?
OUTPUTから電気が出てきて、INPUTに入っていく分けじゃないぞ

D0→抵抗→LED→D1 のときD0とD1はどっちもOUTPUTだぞ(D0がHIGH、D1がLOWで点灯)
5V→抵抗→LED→D2 のときD0もOUTPUTだし(D2がLOWで点灯)
D3→抵抗→LED→GND のときD1もOUTPUTだぞ(D3がHIGHで点灯)

マイコンの入力と出力だからな

179 :
>>178
2,3行目のD0,D1はD2,D3の書き間違え
読み替えといて

180 :
>>170
なんか誤解してるようだけど、出力ポートをそのまま入力ポートにつなぐなんてのはめったにやらん
というかやらん。

181 :
>>175
ショートのことをよくわかってませんでした
ありがとうございます!

>>178
すみません たしかになんかごちゃごちゃに考えてました
INPUTに指定したピンをdigitalReadなどで情報を読み取り、OUTPUTでその情報を受けてなにかの結果を出すということですよね?
でもこのINPUTピンの使い方がよくわかりません
>>155 にあげさせてもらった回路もどのような電気回路で電圧を読み取るのかわからないです
あと
D0→スイッチ→抵抗→LED→D1
としたときはINPUT OUTPUT の関係はどうなるのですか?

182 :
そもそも足し算や引き算を理解できていないような状態で
掛け算や割り算を理解しようとしているようなもんだから
ここで質問したところで回路を理解するには自ずと限界がある
遠回りのようでも電子回路の基礎知識を身につけた方がいい

183 :
>>180
キーマトリクスで使うだろ
4ピンでスキャン出力して4ピンで入力
4x4=16ボタンの状態を知る
元の質問は
Q> OUTPUTに指定したポートから出て最後にINPUTのポートに戻るような回路回路はダメなのですか?
A> 自分で出力したものを自分で入力するなんてのは無駄
"最後に"とわざわざ書いてるのは
"なんらかの回路を経て最終的に"という意味なんだと思われ
まあ、キースキャンのようなアクティブにセンス信号出す場合には使うよ

184 :
>>181
> D0→スイッチ→抵抗→LED→D1
これはかなりの変化球というか何がやりたいのかわからん
先にスイッチやLEDの定版回路や定石を理解すべき

キャッチャーまで球届かない奴が
いきなりフォークボール投げたいといってるようなもん

185 :
スイッチ押したら光る回路なら
Vcc→抵抗→スイッチ→LED→GND
マイコンいらんねん

186 :
>>182
わかりました!高校までの電磁気の感じとはちょっと違うみたいなのでしっかり学びたいと思います
>>185
たしかにマイコンをただの電池みたいに考えてました

187 :
https://i.imgur.com/KKLfe2H.jpg
UNOに電源供給されてないのは
本当に電池だと思ってたんだなw

188 :
UNOで上に載せるボードとUNO本体に個別に電力を供給したいんだけど、
12Vの組み込み電源から1本線を描くように直列にプラグとコネクタを設置して電気を供給しても大丈夫?
電源の電流容量は余裕あると思う。

189 :
以前フォトトランジスタについて質問したものです
明るさセンサーのTSL2591をUnoで試してるんですが、
https://cdn-learn.adafruit.com/assets/assets/000/017/912/original/sensors_luxtext.png
サンプルスケッチのこの画像だとResolutionが1.00luxとなってるけど自分のシリアルモニタだと0.0010luxとなってます
それが原因なのか分からないけど、部屋のluxの値も60luxくらいととても低いです
Resolutionとは何の解像度を指してるんでしょうか?
サンプルスケッチです
https://learn.adafruit.com/adafruit-tsl2591/wiring-and-test

190 :
>>188
それを個別に供給したと言うのならそうなんだろうね

191 :
>>189
あんたのスケッチ貼らんとわからんやろ

192 :
>>191
スケッチはアイダフルトのサンプルそのままです
スマホのライトを近づけると2600luxくらいまで行くんですけどそれ以上近づけると-1.00luxっていう値になってしまいます
センサのスペックは
/* Dynamic Range: 600M:1 */
/* Maximum Lux: 88K */
らしいんですが…

193 :
>>189
電車内でスマホからだけど
resolutionは分解性能のことだと思う
計測可能な最大値を変える事で低い値の分解性能が上がるはず
この辺の設定で変わるのでは?
TSL2591_GAIN_LOW:
Sets the gain to 1x (bright light) TSL2591_GAIN_MEDIUM:
Sets the gain to 25x (general purpose) TSL2591_GAIN_HIGH:
Sets the gain to 428x (low light) TSL2591_GAIN_MAX:
Sets the gain to 9876x (extremely low light)

194 :
変なとこで改行しちまった(´・ω・`)
TSL2591_GAIN_LOW
TSL2591_GAIN_MEDIUM
TSL2591_GAIN_HIGH
TSL2591_GAIN_MAX

195 :
>>193
Resolutionの数字はライブラリの中で決め打ちされてました
https://github.com/adafruit/Adafruit_TSL2591_Library/commit/640ef967163a4543f172dc425e30fa08b02ca01a
ループ内のsimpleRead()を使った時はゲインやトリムを変える事で数字は変わりましたが、
luxの値を表示するadvancedRead()だと全く変化はなかったです

196 :
>>195
さっき電車からレスした者です
>部屋のluxの値も60luxくらいととても低いです
センサーの向きや状態にもよるけど部屋の明るさなら十分あり得る値かと思います
>スマホのライトを近づけると2600luxくらいまで行くんですけどそれ以上近づけると-1.00luxっていう値になってしまいます
センサーモジュール内のADコンバーター(またはカウンター等)が最大値でオーバーフローしてます
// Check for overflow conditions first
if ((ch0 == 0xFFFF) | (ch1 == 0xFFFF))
{
// Signal an overflow
return -1;
}
以下の部分を変更して感度を調整すれば88000luxまで測定出来ると思います
//tsl.setGain(TSL2591_GAIN_LOW); // 1x gain (bright light)
tsl.setGain(TSL2591_GAIN_MED); // 25x gain

tsl.setGain(TSL2591_GAIN_LOW); // 1x gain (bright light)
//tsl.setGain(TSL2591_GAIN_MED); // 25x gain

197 :
[ 1733721 ms ] IR: 322 Full: 2053 Visible: 1731 Lux: 79.397003

蛍光灯をつけた室内だとこんなかんじで、4項目の数値が出てます。
IRは赤外線、Visibleは可視光線、Luxは明るさだと思うんですが、Fullは何を表しているんでしょうか?
それぞれの単位って分かりますか?

>>196
ゲインを変更してスマホライトをつけたり部屋を暗くしたり試してみました。
ゲインをLowにするとLuxの最小値は1.360000、これ以下だとinfかnanになるから薄暗い場所の数値は見れない。
ゲインをMidにするとLuxの最小値は0.027200辺り、最大値は2600辺り、これを上回ると全て-1.000000。
市販の照度計もこんな感じで、室内の場合、屋外などの明るい場所の場合ってその都度設定を変える感じなんでしょうか?
センサーを真上に向けて手に持って蛍光灯の真下に立って測ると300くらいになりました。

CdSセルだと確実に光源に向けたりしなくても、真っ暗な部屋、薄暗い部屋、パソコンのモニタの光だけの部屋、蛍光灯を付けた部屋、直射日光の当たる明るい部屋などがだいたい判断出来ました。ルクスは分からないにしても、もしかしてCdSセルって優秀なんでしょうか?

198 :
>>197
抜けてました
ゲインをLowにしてスマホライトを当てたら50000くらいまでは出ました

199 :
>>197
IRは赤外線、Visibleは可視光線、Luxは明るさだと思うんですが、Fullは何を表しているんでしょうか?
FULLはFULLSPECTRUMって意味だと思う

赤外線と可視線の両方を足した明るさの値と思われる(単位はLuxでない)
そもそもFULLからIRを引いた数字をVisibleと表示してるため

あとそれぞれの単位は以下の式で使用されてるので単純な明るさの単位ではないと思う
>cpl = (atime * again) / TSL2591_LUX_DF;
>lux = ( ((float)ch0 - (float)ch1 )) * (1.0F - ((float)ch1/(float)ch0) ) / cpl;

>市販の照度計もこんな感じで、室内の場合、屋外などの明るい場所の場合ってその都度設定を変える感じなんでしょうか?
自動的にゲインが調整されると思います
必要があれば、測定値に応じてゲインを自動的に調整出来る様にプログラムすればいいと思いますが・・・

>もしかしてCdSセルって優秀なんでしょうか?
今回の明るさセンサーの場合、光度が直線的に出力されるが(出力というより取得か)
アナログ回路等で電圧に変換しADコンバータで読み取ったCdsの場合、明るさの測定値が曲線的に出力されるためだと思われます

200 :
>>199
LEDの光ってスペクトル分布が独特だから、センサーとの相性とかあるかもしれない
古いタイプの照度計だとLEDの照度が正確に測れないものもあるし、、、
簡易なものは知らないけど測定器としての照度計はテスターのようにレンジ切替がついてるよ

201 :
https://i.imgur.com/Nw2R79x.jpg

202 :
アルデュイーノを使って電子工作をしていますが、クロック周波数が最大16MHzしかないので水晶振動器を使いたいと思っております。


かし、配線の仕方やプログラムの作り方がわかりません。

またプログラムはサンプリング周波数にあったdelay をループの中に突っ込んでいますが、正確な周波数で命令を実行するのはこのやり方でいいのでしょうか?

またアルデュイーノは最小のdelay設定がマイクロ秒までしか設定できないですがマイクロ秒まで設定できるようにできるのでしょうか?

長文失礼しました。

203 :
>>202
落ち着いて読み返して再質問しろ
用語の使い方が支離滅裂で何言ってんだかぜんぜんわからん

204 :
餅突け。
まずは、>>1 を欲嫁。
何をやろうとして何をしてその質問に至ったのか、具体的に、出来れば図表、蛾を添えて詳しく。

205 :
お、推敲してたら被った。

206 :
推敲したのに餅突けってw
「餅搗け」な

207 :
>>202
>クロック周波数が最大16MHzしかないので水晶振動器を使いたい
そう思った理由を書いてみ
クロックを変更せずに解決できる予感がする

208 :
クロックを変更するとブートローダも改造しないとスケッチが転送できなくなるんじゃなかったっけ?

209 :
アドバイスありがとうございます。
目的は30Mhzでデータのサンプリングです。アルデュイーノでは最大クロック周波数が16Mhzなので、外部から早い周波数の信号が必要ですよね?
そこで、水晶が良いのではないかと思った次第です。
ちなみに、自分は電子工作初心者です。
本職は設備のメカ設計をしております。

210 :
プログラミングについても教えて頂けるとありがたいです。

今までは、そこまでサンプリング周波数の高いプログラムを作ったことがなく、delay関数を使って希望のタイミングでサンプリングをしていました。
しかし、高周波サンプリングをする場合、delay以外の命令実行に時間が掛かるとお聞きし、希望の周波数ではサンプリングするのは難しいと聞きました。なので他の命令の有無に関わらず、正確にサンプリングを行えるような関数があれば教えて頂きたいです。

211 :
次の患者さんどうぞ。

212 :
オモチャなので無理です。

213 :
>>210
本当に「正確」にきっちりとやりたいのなら単体DACを備えたシステムを組む必要があるよ。
ちんけなワンチップマイコンひとつでやろうというのは無理。

214 :
>>210
どのArduinoか知らないけど、ポピュラーな所で328Pだとして最大動作クロックは20MHz
無理だということはお分かりいただけますかな?
専用のADCチップをお使いください

215 :
さっきEnergiaを覗いてきたんだけどさ もう一年以上もVer.UPされてないね
やっぱARM系は STM32duinoの方が人気があるってことなのかな

216 :
30MHzって電波をサンプリングするの?
何がしたいか全然分からん
まあ俺も初心者だし何も分からんけど

217 :
デバイスのデータシート読んでね
使える最大周波数は決まってるから
その調子だとDCモーターをGPIOに直付しそうだなw

218 :
>>215
ああ、あの食パンにいろいろはさんでパックにしたやつな
昔前澤の女が宣伝してたやつ

219 :
30MHzサンプリングはマイコンじゃむりだなRF系のデバイスかFPGAが必要
金があるならADCのDSK買えばpcには取り込めるかななにがしたいかしらんけど

220 :
dskじゃないかevmか

221 :
何を観測するか知らんけど、30MHzサンプリングだとデジタルオシロの領域だなぁ
対象が電圧だと仮定して、観測した結果を使ってアクションを起こすのでなければ、デジオシをレンタルしたほうが早そうな?

222 :
色々と助言頂きありがとうございました。

今さらですが、用途は超高速モーターの回転数サンプリングです。

外注で回転数の表示はしてくださっていますが、出来れば自社で作った基盤でもサンプリングしてみたい、といのが事の発端です。

223 :
モーター回転数のサンプリングデータで予知保全 とかもしたいので

224 :
>>210
実現したいサンプリング周波数の為にはクロックは30MHzが必要とも取れたんですが、
 1.観測するのが1/0のデジタルかアナログか
 2.周波数 = 観測する信号 or サンプリング or cpuクロック
がわからないと
arduinoで作ったがもう少しパワーが欲しいと言う話なら、stm32duinoはどうでしょうか、こっちはmax 72MHz

225 :
>>224
1.観測するのが1/0のデジタルかアナログか
 2.周波数 = 観測する信号 or サンプリング or cpuクロック

1.デジタル信号です。
2.モーターの軸を10vに帯電させ一回転ごとに軸と銅線(ブラシ)が接触するように考えております。多分、矩形波のような信号になるのかな?

今持っているのがアルデュイーノunoなので、
出来ればそれでテストしたいです。

水晶使っても無理ですかね?

226 :
30kHzってオチか。

227 :
周波数カウンタでいけたりして

228 :
サンプリングじゃなくて割り込み使えば、クリスタル変えなくてもいけます。「avr 周波数カウンタ」で探せば良いかと。
それともモーターからはキレイな矩形波が期待出来ないから、サンプリング周波数を上げてデジタルフィルタ的な事をやろうとしてるのか

229 :
デジタルならArduinoUNOでも簡単な外付け部品で30MBit/Sでのサンプリングも夢じゃないかも
つまり
・外部に30Mhzのクロックを用意
・クロックを8ビットのシフトレジスタに直結
・外部のクロックを1/2にしてArduinoを15MHzで駆動
・命令4サイクル分でIOポートからSRAMに蓄積

230 :
>>225
接触子では難しいんじゃ無い?光学エンコーダかマグネットローター+ホール素子でしょ。機構屋さんだよね?
そもそも既に回転数の表示が出来てると言う事は、モーター内にセンサが有るのでは?

231 :
>>225
回転数ならパルスでデジタルだから、今までと話が全く変わるぞ。
例えば120000rpmとしてもパルスはたかだか2kHzで、マイコンにとってはあくびが出るような話なんだけど…。
そのあたり、何が測定したいのか自分で認識できてる?
あんたみたいに情報を小出しにしてるとラチあかんわ。

232 :
>>226
それ、当たりかもw

233 :
2kHzとかそんな話だとガックシだなw
もーちょい ってレベルじゃなく、もっと詳しく書いてほしかったな。
回転数の情報も出てこないしなぁ

234 :
モーターごときの回転数で30MHzってのがいったいどっから降ってきたのか
また永遠の謎で終わるんだろうなあ、毎度のことだが

235 :
【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
 詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね

236 :
>>234
1回転ごとに検出して30MHzって
そんなモーターが存在するの?
信じがたいんだが

237 :
1000カウント10000rpmで167KHz。

238 :
予防保全でモーターの振動を測定してるのはだいぶ昔に某大手メーカーで見たことあるけど。
回転数じゃなくて振動を測定したいんじゃないのかな。

239 :
回転のムラを測定したいなら30MHzというのも納得いく。

240 :
>>237
0.16khzだよ

241 :
>>240
そうなの?

242 :
もう一度計算してみたけど、やっぱり167KHzになるな。

243 :
だってお題は

>>225
>一回転ごとに軸と銅線(ブラシ)が接触する

だもの。

244 :
>一回転ごとに軸と銅線(ブラシ)が接触するよう

こんなことまじめに書いてるお方なんだから、動くもの作れるわけない
終了

245 :
減速機歯面の欠けとかを検出して故障前に保全したいって話じゃないのかな。

246 :
僕はむしろ、保全現場の人がArduinoに目を付けたのは頼もしく思うけど。

247 :
決まって後出し三昧、その挙句質問者はトンズラ
なのに必ず、ただ勝手な想像で話を膨らまして遊ぶだけの奴が登場して語り始める
毎度毎度楽しそうだなと思う

248 :
えっ?そうやって楽しむスレでしょ。

249 :
だからそう言ってるじゃん、楽しそうだなと
何が不満なの?

250 :
そうやって気取ってないで、仲間に入れよ。

251 :
それほど馬鹿じゃないので

252 :
質問スレには技術者しかいないのが欠点だろうな。
営業板から人を派遣してもらえないだろうか。

253 :
>>225
モータ回転数のカウントは今は専用ICでやるのが普通
http://www.zenic.co.jp/products/ic/zen2024f.php
また、高速回転する軸を接触式のエンコーダ(?)でパルス検出するのは論外
パルスはノイズだらけになるし、磨耗で直ぐに故障してしまう
通常は磁気や光学などの非接触式エンコーダを使う

254 :
>>239
昨日、質問をさせてもらったものです。

おっしゃる通り回転数ムラもみれればと考えております。回転数を1/10000の精度で見るために、10ns周期でサンプリング出来ればと構想してます。

255 :
ずぶのど素人だけど
回転数はシーケンサーでできると思うよ
保全目的なら
回転数
振動
音の周波数
とか関係してくるだろうから
どうしてもArduinoなら
それぞれのセンサー取り付けて
表示のLCDつけて
データシート通りにプログラムすればいいだけ
難しくない大丈夫

256 :
>>254
また後出しか
ひどいなこれ

257 :
>>254
サンプリング とか 見る とかいうことばがあいまい
最低限として1回転毎の時間を得たい
 その解像度を10nsにしたい ということと仮定して得た時間のデータをどうしたい? Logを取りたいのかメータ表示で良いのか 規格を超えたときに信号を出すのか?
 
回転ムラを得たいとして
1/10000というのが 例えば10000回転の時間をチェックできればよいのか、
1/10000回転を個々にデータ取得したいのか そのデータを保存するのか、メータ表示か、規格を、、以下略。

258 :
>>257

1/10000回転を個々にデータ取得したいです。

259 :
>>258
あと、logをとりたいです。表示は無くても問題ありません。

260 :
1回転に1パルスじゃ1/10000回転の個々のデータ見れんだろ
それは1回転の時間を10000で割っただけのものに過ぎん

261 :
中古のカウンターからGPIB経由でデータ取りにいかせたら?。
横川のTC110あたりで十分。

262 :
回転パルスでリセットするカウンタ作って(ここはハードでやる)それの値を取り込めばいいだろうそうすればレート=回転数だ

263 :
制度が10nならカウンタのクロックは100MHzだからちょっとしたものだな CPLD+Atmegaでできるかな 回転検出にはホール素子でも使うかな カウンタの桁あふれに注意だな

264 :
ログ取るなら記憶部もそれなりのものがいる RAMじゃないと間に合わないかな そのさいずは とかいろいろ考えることはあるな

265 :
>>262
だな

1回転の時間計測したいのに
ADCで電圧から得ようとしている
間違った手段を練っても目的に届かないよ

ログ採りたいとか言ってるけど
1秒間に1万データ全て残す必要は無くて
最大値と最小値と移動平均を0.5秒毎に更新みたいなもんでいいんじゃね

266 :
>>254
コイツ、完全にカマッテチャンだろ
>目的は30Mhzでデータのサンプリングです。
>10ns周期でサンプリング
とか、適当に吹いてるだけw

267 :
>>254
そろそろマジレスすると
モーターの回転数を取得する方法だけど
手段はいくつもあるので参考までに
attachInterrupt()を使いモーター1回転毎に割り込みを使う(1回転1パルス前提)
モーター用のカウンターを用意
最初にモーター用のカウンターをリセットする
現在のタイマーを取得する micros()関数でμs単位で取得できる(分解性能は4μs)
モーター400回のカウントする
400回に達成したらmicros()を使い前回のタイマーからに経過時間を計算する
60,000,000 / 計算した時間(μs) * 400 = RPM
回転数の分解精度を上げる場合はカウント数を増やす
質問者の言う所の10nsの分解精度があるはず
また別の手段としてコンペアモジュールを使い400や任意の回数をカウントさせて割り込みを行う手段も有る
(あと、arduinoではLチカしかやった事ないので間違ってたらごめん)

268 :
>>267
方法としてはポピュラーなものだけど
>10nsの分解精度があるはず
ってのがよくわからないので説明よろしくお願い
質問者ではないですが

269 :
>>202
この程度の理解度しかないから
ほんとの1から教えないと分からないよ多分

270 :
こういうひとはいくら教えたって馬耳東風だ
自分勝手に妄想して言い散らすだけ

271 :
横から質問です。
外部割込みって、周波数の大きいものはどの程度までカウント可能ですか?
あまり速いとHighとLowの区別がつけられなくなると思うんですがその限界は?

272 :
連投すみません。
割込みルーチンの処理速度以上に拾っても何もできないから無意味なので
そっちがボトルネックってことでいいんでしょうか?

273 :
arduino ideのコンパイルが毎回遅くて困っているのですが、皆さんは何か工夫して早くしているんですか?

274 :
>>271
目的が周波数やパルス幅の計測ならプログラムでカウントする事は一般的に行わないです。
タイマーにそういう計測機能が各種あるからそれを使って、
計測が終わったらタイマーに割り込みを発生してもらって、CPUは計測値だけ頂くのです。
AVRのカウンタークロックは最大で1/1システムクロックだから、16MHzなら16MHzです。

ボトルネックは仰る部分にもなりうるのですが、要求仕様によりけりです。
デジタルオシロ(安い奴)のように画面に表示してる部分の前後に表示されていない部分(取りこぼし)がある、
みたいな仕様を許容するなら逃げようはあります。
希に起こる特異な現象を確実に拾い上げる、みたいな用途では問題になりえます。

275 :
>>273
内蔵しているgccのスピードなので根本的にはしょうが無いように思いますが、
ライブラリからなんからいちいちフルビルドするのをやめさせるという方向で設定する方法はあるようです。
"arduino gcc 高速化"でググってみるとよいでしょう。

276 :
>>268

おそらく質問者は回転数(分or秒)を求める手段として1回転の時間を測りそれを元に計算しようと試みたと思われる
1回転の時間がms単位では回転数の計算に使えない
例>1ms単位なら計算で出せる回転数は1000,500,333,250,200,166・・・回転/秒の刻みでしか計算できない
もっと細かな単位(ns)なら細かな回転数を計算出来ると思ったよう思われる

質問者の
>おっしゃる通り回転数ムラもみれればと考えております。回転数を1/10000の精度で見るために、10ns周期でサンプリング出来ればと構想してます。
この書き込みを翻訳すると
回転数を確認するために1回転の回るのに掛かる時間を1/100000秒単位で測りたい
(1/100000秒は10μsで10000nsなんだけど・・・・)

質問者の言う10nsってのが1回転当たりの時間の刻みの可能性が高いのでそれを求める手段を考えてみた

10nsの分解精度とは・・・
ArduinoUNOには起動後から常に動いてるカウンターが有りmicros()関数でμs単位で取得できる
ただしこれは4μs単位で動くらしく(ネット調べ)1μsでは取得できないらしい?
4μsを10nsを直すには1/400にすれば良い事になる
つまりモーター400回転時間のμsを400で割れば1回転の時間が10ns刻みで計算出来る事になる

277 :
>>271
割り込みだと割り込み後の処理によって計測可能な速度が大きく左右されるので具体的な速度は出せません。
UNOだとして単純にカウンターの変数に1足す(インクリメント)するのと数値の比較なら30サイクルから100サイクル程度じゃないでしょうか?
アセンブラで詰めればもっと早くなるとは思いますが
16Mhzで100サイクル必要なら最大160KHz程度になりますがもっと少ない可能性があります
今回の質問のようなモーターの周期なら十分に対応可能な速度で動くと思われます

また他の人も回答してますがUNOにはハードウェアでパルスなどの入力をカウントする機能が備わってます
そちらを使用すればより高い周波数のパルスをカウント出来ます

278 :
>>274

Each half period of the external clock applied must be longer than one system clock cycle to ensure correct sampling.
The external clock must be guaranteed to have less than half the system clock frequency (fExtClk < fclk_I/O/2) given a 50/50% duty cycle.
Since the edge detector uses sampling, the maximum frequency of an external clock it can detect is half the sampling frequency (nyquist sampling theorem).
However, due to variation of the system clock frequency and duty cycle caused by oscillator source (crystal, resonator, and capacitors) tolerances, it is recommended that maximum frequency of an external clock source is less than fclk_I/O/2.5.
An external clock source can not be prescaled.

AVR未経験なので間違いの可能性が高いですが、上記の説明を読むと
理想なパルスが入力出来たとしても6.4MHz程のようです
実際の状況ではより低くなると思われます
カウンターに非同期モードが有れば16MHzより高速なパルスをカウント出来る可能性も有ります(未確認)

279 :
>>276
とても素敵な「分解能」ですねw

280 :
400回の合計を1/400にしたら平均しか出ないんじゃないの?
モーターの安定性って早くなったり遅くなったり回転ムラだから

そもそもモーターって
一般モーター 8000rpm (133rps) 1周7.5ms
高速モーター 16000rpm (267rps) 1周3.75ms
超高速モーター 300000rpm (5000rps) 1周0.2ms(=200us=200000ns)
仕様として0.5%のふらつき検出でいいような気がするんだけど

281 :
4μ毎にしかパルス測れないものを
400回測って1/400しても意味ねーだろ

282 :
時間軸の分解能は下がるだろう。量子化の分解能はちょっと上がるかな

283 :
リトルインディアンだのバルスだの
スレチしか居ねーな

284 :
>>282
アホか
1回に1パルスしか得られないんだぞ?
1回に〇〇パルスという数値が得られるわけでも何でもない

285 :
しかしまーぷりみちぶな検討ダナー

286 :
>>284
そのパルスの間隔を高精度に測るって話だよ。

287 :
モーターからセンサで拾った信号なんてノイズ乗りまくりだぞ、パルス化で位相雑音になってジッタ出るのに10nsの精度なんてあり得ない。仮に精度が出たとして、負荷に繋がってるモーターだよ、その精度で何を見るんだよ。
からかわれてんだよ。

288 :
今回は大漁だなぁ

289 :
純正Esp32 Wroom 32d DevKitCです
Aduino IDEからだと書き込めるけどVSCodeだと、
Connecting......で失敗してしまいます
VSCodeでもほかのArduinoだと書き込めます
あと、コンパイルの前で

2019-10-31T12:38:52.604Z WARN p.a.h.BoardCloudResolver:64
[cc.arduino.packages.discoverers.serial.SerialDiscovery]
Fail to get the Vid Pid information from the builder response code=404

こんなのが出てかなり時間がかかります
この2つどうやったら治せますか?

290 :
質問者です。
様々な助言ありがとうございます。

理想は20000rpmのモータの回転ばらつきを
0.01%の精度で見れればベストです。つまり20001rpmと20000rpmが
識別できればいいのですが…
その場合隣り合うパルス間隔が
20001rpm=333.35rps(pps)→2.99985ms/pulse=2999850ns/pulse
20000rpm=333.33rps(pps)→3.00000ms/pulse=3000000ns/pulse
この違いを識別しなければならないと考え
10ns単位でlongの変数へカウントさせ
299985が入っていれば20001rpm
300000が入っていれば20000rpm
というアルゴリズムでできればと思っております(100nsでもいけるのかな?)

現実的かどうかは素人なのでわからないですが…
低価格でそれなり分解能(せめて±0.1%)で測れるのであれば
この方法にこだわりはありません。

291 :
>>290
それって1秒あたりの平均値のRPMじゃダメなの?

292 :
なんでもいいからやってみなよ
やらなきゃ何にも始まらないよ
はじめの方でdelayがどうこう言ってたけど
そのスケッチ見せてみなよ

293 :
>>290
奇麗な波形がえられれば20000rpmなんてせいぜい3ms周期だからCPUのスピードから
したらどうということはない。
20000prmを1rpmの精度だったら0.01%ではなくて0.005%で150nsだよね。
16MHzクロック(62.5ns)で16ビットカウンタを自走させて1回転ごとの割り込み
でカウンタを読み取れば充分のような気がするけどね。
14640rpm以下になるとカウンタがオーバーフローするから回転数によって
クロックを下げる必要があるけど。

それよりも
>モーターの軸を10vに帯電させ一回転ごとに軸と銅線(ブラシ)が接触するように考えております。
このやりかたで奇麗なパルスが得られるとは思えない。
チャタリングのようなものが盛大にでてフィルタ入れたら何を測ってるのか
分からなくなりそう。
まずはセンサーの再検討が必要と思う。

294 :
>>291
Arduinoでやるならがそれがいいとこだね
>>293
「充分のような気がする」の根拠が知りたいなあw

295 :
>>291
平均値は分母をどのぐらいとるかによりますが
1パルス毎で判断するよりリアルタイム性が薄れる(精度が良くない)
と思います。
簡易的な方法で良いとは思いますが、
おそらく、10nsの案がダメな場合は精度を犠牲に
平均、もしくはメディアンでみることになろうかと思います。

296 :
ふつーホール素子使うよね
回転の検出ってさ
それか光
非接触でやらないとな

297 :
>>296
ホール素子か光で試してみます。

そのセンサーで行えばノイズが乗りにくいという認識であってますでしょうか?

298 :
ブラシよりはるかにマシだがカウンタに入るまではアナログ回路だってことを忘れんように

299 :
個体のバラつきとか全然考えてないだろ
スペック上2万rpmで買ってきたモーターは
定格電圧で1割くらい平気で違うぞ、
10v流して21000rpmだったり19000rpmだったりする
個体ごとに10.2vにしたり9.7vにしたり調整が必要なわけね
20000rpmで安定回転させるにはpwmで電源制御する必要がある

電源制御で狙い通りの回転数が得られたとして色んな問題が発生する
例えば
毎周回ばらつきがある 3005us 3001us 3011us 3007us ...
数秒周期でうねりのように加減速する
ばらつきを平均化して、うねりをフィードバックでつぶすと
更に安定化できると思う
そこいらが理解できたら、DVDドライブやFDD安定走行用ICのほうがはやいじゃんとか
思えてくるんだとおもわれ

300 :
まあそこまで行くことは無いと思われ

301 :
質問者のお題では
>>222
>色々と助言頂きありがとうございました。

>今さらですが、用途は超高速モーターの回転数サンプリングです。

>外注で回転数の表示はしてくださっていますが、出来れば自社で作った基盤でもサンプリングしてみたい、といのが事の発端です。

だから、必要なデータは取れてるというか、やり方が知りたければその外注に聞けよで終了の案件。

302 :
>>299
こんなに回転数に拘るモノなんだから、クローズドループで制御してると言うことになる。外注に作らせたものには回転数が表示されると言ってるでしょ。
モータには既にセンサは内蔵されてるから、センサ出力を分岐させる方法か、外注の制御器にリードアウトをつけてもらうのを検討するのがスジ。

303 :
まあこんなところに訊く時点でお察しだけどな

304 :
>>290
http://codepad.org/B3qhDgdb
適当なスケッチ作ってみた
Arduinoはこれ以外にはLチカ経験のみなんで色々間違ってると思います
詳しい方の補足や修正お願いします
スケッチの内容は293の方の説明と同様の物です
一応PICから約332HzのPWM出力させて期待した動作はしました

ちなみに20000PRM付近の刻みは以下の程度になるはずです
(スケッチでは小数点以下は第一位まで)
20000.83
20000.42
20000.00
19999.58
19999.17

305 :
http://codepad.org/pm0bXdaB
一箇所間違ってたと思うので修正・・・(´・ω・`)

306 :
PICとarduinoでコード書いているところ見ると
どうみても自分で書いたものではありませんね。

307 :
arduino nanoとかでできるでしょLチカ、PWM

308 :
ふと思ったのですが、PCに直接センサーをつけてデータをサンプリングすることって
できるのでしょうか?
アルデュイーノでセンサーから情報をもらい、それをPCにシリアルで送るという
のが普通の方法?なのでしょうか?

309 :
>>308
できる
GPIOボードや色々ある

310 :
USBがあるじゃないか。

311 :
ATTiny85が乗ってるdigisparkオススメ

312 :
最近のノートPCでは省略されている事も多いが
PCにはCOMポートとLPTポートがあって、

COMポートはシリアル入出力
 本来はモデムやXYプロッタを接続していた
 温度計やソーラーチャージャーやMP3プレイヤーなど

LPTポートは8-11bitのパラレル入出力
 本来はプリンターやスキャナなどを接続していた
 GPIOのように使うならこちら

313 :
>>308
OSが走ってるから正確なタイミングでは無理。
外部でサンプリングしたものを取り込むしかない。

314 :
速度による。簡易的にはオーディオ入力使うとかする応用も

315 :
この質問者頭おかしいよね
質問に答えてくれてる人は全スルーなのに
聞きたいことだけ聞いてくる
まるで人工無脳のようだ

316 :
今頃気づいたのかよ
むしろそれに返答してる連中の神経の方が怪しいと思うわ

317 :
> PCに直接センサーをつけて
もはやArduinoと何の関係も無いな
PCの使い方について他で学べ

318 :
おもしろい作例なんかない?

319 :
「PCに直接センサーをつける」自体があいまい。
USBインターフェースを備えたセンサーなら普通につながる。

320 :
>>316
Lチカマイスターが張り切ってるからね。
モータや動力知ってそうな人の指摘はガン無視だから。

321 :
M5stackの話題はスレチ?

322 :
なんだか某scaの逆を行ってるなw

323 :
タイマーを作りたいんだけどいい方法が見つからない
用途は
・場所G:給水ポンプの清掃→14日後に報知
・場所R:スマホの充電→6日後に報知
・場所G:植木A群に給水→5日後に報知
・場所P:植木B群に給水→3日後に報知
・場所K:炊飯の開始→45分後に報知
・場所K:圧力調理の開始→30分後に報知
・場所B:風呂の給水→25分後に報知
・場所K:コーヒーの開始→12分後に報知
方法1)
 5箇所にWifi端末を設置し、ボタンを押すとサーバーに送信、スマホにpush通知
方法2)
 5箇所に1個30円のIDタグを設置し、モバイル端末で読み取り、端末上で報知
方法2改)
 5箇所にQRコードを印刷して貼り付け、スマホだけでなんとかする

もっと良い方法があれば教えて欲しい

324 :
方法3)
8個ボタンの装置を持ち歩き、規定のボタンを押す
(装置を持ち歩くのが絶対ネックになると思う、それは方法2でも同じか

325 :
通知の発信者と受信者が不明

326 :
なのでアドバイスできん

327 :
・場所K:炊飯の開始→45分後に報知
・場所K:圧力調理の開始→30分後に報知
・場所B:風呂の給水→25分後に報知
・場所K:コーヒーの開始→12分後に報知

ここらへんは100均のタイマーをセットしてポケットに入れといたらいいんじゃねw?

328 :
そのタイマー誰かに売るのか?

329 :
質問です
9v600mAのACアダプターが余ってるのでArduinoに挿して
Arduinoの5vからマイクロサーボを動かしたいんですが問題ないですか?

330 :
>>327
数分後に報知する系統と
数日後に報知を分けろというアドバイスだな
ありがとう検討してみる

331 :
>>323
iphoneなら、上4つはリマインダーに登録すればどうでしょうか、○○日おきに通知と言うのができます。
下の4つは、タイマーなんだけど、Timeglass timer & stopwatch アプリで「コーヒー」「圧力鍋」等と言う名前で定型タイマーが登録できます。
電子工作に絡まなくてすいません。

332 :
>>329
マイクロサーボに流れる電流がどれだけか、と
Arduinoに載ってるレギュレータが何なのかで問題の有無が変わりそう。

あと、9V 600mAのアダプタがいわゆるトランス式なら、レギュレータの
負担はもっと重くなるかもしれないから注意。自分で判断できないなら、
そのACアダプタの写真(3方向ぐらいから撮影したものならなおよし)を
出してみて。

333 :
>>331
折角のご提案だけども、スマホを持ち歩く習慣がナインだ
>>327氏の提案で、
キッチンに4つボタンのタイマーを置いておいて
イベント発生したら該当ボタンを押して、その装置を持ち歩く、
終わったら元の位置に返す
これでかなり便利になりそう。
数日イベントは"今日何したか"思い出しながら自作アプリのボタン押すかと
思ってます。でもこれはめんどくさくなってすぐやめそう

334 :
>>332
Arduinoにはレギュレーターがついてて5vに降圧してくれるものだと思ってました・・

アダプターは重いトランス式です
降圧には向かないんですね
勉強になりました

ありがとうございましたm(_ _)m

335 :
>>334
サーボもそうだけど、モーターのような大電力を消費する回路は制御回路とは別に電源を供給するのが常道になっている。
UNO R3を例にすれば、搭載のNCP1117ST50T3Gはスペックでは5VでMax1Aを出力できるが、それはあくまで絶対最大定格の話し。
9Vから5V600mA取ったら(9V-5V)*0.6A=2.4Wも発熱する事になるから、基板上で十分なヒートシンクもないのにこのレベルの放熱は無理。
トランス式ACアダプターの出力は脈流で、9Vとは9Vを割り込まない事を最悪でも保証できるという意味で、実際の電圧は9Vより高いからさらに条件が悪い。
したがって、発熱をせいぜい1Wに押さえるとしたら、使えるのは200mA以下だろう。

336 :
>>334
早合点は禁物です。
っていうか、初心者の人は、OKかOKでないかのイチゼロ思考に陥りがちですが、
たいていのことは、あいまいな中にあいまいな答えがあります。(明確にシロクロがつくこともあります)

Arduinoにはレギュレーターがついてて5Vに降圧してくれるものもあります。
でも、載っていても、どれぐらいの電力損失や電流が許容されるかは、載っているレギュレータ次第です。

「降圧には向かないんですね」とカタに嵌めたような理解は危険。スイッチングノイズを嫌う用途なら
積極的にレギュレータとともに使います。
あなたの例で問題になるのは、トランス式ACアダプタの実際の電圧が確定しないので、
仮にレギュレータの型式やマイクロサーボの電流がわかっても、大丈夫そうかどうかが判断できないことです。

337 :
>>334
> Arduinoにはレギュレーターがついてて5vに降圧してくれるものだと思ってました・・
9V→5Vしてくれるけど、5V/200mAが作り出せる程度の能力しかない
代表的なマイクロサーボSG-90は5V/250mA、
モーター系は起動時に消費が増えるので倍の500mAを見込んでおく
マイコンは多くても50mA程度
200mA<550mA 全然足りない
200円で5V/1AのACアダプタ買って全体供給したほうが幸せになれるぞ

338 :
>>335, 336
トランスタイプのACアダプタでも安定化しているのもあるけど
https://www.marutsu.co.jp/pc/i/111209/

339 :
>>338
それは存じておりますが、質問者が所有してるのがどっちか解らない以上は
条件の悪い方を前提にするべきでありましょう。
わわざわざ問い糾してどっちか判明してからでないと答えかねる、という案件でもないし。

340 :
情報量って大切ですね。

341 :
スマホからでもなんでもいいから写真をupしてほしいよねー
https://imgur.com/upload

342 :
スマホでBB2C入れるとすごく楽だけどね

343 :
Arduino Nanoとサイズとピンが互換のNordicのBLEのボードってありますか?

344 :
ラインドライバのオムロンロータリエンコーダを知人から貰いました。
これarduinoのGPIOに繋げてパルスカウントしてみたいなぁと思っているのですが、ABZそれぞれにプラスとGNDがあるのでどう配線すればよいかアドバイスをいただきたいです。
こんなモジュール&#22169;まさないと、とかあれば是非。

345 :
型番は?

346 :
>>345
E6C3-CWZ3XHとあります。

347 :
>>346
何十メートルもコード延ばしたいとかじゃなきゃ適当に終端して非反転の方から拾えばそのまま使えるんでね
別に長くするわけじゃないけど差動信号を扱ってみたいとかならラインレシーバが必要

348 :
とりあえずくるくる回して試したいだけなら
まず
黒と黒赤を1KΩの抵抗で繋ぐ
白と白赤を1KΩの抵抗で繋ぐ
橙と橙赤を1KΩの抵抗で繋ぐ
んで
青をArduinoのGNDに繋ぐ
茶をArduinoの5Vに繋ぐ
これで
黒からA相
白からB相
が取れるから適当にネットに落ちてるロータリーエンコーダのスケッチの通りArduinoの入力この2つに繋げば回して遊べると思うけど

349 :
>>347
>>348
ありがとうございます。
帰宅したら試してみたいと思います。

350 :
出先なんでid変わってました

351 :
アドバイス通り繋いでみたらあっさりパルス拾えてしまいました。ありがとうございます。
これで4逓倍カウントとかフリーランカウンタで低速検出処理とか夢が広がります。

352 :
イーサネットアダプタとして、W5100、W5500、ENC28J60の3種をproMicro互換機に
つないでみた。
ENC28J60が安いけれど、半日くらいでハングアップしてしまう。
チップが触れないくらい熱くなるのでヒートシンクを付けてみたが効果なし。
別個体でも同様
W5500はほんのりあったまる程度でハングすることもなく連続でもOK。
Eathernet2.h を使えと書いてある記事もあるが、Eathernet.h で普通に動いた。
2個テストして問題なし
W5100は古いせいか小さいモジュールが無い。
以上チラウラでした。

353 :
小型のW5100探したけどこのあたりかな

¥ 465 | トップミニ W5100 LAN イーサネットシールドネットワークモジュールボード arduino のための最高の
https://s.click.aliexpress.com/e/5m8mpi80

¥ 941 | ナノ W5100 イーサネット Lan ネットワークモジュール Arduino のためのマイクロ SD サポート TCP UDP V3.0 R3 UNO メガ 2560
https://s.click.aliexpress.com/e/efBZu8vw

354 :
Arduinoのプログラムの書き込み速度は何kbpsなのでしょうか?

355 :
こんばんは。
Arduino UNOのタイマー割り込みでtimer1とtimer2の2つを併用してなおかつ同じタイミングで割り込みがかかった場合どちらが優先されるのでしょうか?
それと、sirialprintですが、例えば以下のように
sirialprint("1");
sirialprint("2");
sirialprint("3");
と記述した場合シリアルモニタでは
「123」と表示されるかと思いますが、例えば以下のように
sirialprint("1""2""3");
と記述した場合も
「123」と表示されるのでしょうか?
またそうであった場合処理速度は早くなりますか?
素人丸出しで申し訳ないのですがご回答頂けると嬉しいです

356 :
>>355
1つめ
Interrupt Vector Definitionでググれ。
2つめ
やってみりゃわかること聞くな。

以後、質問は1件ずつにして。

357 :
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね

358 :
ArduinoとリレーでAC電源機器のオンオフを試してます
ACのケーブルの他にArduino用のDC電源ケーブルも必要なんですが、
AC電源一本でやるにはどうしたらいいですか?
Sonoff BasicだとAC電源だけで済むのであんな感じでやりたいです

359 :
>>358
どうぞ、おやりください。
https://www.itead.cc/wiki/images/f/ff/Sonoff-Schematic.pdf

360 :
>>358
そのACからDC5〜12Vを生成する回路を作れば良い。

361 :
リレーだとONの時に励磁電流が必要だしSSRの方がオレは好き。ノイズ出さないし。

362 :
自分で回路作るのは大変そうです
ここ見るとDC5Vアダプターとだけしか書かれて無いんですが、こういう小さいアダプターってどこで買えますか?

https://www.elekit.co.jp/product/docs/PU-2708_LEDbulb.pdf

363 :
>>362
100均AC USB充電器とコレでいんじゃね?
https://www.%61mazon.co.jp/dp/B0154PLIJM/

364 :
なんだこいつ?
ACアダプタ探しまで人任せかよw

365 :
>>362
この工作例はある程度の電子回路の知識をお持ちの方が対象で、回路図などをご覧に
なり自己責任で自作できる方が対象です。

って書いてるやろ、お前はやめとけ。

366 :
どうもありがとうございました
>>363
USB電源だと便利そうです
小型のUSB電源探してみます

367 :
c#を使ってWiFi経由でARUDUINO内のセンサデータを読み込む方法を考えています。
ARUDUINOから受信したhtml本文に記述されたセンサデータを文字列処理して取り出す方法しか思い付きませんでしたが、他に方法があれば教えて頂けますでしょうか?

368 :
>>367
ソケット通信

369 :
>>367
UART対応のWiFiモジュールでもバイナリ転送できるかと

370 :
>>367
JSONはどうだろ。.NETならAPIもあります。

371 :
ノートPCとArduinoをUSBで繋いでます。
負荷が24V系なので別の安定化電源から24Vを供給し、Arduinoからトランジスタを駆動しようと思います。
ノートPCはACアダプタに繋がっていて、安定化電源は接地されているのですが、USBと安定化電源のGNDを繋いで大丈夫なのでしょうか。何かでノートPCと別電源の機器を&#32363;いで壊したというのを聞いて気になりました。

372 :
心配なら24V系とArduinoをフォトカプラで分離すればいいんじゃね

373 :
>>371
24V電源のGND(DC出力の0V側)とフレームは接続されてる?
あと,ACアダプタに絶縁不良がなければ大丈夫かな

374 :
>何かでノートPCと別電源の機器を繋いで壊したというのを聞いて気になりました。
USBで接続する場合なら、グランドが浮いた状態で信号線が接続されてようなケースかな?

375 :
>>371
電源が商用電源に接続するもので、正規のものなら、(PSEマークのあるACアダプタでもOK)
(A)があなたが作った機器だとして、GND1とGND2が内部で接続されている場合なら、
PCと(A)を接続するときに、GND2が接続されることは問題はない。
GND2を接続する前にUSBの信号線が接続されるのは良くない。(そうならない工夫はコネクタで
されているし、少々のことなら保護素子で守られるはずだけど)
sssp://o.2ch.sc/1kh0c.png

376 :
>>367
367です、皆さんありがとうございます!
TCPを使って何とか行けました。

377 :
vscodeでシリアルモニター表示とポート選択ができないんだけど同様の現象の人います?
乗り換えようかと思ってarduino ide proなるものをインストールしたけど大して進化してるようにも見えないから開発環境が固まらずウロウロしてる

378 :
VSCodeで新規ウインドウ開いてフォルダを開いてその中にinoとか置いたらボード選択とポート選択出来る
inoがひとつあるフォルダを開くのがキモ
例えば、~/Documents/Arduino/Sketch/の中に沢山フォルダを作ってその中にinoがひとつひとつあった場合は、Sketchフォルダを開くんじゃなくて、使いたいinoがあるフォルダだけを開くとうまくいく

379 :
ガチガチ初心者です。
赤外線を受信したら、フォトカプラを介してLEDをつける回路を作成中。
IRremoteなるライブラリを使って、赤外線リモコンの値(16進数)を読み取るところまでできたんだけど、その値を使ってフォトカプラを動作させるやり方が解りません。
IFで変数==読み取り値(16進数)を直接じゃあかんの。
読み取り値を入れてるところがエラーになるんだけども。

380 :
なぜそのエラーをここに書かないの?

381 :
>>379
>IFで変数==読み取り値(16進数)を直接じゃあかんの。
それでええんやで。コードの記述の仕方がアカンのやで

382 :
リモコンの値が長過ぎてメモリ不足とエスパー

383 :
>>381
ありがとう、頑張ってみる。

384 :
仕様を見る限りmegaはunoの上位互換って考えていいのかな?
中華互換ボードなら価格差も大して変わらなさそうだけど使い分けたりする?

385 :
unoよりnano、組み込むならpromini
megaよりESPって感じかな
IOほしければエクスパンダで

386 :
サイズがでかい、価格が高い、消費電力が大きい という要素があって上位互換と言えるだろうか

387 :
シリアルモニタへの文字の表示なんですが、
画像のようにスケッチを書いて5秒事に表示させてます。
だけど、画像の下のウインドウのように「Apporox」までで止まってしまい、次の5秒になると「. Alttidude〜Apporox」までかプリントされます。なぜ一度に最後までプリントされないんでしょうか?

https://i.imgur.com/k89I8Re.jpg

388 :
バッファが80文字しかないんじゃない?

389 :
試しに80〜90行目をコメントアウトしたら今度はPressureの途中で切れました

390 :
>>387
パソコン側の問題かも
文字止まった後もマイコン側の送信LED5秒ごとに光ってない?

391 :
>>390
言葉足らずですみません
パソコン側へのプリント自体は5秒毎にずっとされるんですが、プリントの開始文字の終わりの文字の位置がおかしいんです
途中で来れる→5秒後→切れた所から改行含んでその直前の位置まで→5秒後→繰り返し

392 :
>>391
コードに問題点は見られないので、
arduino本体のマイコンは正常に機能してる可能性が高く、シリアルusb変換のICからパソコンのソフトの間の問題の可能性が高い
まずはシリアルの通信速度下げてみて
あと出来れば違うPCかosで試して

393 :
pressure ってのは 100.0F で割るモノなの?

394 :
>>393
パスカルからヘクトパスカルに変換してるんだろう

395 :
>>394
thx.
ヘクト(h)は ÷100.0 なのか。÷1000.0 だと思ってたw
すると最後の"F"の意味が判らん。

396 :
あ、floatだから最後に"F"なのか? "LL"みたいな?

397 :
1.0fは単精度浮動小数点
1.0は倍精度浮動小数点

398 :
おー!! それぞれに意味があるのか! 勉強になるぅ〜 thx.

399 :
通信速度を9600に下げて書き直したけど改善しませんでした。
そのままのコードで別のマイコン(ESP32DevKitC)だとOKでした
って事はマイコンボードのUSB変換の問題ですか?
ドライバーですけどDevKitCはCP2012Nだけど、nRF52840はAdafruitの名前が付いてました

400 :
スルーしてて申し訳ない。
パソコン側のシリアルバッファーに溜まって吐き出していないだけの様な気がするので、
Serial.print("m"); をSerial.print("m________________"); としてみてはいかがだろう?

401 :
>>387
細かく追いかけてないですが、自分もserial.printを連続でコールしてシリアルが詰まったような現象になった事があります。
その時は、何回かに一回sleepを入れる、もしくはstringに溜めておいてserial.println一回だけにすれば回避出来てました。
Windowsだとならなかったんで、MacのIDEの問題かもしれません。

402 :
>MacのIDEの問題かもしれません。
IDEかドライバか切り分けしたら?

$ ls /dev/tty.usb*
/dev/tty.usbデバイス名
$ screen /dev/tty.usbデバイス名 9600

macもってないけどこれでシリアルみれるみたい

403 :
ArduinoUNOのpluseIn関数のタイムアウトを100msに設定して関数の前後にmillisを入れてタイムアウト時間をを測定したのですが、70ms前後になります。
何故ですか?

404 :
100ms経過する前にノイズ拾った。

405 :
>>404
戻り値は0なんですよね

406 :
皆さんどうもありがとうございます

>>400
アンダーバーはどういういみですか?
ダメでした。
https://i.imgur.com/fvzjOG1.jpg

>>401
Stringに溜めてprintln一回だけはどうやるんでしょうか?

>>402
screenコマンドとcuコマンドで見てみましたが同じく途中で切れてました
https://i.imgur.com/9DUDlOP.jpg

407 :
>>406
アンダーバーは、シリアルで送る文字列をうしろに長く伸ばしたら、
途切れる場所が変わるかどうかを見極める為で、アンダーバーである必要はありません。
シリアルバッファーを埋めて送信した文字列を吐き出させる為に付加してみました。
変わらないですね。てか、なんでピリオドの前で止まるんでしょうね。
ピリオド取ってみたら?

408 :
>>406
いろいろもがいてみるしかないかな?
Serial.println()の次の行にSerial.flush()いれてみるとか…

409 :
>>407
アンダーバーの件了解しました。
どうやらピリオドで止まるわけじゃなさそうです
画像のように初回のプリントはPressureのPressで止まり、以降は毎回Approxまでで止まってました

https://i.imgur.com/3hpp7Sk.jpg
https://i.imgur.com/foACCfb.jpg

試しにApprox.を消したらAlttitudeの途中まででした

https://i.imgur.com/cumogbb.jpg

>>408
Serial.flush()試してみました
しかし上の画像の通り残念ながらこれでも変わらなかったです

410 :
>>409
んじゃあ、Serial.println();の次におまじないのdelay(10);

411 :
>>410
わあ!うまくいきました!
これはどういう理屈ですか?
68行目(printlnの後)で5000マイクロ秒ディレイしてあるんですけれど、それとは何が違うんでしょうか?

https://i.imgur.com/EN9Msa7.jpg

412 :
>>411
乙です。
ピリオドは関係なかったですね。申し訳ない。
自分の場合だとprintln()は使わずprint("\n")と書いてます。
まぁ、個人的な決まり事ですがw

413 :
まとめると
・UNO(nRF52840版)でシリアル送信が5秒遅れる場合がある
・同じスケッチでESP32DevKitCだとこの問題は発生しない→スケッチに問題なし
・Macと接続した場合発生する。WindowsPCでは発生しない→UNO(nRF52840版)に問題なし
・ArduinoIDEの問題ではない→Mac自体に問題がある

MacのnRF52840シリアルドライバがポンコツくさいな
最新ドライバかパッチを探してみたら?

414 :
あら、公式"Reference"の"Example Code"を見ると、
println()はdelay(10);を入れるようになってるね。
print()の方はdelayがない。

415 :
>>411
効いたみたいで良かったです。
シリアル通信で他デバイスにデーターを送るときとか、GPIOからボタンなどの入力を受け取るときとか、
インターフェイスが絡む場合、経験上delay(10);でひと息入れさせると上手く行くことが多いです。
すみませんが、68行目のdelayとの違いの本当の理屈はわかりません。
ただ、関数を抜ける際などの取りこぼしはままあるので、そういうものと受け止めつつ、
実用上、挙動が怪しいところでは、他のソースに手を入れる前にこうしてみています。

416 :
すみません、Pulsin関数ってArduinoUNOだと13番ピンは使えないですかね?
PWM対応ピンでしか機能しない可能性ありますか?

417 :
>>416
どこでも使える
リファレンス読め

418 :
>>403
単なる思いつきなんだけど動作速度が24MHzになるようなことしてない?
pulseIn関数は1μSecが16サイクルでハードコードされてるみたいなので
https://garretlab.web.fc2.com/arduino/inside/hardware/arduino/avr/cores/arduino/wiring_pulse.c/pulseIn.html
24MHzだと16/24=0.66・・・で大体70%なんだけど

419 :
春に出たnanoシリーズの話題全く見かけないんだが誰も買ってないのか?

420 :
esp8266,esp32が無ければ話題になったんだろうけどな

421 :
>>419
そういうあなただってリンクすら張らず、話題にする気も興味も全く無さそうじゃんw

422 :
Nano Every
MCU ATMega4809、USBシリアル変換にSAMD11
唯一の5V

Nano 33 IoT
MCU SAMD21、WIFIモジュールにESP32

Nano 33 BLE
nRF52840

Unoのフォームファクターはレガシーとして残すけど、これからはZero、Nanoをこれからのフォームファクターに移行したいように見えるんだがどうよ
3.3V中心だし

>>421
公式のボードなのにリンクがどうとか難癖かよ
リンクは>>1にあるだろう

423 :
書き直したらおかしな文になってたわ

424 :
お前、話題にしたい人間の態度じゃねえな、やり直せ。

425 :
>>422
メインのMCUよりもシリアル変換モジュールや通信モジュールの方が性能が上とかもうよく分からんな

426 :
>>422
見事な平文で感心した
死んでもリンク張らねえぞって意気込みが無駄に空回りしてて笑う
リンク張れって言われてここまで意地張る僕ちゃんかわいい

427 :
いまどきESP32以上なので実質これ以上しか眼中にないが
https://store.arduino.cc/usa/nano-33-iot-with-headers
$20だとさ
高い、買わない

428 :
>>427
それSAMD21だからESP32以下じゃん
素直にESP32だけ使わせてくれた方がよっぽどマシ

429 :
AliexpressのセールでESP32-CAMとESP32Devkitあわせて$5でした。

430 :
m5stackがコスパ機能ともに最高すぎて
arduinoゴミ箱に捨てたわ

431 :
voutからの供給をソフトウェアから停止したい。
ESPr Developer(ESP-WROOM-02開発ボード)にUSB接続して動作させています。
voutは、挿されたUSBのvccに直結だとどこかで見た記憶があり、
voutからの電流はスケッチからソフトウェア的に停止することはできない認識でいますが正しいでしょうか。
なので、voutからの供給を止めるためには、リレーなり、トランジスタなりを挟んで、GPIOで制御するしかないのでしょうか。

432 :
あ、esp8266スレがあった……。
つい初心者というスレタイに誘われて……。
こっちじゃだめですか

433 :
>>431
この↓回路図を見る限り基本的にはGPIOとリレーとかでON/OFFするしかないみたいね
https://s3-ap-northeast-1.amazonaws.com/switch-science.public/schematic/ESP-WROOM-02_devboad/ESPr_Developer_rev4.pdf

434 :
>>431
https://s3-ap-northeast-1.amazonaws.com/switch-science.public/schematic/ESP-WROOM-02_devboad/ESPr_Developer_rev4.pdf
そもそもVOUTがどことつながってんのかわからんけど、
一般的にはあなたの認識でいいと思う。

435 :
お、かぶった、ごめんね>>433

436 :
お二方とも、ありがとうございます。

トランジスタでのスイッチを検討したいと思います。
ありがとうございました。

437 :
>>435
いぇ、どういたしまして (^_^)v

438 :
中華Pro Miniについて質問です
3.3Vのが欲しいんですがアマゾンを見てもFTDIの並びが逆のタイプしか見当たらないです
もう以前のように普通の並びのは売られてないんでしょうか?

439 :
>>430
くれ

440 :
>>438
色々ありますよ
https://www.aliexpress.com/item/32975025989.html
https://www.aliexpress.com/item/32293707392.html
黒い基板のが使いやすいと思う
・A4-A7が端っこにある
・水晶発振が交換しやすい16M->8M
・安い

441 :
>>440
どうもありがとう
リンク見てみたけど3.3のはAtmega168しかなかったです

442 :
クリスタルを8kHzのに張り替えたらいいって事ですか?

443 :
>>442
クロック落とさないと3.3v安定動作しない
(16MHzのままでも一見動作するが誤作動の原因になる)
8kHzでは遅いのでせめて8MHzでね

444 :
>>438
https://ja.aliexpress.com/item/33057046347.htm
自分が注文したのはどうだったんだろうと確認してみたけどこれはFTDIの並びなのかな?

445 :
>>441
あった
https://www.aliexpress.com/item/32963423749.html
俺は6P-6Pのフラットケーブルで接続してる
完璧を求めるならレギュレータも5V品から3.3V品に交換
内部発振8Mに変更するなら部品交換は不要
動作クロックで如実に消費電力が減るのでおもしろいよ
Mega328P MU 3.3V 16MHz 7.5mA (BuitinLED 1.5mAを含む) ※参考値
Mega328P MU 3.3V 8MHz 4.8mA (BuitinLED 1.5mAを含む)
Mega328P MU 3.3V 1MHz 2.0mA (BuitinLED 1.5mAを含む)
Tiny44A 3.3V 8MHz 2.0mA
Tiny13A 3.3V 9.6MHz 1.0mA

446 :
>>444
その画像と同じものならよく見る逆のタイプです

こういうアダプターだと逆さまにつけないといけなくて、下にスペース作らないとアダプターのピンベッダが干渉して直結出来ません
https://www.switch-science.com/catalog/1032/

>>445
これだと正しい並びですね
なぜ3.3Vは逆向きが主流になったんでしょうか
画像は参考画像だと言って逆のが届かないか心配です

自分でも調べてみたらこっちも正しい並びのようです
https://ja.aliexpress.com/item/32525927539.html


> 内部発振8Mに変更するなら部品交換は不要

どういう事ですか?
クロックやレギュレータの交換不要って事ですか?
手順知りたいです

447 :
>>443
間違えました
8MHzでした

448 :
>>446
>届かないか心配です
ケーブルで対応しろ

1)Arduino-IDEにMiniCoreボードマネージャーをインストールする
https://github.com/MCUdude/MiniCore
2)"Atmega328", "8MHz internal"をセレクト
3)ブートローダーの書き込み(フューズビットの設定)
たったこれだけで16MHzのProminiが8MHzや1MHz動作に
ただ内部RCは精度が悪いのでシリアルで問題が出る場合がある
そこは固体ごとにOSCCALを校正

449 :
>>438が何言ってるのか全く分からなかったが
ジャンパー線で済む話だったのな、応用力無さすぎじゃね?

450 :
https://i.imgur.com/TNk2zXo.png
こんな感じでアクセスされてるICへの信号をArduino(16MHz)経由で記録したいと思って
CSの立ち上がりで割り込みをかけてCS,RD,WR,A0を含むポートを参照、次にD0〜D7を含むポートを参照しようとしたんだけど
うまくいかず、理解も全然追いついてないんだが、これはArduinoでは速度的に無理ってことになるのかな?
というかCSの立ち上がりが発生してるはずの回数より明らかに少なくしか拾えてない
アセンブラで書けばいけるとか言われたらお手上げだなあ

451 :
>>448
どうもありがとうございます
OSCCAL大変そうです
もし、>>440 のクロックを8MHzに変えるなら面実装のレギュレータも3.3Vに張り替えるって事になりますか?

>>449
> 応用力無さすぎじゃね?

そういう話じゃなくて、ジャンパー線で繋ぐよりもシリアル変換アダプター直結だと繋ぐ向き考えたり線でゴチャつかないで済むからです
AdafruitのPro Trinketも逆並びだから地味にめんどくさい
コピー元のSparkFunのPro Miniはこれまで何度かマイナーチェンジしてるけど一度も逆向きになった事無いと思うけど何故中華Pro Miniは逆向きになったんでしょうか?

ただ、今日教えてもらった感じだと、普通の並びのPro Miniの出品はほとんど無さそうなのでコストや入手性等考えたら逆向きの方がいいのかも知れないですね

>>445
以前ESPスレに書き込まれたかたですか?

452 :
>>446
一番オーソドックスだと思うFT232RLのピンが全部出てる赤い基板の奴に合わせてるんじゃないの

453 :
>>452
なるほど!
中華変換ボードはその並びですね
https://www.nskelectronics.in/image/cache/data/usb-ttl-ft232rl-pinout-800x800.png

454 :
何度もすみません

よく見かける逆向きのPro MiniはDeek-Robotという所がコピーしたPro Miniのコピーらしいですね
Deek-Robot自体ではもう売って無さそうですが
https://www.arduino-board.com/boards/dr-pro-mini

あとSPIピン付きのバリエーションも出してたみたいですね
便利そうです
https://www.arduino-board.com/info/arduino-knockoffs

コピーなら見つけられました
https://ja.aliexpress.com/item/33043002742.html

455 :
>>450
9MHzとか無理w
がんばって1MHzくらい

456 :
ゴチャつかないで済む
地味にめんどくさい

お前は電子工作自体をやめたほうがいい

457 :
http://akizukidenshi.com/catalog/g/gM-11007/
秋月のこれならジャンパピンの代わりに薄型のDIP-SWだから裏/表どっちに使ってもあまり高さが変わらないんじゃ

458 :
>>456
そっ、それも初心者に対するアドバイスなの?
スレの趣旨からすると厳し過ぎるような。。。

459 :
シリアルのピンアサインそろえるためだけにモジュールをえり好みしてる初心者なんぞ
早めに電子工作から手を引かせた方がいいに決まっとろうが

460 :
>>450
ソフトでやるのは無理なのではないかと思う。16Mクロックで1クロックで1アセンブラ命令が動くとしても62.5nかかる。割り込みでそれまで動いてた処理で使ってたレジスタやプログラムカウンタをセーブし
割り込み処理を起動するだけで10命令以上動くから625n以上かかる。さらに割り込み処理内でゴニョゴニョしてる間は次の割り込みは待たされる。

461 :
>>459
そいつスパークファンと同じピンアサインの互換品探してるだけだろ?何もおかしくないと思うが

462 :
おかしくないよ
ジャンパー線でつなぎかえりゃ済むでしょと言ってるだけ
どっちが手間なんだかw

463 :
FTDIじゃなくてCH340Gだけど薄いから裏表どちらでも高さを気にしなくて使える(裏にするとLEDが見えなくなるけど)
https://www.aliexpress.com/item/32892845068.html

464 :
PlatformIOってこのスレ?
過去スレで話題あるなら読んでみたいんだが

465 :
>>458
教えてくれ→教える→俺はこうなんだよ→好きにせーや
まあこうなるわな

466 :
>>465
冷たいヤツ⇒放置
優しすぎるヤツ⇒忖度し回答
ちょっと優しいヤツ⇒不備指摘

467 :
>>455 >>460
だよねー
となるとch数と速度が十分なロジアナか、もっと速いマイコン使えってことになるか…

468 :
>>467
マイコンだとキツイんじゃないかな
尼で1000円くらいの24MHz 8チャンネル USBロジックアナライザなら
ギリギリ使えそうだけど、コンデンサー交換しないとUSB認識しないとコメあるし
チャンネルごとにトリガー掛けられるからI2CやSPIのデバッグに便利そうだけど

469 :
アルドゥイーノとラズパイ組み合わせたらどんなことできますか?

470 :
>>469
どんな事でも出来ます

471 :
例えば?

472 :
>>468
調べてたら面白そうなんでポチってみるわ
送料込み500円みたいだし
https://www.aliexpress.com/item/4000022908280.html

473 :
よくそんな怪しい店見つけて来たな

474 :
>>472
これって、PC側のソフトは何を使うの?

475 :
>>472
もう一声
http://s.click.aliexpress.com/e/mG4v0Oso
>>474
PulseView

476 :
>>472
そのケースだけ欲しい
デバッガやシリアルコンバータにちょうど良さそうな大きさ
こんなケース秋月かどこかで買える?

477 :
3Dプリンタ買っちゃいなよ

478 :
ケースいろいろ買い集めたけど3Dプリンター買ったら全部放置してあるなあ
ケースだけにかさばるんだよなあw

479 :
3Dプリンタで作ったケースはかさばらないのか

480 :
VSCodeにPlatformIOを入れました
Arduino IDEの様にボード事や追加したライブラリ毎のサンプルスケッチってどうやって開くんでしょうか?

481 :
>>470
何言ってんのかわからない。

482 :
>>472
安ロジアナの定番、自分も半年くらい前に買った
アプリはオープンソースのものとこのロジアナのパクリ元メーカからダウンロードできるやつの2種類使えるな

483 :
>>468
>>450の画像がまさにその手のロジアナ使って見た状態(24MHzサンプリング)
8chだと足りないし速度も余裕なさそうな感じだから少し上のスペックで安いのを物色してるところだけど
ch数によって周波数が変わるのが多いようで、確実そうなスペックだと安物でもあまり安くはないなぁ
もちろんちゃんとしたメーカーのだともっとずっと高いが、安物買いの銭失いとはよく言ったもので

484 :
サンプルとかが入っていドキュメントの中のArduinoフォルダVSCodeで開ければ見れるはずだよ

485 :
>>484
どうもありがとうございます
Arduino IDEはインストールしないでPlatformIOだけでやりたくて…

486 :
安いロジアナ問題なく使えてるよ
というかpulseviewが優秀

487 :
>>483
https://i.imgur.com/XHODaJy.png

この辺かな
長め(少なくとも数min程度)に記録したいからストリームモード前提として
Logic16/LA1010 16ch時16MHz、9ch時32MHz
DSLogic 16ch時20MHz、12ch時25MHz
6022BL 16ch時20MHz?
どれもCY7C68013Aなのかな(8chのやつも本家Saleaeも含めて

488 :
ATTiny13Aで出力ピンが足りなくなったので、
3つの出力ピンで4つのLEDを順に点灯する回路を考えてみました。
https://i.imgur.com/DsDfCcS.png

D0,D1,D2が出力ピンで、A-DがLEDです。
表にすると
012 ABCD
000 0000
001 0001 - Dのみ点灯
010 0100 - Bのみ点灯
011 0101
100 1010
101 1000 - Aのみ点灯
110 0010 - Cのみ点灯
111 0000

高速に切り替えればデューティー1/4で4つ同時に点灯しているようにも見えるはずです。
この回路は電気的に問題無いでしょうか?
電源は5V、LEDのVf=2.0V、R=470Ω、6.4mA流れるのを想定しています。

また、ハイインピーダンスを使用したアクロバティックな回路を見た記憶があるのですが、
検索しても見つける事ができませんでした。
もっとLED増やせるなどのご指摘がございましたらご教授下さい。

489 :
>>488
ふと思いつきましたが、図のように抵抗減らしても問題無いですよね?
https://i.imgur.com/NDxisjD.png

490 :
Arduinoではないけど、Microchip社のCompiled Tips `N Tricksってドキュメントに
6個駆動する例が紹介されてる

491 :
Charlieplexing方式と言って1995年にMaximの社員が考案したといわれている方式
nピンの出力ポートでn(n-1)個のLEDを制御できる
3ピンの場合はこのように6個のLEDを制御できる
https://en.wikipedia.org/wiki/File:3-pin_Charlieplexing_with_common_resistors.svg
ピンが増えると制御できるLEDも飛躍的に増加するが同時点灯できるLEDは1個なのでデューティー比がかなり小さくなる

492 :
別途IC使用おkなら74HC138, 74HC4514とか

493 :
こういうのは ICを追加せずに実現方法を考えるのが楽しいのよ

494 :
全く関係無いけど、DELLのCRT破壊したらコントロールパネルのボタンが分圧式?で驚いたわ
よく耳にするけど実際にあんな製品で採用されてるとは思いもしなかった

LEDのこんな制御も実際に採用されてたりするんだろか

495 :
>>494
分圧式のスイッチはモニターだと見かける気がする
だから接点が劣化して抵抗が増えると決定押しても別のボタンとして反応するとかの不具合が発生したりする

496 :
>>491
正にこれです!ありがとうございました。

497 :
IC制御のタクトスイッチをArduinoでON-OFFの制御をしたいです

IC INPUT_PULL___o ̄o____GND
ICの制御 ------┤← +とGNDをICが切り替えている
Arduino--------┘← はんだをして割り込ませる

ICのプログラムは変えることができないので試行錯誤をした結果
ArduinoのポートをINPUT_PULLUPとdigitalWriteのLOWを切り替えて
+とGNDを再現して思った動作はできました
これって異端だったりしますか?何かスマートな方法あったりしますか?

498 :
>>497
考え方は間違ってないけど以下の条件を満たしてる必要がある

・GNDの電位が同じ
・ケーブルが短い(内蔵プルアップのインピーダンスが高いため)
・IC側の入力インピーダンスが高い

さらに
arduinoとICの駆動電圧が違う場合
arduino5vでIC3.3vの場合は入力の耐電圧超える可能性がある(入力にクランプダイオード等が有れば問題無し)
arduino3.3vでIC5vの場合は動作の確実性が弱い(誤作動の可能性有り)

一般的には駆動電圧一緒なら抵抗を挟んでdigital writeのhigh lowでやるんじ無いかな
(抵抗はなくても動くが保護の意味も含めて念のため)

499 :
>>491
折角なのでブレッドボードで配線してみました
https://i.imgur.com/cfDQeNC.png
3OUT-6LEDでサウンドレベル表示してみましたが
2msx6=12ms,83fpsでチラつきも無く快調です
4OUT-12LEDも試してみたいと思います。

500 :
見づらい配線図より、実際に動いている写真のほうがいいな

501 :
https://i.imgur.com/uBVQXsZ.mp4
こんな感じでどう?20LED by 5I/OPort
見かけ上の同時点灯数が5個なのでそこそこスムースに見える

502 :
>>501
おおお!メリークリスマス!

503 :
>>502
8PinのAVRとLi-Poかなんかで小さくまとめようと思ってたけど動くのが確認できた時点でもうやる気がなくなってしまったという…

504 :
>>503あるあるw

505 :
SIMつけられるArdoinoってあるのかな

506 :
モデム付いたESP32ならあるね
ただ2GのGSMだかで日本じゃ使えないとか?

507 :
>>501
なめらかですね
時計とか同時点灯少ないものには有効そう

508 :
>>507
固定パターンの繰り返ししかしていないからね、ほとんどがdelayでの待ち時間だと思う

509 :
>>498
3つの条件をクリアしているのと駆動電圧も同じなので
抵抗を挟んで動かしてみます
想定される条件など詳しくありがとうございました!

510 :
>>507
弾の縛りが無ければWS2812Bがコスパ良すぎて

511 :
Nano 33 BLE買ってみたけどライブラリもサンプルも全く無くて泣きそう

512 :
>>511
あなたがパイオニアなんだから頑張って!

513 :
これからArduinoを始めたいんですが
お勧めの本や&#13259;を教えて頂けますでしょうか。
やりたいことは鶏の孵化機で温度・湿度管理にそれに合わせた
加温や加湿、数時間ごとの卵の回転です。
温度などの計測は比較的簡単そうに見えるのですが
モーターなどの動力に関しては色々難しそうなので
そのあたりが詳しい本などを紹介していただけるとありがたいです。
又、お勧めのArduino本体とLCD(20*4)バックライト付き見やすいものも
教えて頂けないでしょうか?

514 :
>>513
現状でどこまで実際に試せてるの?

515 :
>>514
かなり前に温度と湿度だけはできました
加温+循環ファンに関してはSSRにドライヤーつなげでなんとかなりました
ただ、タイマー+モーターによる卵の回転は最初は上手くいっていたんですが
2〜3日でシステムがフリーズしたりするので
動力電源の取り回しやモーターのノイズ拾っておかしくなったのかと?
で、こんどはちゃんとしたものを作ろうと改めて勉強したいので
分かりやすい本など教えていただけるとありがたいです。

516 :
>>515
その最初は上手くいったってやつの情報を出した方がいいのでは?
「タイマー+モーターによる卵の回転」なんて本はない訳だから、
たたき台があった方がいいよ。

517 :
>>513
ELEGOOの三千円台のスターターキットにPDFのガイドブック付いてるよ。

518 :
>>515
タイマー+モーターだけで済むでしょ?
Arduino介するからフリーズとかするんだよ
電子回路でなく電気回路で充分

519 :
Digispark で、キーボード上のScroll Lockの LEDと、ledPin1を同期させたくて
見つけてきたんだけど、点灯しっぱなしで上手くいかない、何が間違ってますか?

#define LED_NUMLOCK (1 << 0)
#define LED_CAPSLOCK (1 << 1)
#define LED_SCROLLLOCK (1 << 2)
const int ledPin = 1;
uint8_t keyNone[8] = { 0, 0, 0, 0, 0, 0, 0 };

void setup()
{
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}

void loop()
{
uint8_t ledStatus;
delay(100);
Serial.write(keyNone, 2); // Release key
// keyboard firmware will send back 1 byte every time it receives a key
// this byte represents the LED status for the keyboard:
// Bit 0 - NUMLOCK, Bit 1 - CAPSLOCK, Bit 2 - SCROLLLOCK
ledStatus = Serial.read();
if (ledStatus & LED_CAPSLOCK) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}

520 :
CAPSLOCK ?

521 :
>>520
ホントだ、気づきませんでした、ありがとう御座います。
でも、動作しません。。。

522 :
そもそも"Serial"に2byte送るとキーボードのステータスが返ってくるの?

523 :
>>522
ここのやつです。
http://coopermaa2nd.blogspot.com/2011/11/blog-post.html
キーボードのランプは、PC側が光らせているので、複数あれば全て同期するようです
Scroll LockのLEDを、HDDのアクセスランプにするツールを使って、派手なアクセスランプが作りたくて
もう数年かけてます

524 :
数年もやってるの? すごいね!!
オレなら一日で投げ出してる。
リンク先を読ませてもらいました。(ざっとだけど)
ちなみに"atmega8u2"のファームは書き換え済みなんだよね? >>Uno

525 :
IMEのON・OFFランプを作りたいんだけどなぁー。なんか無理っぽいね。
日本語入力になってると思って文字打ってたら、英語だったり
またその逆だったり、よくあるんだよなー

526 :
>>524
いえ、USBタイプのDigisparkで・・・

その数年というのは、
USB付きのpicから初めて、Arduinoを知って
スマホ操作の自動化をやりながらなので

527 :
せっかくクーポンゲットしたけど、とりあえず今は何も買う物がないっていう

528 :
何のクーポン?Arduinoのクーポンとかあるの?

529 :
>>525
オレも欲しい
でもIMEのON/OFFの状態ってPCの外部で判別できるのかな?

530 :
>>529
出来ないと思う。PC側でソフトを常駐させて、IMEを監視してシリアルでマイコン側に送る方法になると思う

531 :
できるやん

532 :
そんなわけ・・・ほんまや・・・

533 :
ちと古いかもしれんが IME_GETOPEN ここらの情報読み出せばおk

534 :
下のコードの goto init; で for(;;){} に分岐した時は無限ループになるのでしょうか?
void loop() {
boolean flg1;
boolean flg2;
if (flg1 == true) {

if (flg2 == true) goto init;

<処理>

} else {
init:;
for(;;) {

}
}
}

535 :
なるね。

536 :
ご回答ありがとうございました。

537 :
好きでそんなコード書く奴はおらんやろ

538 :
Arduinoの語られざる歴史
https://arduinohistory.github.io/ja.html

Arduinoは今はSTM32でもESP32使えるけど当初はAVRありきだったのか、いつ頃どうやって他のプラットフォームでも使えるようになったのか、全く謎だったからググってたらこういうページが見つかった
これってつまりどういう事ですか?

539 :
つまり、君の疑問の答えはそこには書いてないという事だ。

540 :
>>538
はじめにavr以外を対象にwiringがあって
それを利用してavrを使った別プロジェクトの成果としてArduinoができて
その後Arduinoが流行って、Arduinoをスタートラインとして他のマイコンでもつかえるよう対応されていった

541 :
どの段階でピンへだがクソ配置になったか分かるね。
今となっては経緯なんざくだらねえし、NanoかESPしか使わんからどうでもいいが。

542 :
そのクソ配置のArduinoが流行ってシールドがいっぱいでて
Arduino のシールドが挿せるピン配置互換ボードが STM32などでも出てきたが、その頃はまだ Arduino IDE での開発は対応していなかった
https://pc.watch.impress.co.jp/docs/news/635614.html

その後 Arduino 1.6.2 のボードマネージャが実装され(2015年)、ボードマネージャで STM32 対応環境が落とせるようになって、かな?

543 :
そのシールドというものは1枚も持ってないなあ
件のピン配置見たあと初ArduinoだったUNOはそっとしまい込んだから
もっともそれも中華製クローンだったがw

544 :
最初のArduinoが最近買った「ATmega2560 (Mega 2560)」の新参者だけど
使用例としてコードを渡されて書込装置が「atmel STK500」なので比較的すぐ慣れた。

545 :
富豪だな

546 :
>>545
そうかな? 下で買ったから1枚千円で2枚買った。今見ると更に安くなってる。送料込で2600円だった。
https://www.banggood.com/RobotDyn-Mega-2560-PRO-Embed-CH340G-ATmega2560-16AU-Development-Module-Board-With-Pin-Headers-For-Arduino-p-1397734.html?cur_warehouse=CN

OSCで頼んだので梱包用は紺のビーニールで、その中がビーニール袋(物は入っていたけど)1枚のみだったので電子部品なのに大丈夫かと驚いた。

黒い基板(2段目以降の写真)は少し前に半田付けしたけどarduinoは取り組み初めて5日目。
https://imgur.com/a/liYUqsn

昔の8ビットPCのあるビットをオンにするとLEDが点灯する。そのビットをオフにしてと「制御」が
戻ってくれば有り難いけど、結果はLEDが消灯するだけ。Lチカが目的ではないからORZ状態。

因みに黒い基板は自作ではなくて緑の基板と交換して貰った基板。写真では見えないけど黒の隣に緑がある。

547 :
つかその程度ならProminiで良かったんじゃないのか

548 :
>>546
やっぱ富豪だよ
ここの多くの住人は300〜400円(送料込)の中華unoとか200円前後(送料込)の中華nanoとか使ってる
さらに80円(送料込)以下の使う人らも

549 :
Pro miniは融通が効かなくて結局nanoに落ち着く

550 :
>>546
全容が良く分からないけど、やってること比で大げさ感がだけが残る。

551 :
そんなわけ無いだろうけど、もしそれだけの処理ならATTiny13で出来そうw

552 :
昔の8ビットパソコンのCPU代わりに使うのでVCC、GND除いてI/Oピンが30本程必要。

それにしても Pro Mini でさえ某店舗では 1,266 円 とは高い。
https://www.switch-science.com/catalog/946/

どちらにしても今回の使い方では nano も使えないし ATmega2560でも速度が足りない感じで
期待した動きにならない。アセンブラで短いサイクル、一括でI/OピンがINPUTになる命令はないかなと。

553 :
>>552
純正と中華品の差じゃね

554 :
>>552
自分のレスをよーく読んでみたらいい。
何やりたいか情報少なすぎて分からないから、はたからはただのひとりごとにしか見えない。

555 :
>>554
大筋でやりたいことは自分では判っている。

挨拶から始まり道草したけど質問としては下。
「ATmega2560のアセンブラで短いサイクル、一括でI/OピンがINPUTになる命令」があるか否か。

556 :
USBシリアル変換機を繋いでATTiny13とか85にブートローダーやスケッチを書き込むにはどんな配線にしたらいいんでしょうか?
ググってもUNO経由のやり方しか見つけられないです

557 :
補足
ハード的にはバッファとして74LS244等を追加すれば機能は実現するも知れないけど
確証がないしハードを追加してまで確認する必要はないと現時点では考えてる。

558 :
>>555
DDRxポート(xはA〜D)に0書けば全部入力ポートになる
というかリセット直後がこの状態だけど

PORTxポート(xはA〜D)を読み出せば8bit分一括で読み出せる
しかしなんで質問者がこんなに態度がでかいんだw

559 :
富豪だからな

560 :
有能な人は自分の能力の程度を客観的に把握できており、
さらに上を目指す以上、自分が身を置いた場所に自分より上が必ず存在することを必須条件として生きている。
よって物腰はやわらかい。

561 :
>>556
絶対に出てくるから!これでも聞きながら諦めないで!
https://www.youtube.com/watch?v=XmgbgTgmgYU

562 :
>>558
レスありがとう。リセット直後に全部が入力ポートの状態になることは知ってる。
欲しい機能は「出力ポートの状態から一瞬で入力ポートの状態になる命令(機能)」。

>PORTxポート(xはA〜D)を読み出せば8bit分一括で読み出せる
多分PORTAと言う1本(1ビット)の入力ポートから一括で8bit分と言う意味じゃないのか?
そうではなくて24本の出力(に設定状況)ポートが一瞬で入力ポートの状態になる命令が欲しい訳。
理由は、出力ポートが一瞬で入力ポートに変らないから不都合が生じると考えてる。
補足で書いたように、バッファとして74LS244等を入れれば一瞬で出力でも入力でもない
ポートにはできるけど、究極的に自分が期待する状態になるかは判らない。

詳しく書いてくれたので自分の欲しい機能と君が提示してくれた機能とは違うことは判った。

563 :
図を書けば 74LS244 を挟むことによってファンアウト的な問題が無ければ数命令で済む。
「ATmega2560」←→ I/Oポート → 74LS244 → 8ビットパソコン
直前までの出力ポートを一瞬とまでは行かないけど出力でも入力でもないポートにできる。
Arduino 単独では 出力ポートの状態を変えるには入力ポートにするしかない訳でしょ。

564 :
>>562
なにも理解してなくて草
ゼロレジスタ用意しときゃ1命令でポート内の全ビット入力に出来るじゃん
てか>>558の書いたことなんも理解してないよね?
自分が解ってない側なのに間違った想像したうえなんでそんな偉そうに出来るのか甚だ疑問
もう二度とレスもらえないと思うよ

565 :
>>564
申し訳ない、少し調べてみる。ありがとう。

566 :
>>552
ATmega328 nano で能力が足りない場合、mega2560買わないでESP32買う人が多い
ESP32なら僅かな部品追加でVGA出力もできるしライブラリもある
昔の8ビットパソコンのエミュレータもあるよ
http://www.fabglib.org/index.html

567 :
Pro Microだとポートこんなにバラバラに割り当てられてるのね

┌ B5 B4 E6 D7 C6 D4 D0 D1 xx xx D2 D3 ┐
│                                 │
│           32u4                   USB
│                                 │
└ B6 B2 B3 B1 F7 F6 F5 F4 xx xx xx xx ┘

ビットの取り出しや並べ替えをした上で複数のポートから一部分ずつ出力するにしても
なるべく余計な計算が少なくなるように配線も含めて工夫する必要があるのか…面倒だ

568 :
Arduinoでこういう変換アダプタを作ってるところです
https://github.com/tmk/tmk_keyboard/tree/master/converter/adb_usb#wiring
プルアップ抵抗としてDATAとPD0の間からVCCまで1KΩの抵抗を繋げるみたいなんですが、PSWをPD1に繋ぐ場合は同じようにVCCまで1KΩの抵抗を繋ぐ必要あるんでしょうか?

569 :
>>568
抵抗が無い場合、PSWがOFFの時にPD1の信号レベルが不安定になる
CMOSの入力はこういう状態は良くないのでプルアップ抵抗を入れる
Arduinoの内蔵プルアップ抵抗を有効にした場合は
外付けの抵抗は不要になる

570 :
P0では長いケーブルとかでAVR内部のプルアップだけだと弱いから、外部プルアップ抵抗入れろと書いてある
PSWは調べてみるとStart upとかresetとかに使うようで、Dataピンよりシビアな要求はなさそうで、なくても行けると思うけど
プルアップしておいたほうが無難かと思う

571 :
>>566
案内どうもです。面白そうな内容なのでブックマークしました。
ただ今の所は千円程度ならアドレスピン等でも16本は欲しいと考えてます。

昨年までは下のスレにいまして322が自分です。自分も千円がはした金とは思いませんけど
千円程で基板設計やソフトで楽できるなら安いと考えてるから余裕があるのかも知れません。
因みにリンクで画像を貼った「緑色の基板」も実装して1300円で個人的には、お手頃感です。
ただし秋月のFT245RL(千円、しかも送料500円が痛い)は除きます

【懐古趣味】ワンボードマイコン総合スレ 第三章
ttps://matsuri.2ch.sc/test/read.cgi/i4004/1504237364/

322ナイコンさん2018/02/16(金) 21:44:28.65>>326
>>315
当時の技術書には拡張ハードの製作があって手を咥えて見てたけど、その手の拡張ハードの基板を
1000円&#12316;2000円の安価で提供し技術書をCD(DVD)等で同梱したERISシリーズを2万円なら納得する。
ここまでするなら横流しと揶揄されない。ただ未だ形になってないので現時点では妄想レベル。

326ナイコンさん2018/02/17(土) 08:20:54.91>>330
>>322
数が出ないものをそんなはした金で提供しろと?
そこまで言うなら自分で企画して開発委託でもしてみりゃいいんじゃないですかね
いくらかかるか

572 :
>>571
求めている物とちょっと離れるけど
Z-80のPIOや周辺をATMEGA32Aに任せて
SDカードやFLASHメモリなどの最近のデバイス使い放題にしてる
Z80-MBCが参考になるんじゃないかな
https://hackaday.io/project/159973-z80-mbc2-4ics-homemade-z80-computer

ESP32にCPUエミュレーションさせて
ATMEGA328あたりに周辺I/Oまかせて
8bit程度のパラレルバスで高速転送すれば
VRAMのDMA転送までまかせられるかも知れないね

573 :
>>562
俺も詳しくないけど

AVRの場合、wレジスタIOレジスタの移動は1サイクルで実行できるので予めwレジスタにx00とxffを用意しておけば24本のIOを3サイクルでin/outの切り替え出来るって
>>558 の人が書いてる

574 :
>>569
>>570
どうもありがとうございます
PD1はプルアップ無しで作ってみたんですがやり直します

575 :
>>568
この続きです
S端子ケーブルを切断してみたら4本の線の他に被覆無しの寄り線も入っていました
コネクタ周りを分解してみると被覆無しの寄り線はコネクタの外側にはんだ付けされてました
この被覆無しのより線はArduinoのどこに繋いだらいいんでしょうか?
これもGNDですか?

576 :
>>575
シールド線のことだね
それはノイズから信号に影響を受けない様にする
あるいは信号線からノイズを外に出さない様にする為だけど
非常に難しい問題が含まれているのでいるので説明しないけど
1. GNDに接続する
2.金属筐体に接続する
3.カットしてどこにも接続しない
の内のどれかです
ただ今回の場合はどれでもいい気がするけど

577 :
>>576
どうもありがとうございます
ケーブルの中には色付きの被覆あり単線が4本、被覆無しより線が1本で、そしてそれらの周りにはすぐに千切れる薄いアルミ箔みたいなので覆われていたんですが、このアルミ箔はどこにも繋がないで捨ててしまって大丈夫ですか?
分解してみたコネクタだとアルミ箔は外してあるみたいでした

578 :
繋げなくていいですよ、アルミ箔はまさしくノイズ対策
ノイズの影響を遮断するために、わざわざコードにアルミホイルを巻いたりするぐらい

579 :
>>578
ありがとうございました

580 :
>>572
案内どうもです。はるか昔、8bitPCで拡張カードを作りたかったことを今実践しています。

それで>>546のリンク画像の「黒い基板」でやりたかったことは8ビットPCで、CPUの切替でした。
リンク先の画像に写ってるFM-7と言う8ビットPCはメインCPU(MPU)が6809だけど動作しながら、
オプションのZ80とCPUが交代できる仕様です。今回はZ80の代わりに「Arduino」を使って切り替える
実験をしてます。

それで、「6809 → Arduino」はサンプルがあったので実現できてますけど、その状態から再度6809に
戻すことで躓いています。動作させながら CPU(MPU)の切替は面白い試みですがハードルも高い感じです。
理由は切替のフラグを74LS74で持ってるようですが、既定値を書いて「Arduino → 6809」に戻す際に
ソフトで処理してるので、Arduino と 6809 でバスが衝突してるのではと推測しています。ですので
ハードを追加しないと確実な動作は無理かなと思いながら衝突する時間が短ければ大きな不都合がなく、
制御が 6809 に戻る可能性もあるとも考えてまして Arduino の出力を一瞬で停止したかった訳です。

>>573
説明して頂いたことを指針として高速処理したい部分をインラインアセンブラにしてみましたした。
結果は質問の前よりは前進しました。因みに前進した内容は「BREAK + RESET」で先に「RESET」を
離し次に「BREAK」を離すと(ホットスタートと言うことがあります)6809に戻ることがあってメモリに
Arduino で書いた内容が残っていました。ただ書いた内容が正確に反映されてない問題や確実に戻ると
言う状態でもないので、その辺りはもう少し実験してみます。

長文失礼しました。

581 :
>>580
やっと具体的な機種名出たか
FM77ならESP32に入らないけど、FM7ならVRAM含めて
520kbで収まりそう、メイン6809サブ6809拡張Z80も240MHzデュアルコアでスレッドまわせばいいだけ
あんまやる意味無さそうだなと思いつつ

16MHzのMEGA2560では能力不足だと思う
ttps://blog.goo.ne.jp/purupoo/e/f483d12a80cea5222e3dcd22d02ac22d
この人みたいにCPLDかFPGAでバスI/Fチップ作ったほうが早そう

582 :
質問者も回答者も皆同年代だ。安心して質問したまえ

583 :
全く理解出来ない趣だけど、実機でCPUエミュレーション?する事に意義があるんじゃないのか

584 :
対策はわからないけど、そういうものを何に使うのか、なぜそうなっちゃうのか興味がある。

585 :
PC88MkUSRのFM音源を実機のスピーカーで聴きたい願望はある

586 :
>>584
歳取って時間を持て余すようになるとな
当時出来なかった事を死ぬ前にやっておきたいと思うようになるんだよ
悔いが残らぬよう

587 :
そういえばFPGAにZ80コアあったからそれ使えばワンチップで出来ちまいそうだな

588 :
つか10年以上前に1チップMSXてのがあったな

589 :
結果報告をします。アドバイスを提示してくれた方へ、ありがとうございました。
下のようにインラインアセンブラのコードを入れましたけどソフトでは無理のようです。
asm("DDRG = B00000000"); // data D40 EB port inputmode
asm("DDRF = B00000000"); // address(0-7) port inputmode
asm("DDRK = B00000000"); // address(8-15) port inputmode
asm("DDRL = B00000000"); // data D43 RWB=WRITE port inputmode
asm("DDRC = B00000000"); // data(30-37) port inputmode
>>581
>やっと具体的な機種名出たか
画像から判る方はいると思いましたし黒い基板の製作者に迷惑が及ぶのではと考え当初は
積極的な明示は控えました。とは言え回答する方も「結局、何がしたいのか?」と訝しむ的なことは
当然と思います。基板の製作者に迷惑が及ぶことを避けたかったことが真意ですので御了承下さい。
因みにリンク先の方は知ってました。現在彼が趣味で取りくんでる内容は40ピンのインターフェースを
通じてMMUを用いて 6809 で1Mバイトのアドレス空間にアクセスする(ほぼFM-77仕様)ことです。
FM-7の40ピン使う着想は似てるかも知れませんが今回の基板は自分のオリジナルではありません。
>>586
正にその通りです。

590 :
実機に新たに作った拡張ボードや周辺機器を付けたいってのはいっぱいあるし
逆に周辺側のものや古い部品で新たに作ったものを
実機じゃなく今新たに制御したいってこともよくある

591 :
>>589
同期はどうなってんの?
6809は2MHz、MEGA2560は16MHzなんだから
7命令以内で完了すれば間に合いそうだけどな

592 :
Arduinoで日本語を扱いたい場合どうしたら良いんだ
UCS/UTF16なら全対応のSJISテーブルでどうにかなるけどUTF-8とか
どうしたら良いのかさっぱり

593 :
>>589
インラインアセンブラをなんだと思ってンの?
何もかも違うしそのコードコンパイルしたアセンブリコード見た?
何もしてないでしょそれ

594 :
ATmega2560でDDRC,F,G,K,Lを0b00000000するインラインアセンブラならこう

__asm__ __volatile__(
"eor r16, r16" "\t\n"
"out 0x07, r16" "\t\n"
"out 0x10, r16" "\t\n"
"out 0x13, r16" "\t\n"
"sts 0x107, r16" "\t\n"
"sts 0x10B, r16" "\t\n"
);

もちろんこのままじゃr16は破壊されるからそこは自分でなんとかしろ
その関数内でゼロレジスタとして決め打ちしておくとかpush,popで待避するなり

595 :
富豪さんはネタで笑いを提供してるだけな気がするぞ

596 :
Pro MicroにLチカのスケッチを書き込んだらその後シリアルポートから消えてしまい書き換えが出来なくなってしまいました。
どうやったら再書き込み出来るんですか?

597 :
その手のは書き込みが始まった時にリセットボタンを押せばなんとかなったりするんじゃなかったっけ

598 :
あーシリアルポートからも消えたのか
じゃあ違うかもな

599 :
>>591
下のCPUの状態(遷移)は74LS74が保持してることを前提として

1)6809 の停止は「POKE &HFD05、1」と言う命令で FM-7 自体が停止状況を作り出す(LED点灯)
その後 6809 が停止した状態では MEGA2560 が FM-7 のバスを支配下に置きメモリ等に読み書き可能

2)6809 が停止した状態から同じアドレスに MEGA2560 が「0」を書き込んで 6809 の停止状態を解除する(LED消灯)
3)しかし「0」を書き込んで 6809 が動きだした時点で MEGA2560 は未だアドレスバス等でOUTPUTの状態を維持し
信号を出しているので バス が衝突してることは確かなのではと考えてる。つまり MEGA2560 が 6809 の停止解除後の
7命令以内であれば 6809 が停止を続けてると言う訳ではなく、解除したと同時に動作は始めてる。

自分としては、その状況が有っても、運良く大きな支障(影響)もなく 6809 に制御が戻る可能性に期待したけど
確かめてみると、そうは問屋下ろさなかったと言う結論になりました。

なおロジックアナライザがあれば更に詳しくは判ると思うけど、その類の機材はないので。

>>594
MEGA2560 が FM-7の「&HFD05」に「0」を書き込んだ後は物理的に MEGA2560 が壊れれない限り
レジスタ の内容の破壊は許容範囲。とは言え asm("DDRG = B00000000"); ではダメなのかな?
一応、自分なりに調べて「DDRD = B11111110;」を真似して asm(" "); で括ったけど。
http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=850

600 :
>>599
asmで囲むことにどういう意味があるかわかってんの?
なんかやりたいことに対してあまりにも知識が無さすぎると言うか
バカにしてるとしか思えん
俺は抜けます
>>595が正解だな

601 :
>>598
出てこないです…

602 :
>>601
DFUローダのやつ?Leonardクローンのやつ?

603 :
>>601
中華コピーだとオマケのUSBケーブルがくそだったりするから
ケーブル変えるのも1つかな。あとはIDE再起動。

604 :
>>602
>>603
Hiletgoの中華コピーです。ケーブルは付いてきて無いです。
GNDとRSTにタクトボタン取り付けてみました。
ボタンを押すと一瞬だけシリアルポートが見えるみたいでした。
これが通常の動作ですか?

605 :
PC再起動も試しました。
一番最初にPro MicroをMacに繋いだ時、キーボードがなんとかってダイアログが出てきてそれを閉じたんですが関係ありますか?
それ以降そのダイアログは出てきてないです。

606 :
6502といい6809といい、なんでZ80ボード載せたがるんだろうなw

607 :
テーブルや変換に莫大な容量使う位なら、テキストをSJISのHEXでchar型に入れた方が手軽なのかな

608 :
>>605
ケーブルが怪しいなぁ

609 :
>>608
いくつかケーブルあるけど他のボードだと大丈夫でした
(sparkfunやadafruitなど)

610 :
>>609
中華&Macか、CH340のドライバかも。
以前MacOSごと落とすひどいドライバに当たったことある。

611 :
このサイトのリセットを2回押すやつ試してみた?

下の方の「ブートローダモードにして修復」の部分
http://okiraku-camera.tokyo/blog/?p=8390

612 :
>>609
リセットの手順ちょっと違った
pro miniの場合だけどこんな感じ
参考にしたページのアドレス貼れないからコピペ

Arduino Pro Mini側のリセットボタンを押しながら、
Arduino IDEのアップロードを実行し、
FTDI-USB変換ボードのTXが光った瞬間に、
Arduino Pro Mini側のリセットボタンを離す。

613 :
 山本太郎はオR



 山本太郎はオR

614 :
>>605
comポートが変わった事にお前さんが気付いていないだけなのでは?

615 :
>ボタンを押すと一瞬だけシリアルポートが見えるみたいでした。
って書いてるから、んなわけないでしょ

616 :
書き込めなくなったときのリセット2回押しとかのタイミングって
何回かやってるとコツが分かってくるんだけど
問題起きたときしかやらないから記憶に残ってないし口では説明しにくいな

2回押ししてから素早くポート選び直して転送開始し
LEDが通常の転送成功時と同じパターンで点滅した直後か点滅してる途中ぐらいで再度2回押し
とかだったかな

617 :
>>599
マップドIOだと思うので
アドレスバス使わないとレジスタ&HFD05に書き込めない
6809のクロック立ち上がりか立下りを待って
同期取らないと7命令確保できないよ

618 :
>>610
Pro MicroなのでCHxxxなどの話は今回は関係ないです
>>612
リセットボタンを押して一呼吸くらいしてから(そしたら一瞬現れる)からシリアルポートを選択
書き込みボタンを押してからふた呼吸くらいしてからリセットボタンを押したら書き込めました
>>614
ls /dev/tty.*で確認してます
>>616
ぐぐると、2回押すとDFUモードに入るかとかなんとかって書き込みがあったんですが、その状態になるとどうなるか分からないので難しいですねこれ

619 :
>>618
もう一度、確認してみな。
今、LeonardoでLチカをやってみたが、
com5で書きこみしてcom13に変わったぞ。

620 :
>>619
すみません、Windowsの話は分かりませんが、自分は特定のポートを決め打ちして書き込もうとしてる訳じゃなくて、そもそもポートが見えないって話です。
で、リセットボタンを押すと一瞬だけ表示されるからその時IDEで選択して書き込みボタンを押す、そしてまたリセットボタンを押すと書き込みが出来るという所まで分かったというのが618です。Macではポート番号は変わってないです。(結果的に決め打ちしてますけど)
中華はともかくとして、SparkFunのPro Miniでも毎回この手順を踏まなきゃ行けないんでしょうか?

621 :
Pro Miniはまた違うと思われ

622 :
>>621
すみません、Pro Microの間違いでした

623 :
書き込めたのね。よかったよかった。
Leonardoを引っ張り出して思いだしたw
HIDを使ったあとはcomポートがすぐにHIDに切り替わっちゃって、
パソコン側でcomポートがつかめなくなっちゃうんだった。
オレも経験したわw

>>620
むかし、オレもこのケースはすごく悩んだ気がするが、
LeonardoはArduinoIDEが"書き込んでます"の表示になったら
リセットボタンを押すとアップロードできたと思う。
HIDを使わなければこの症状はならない。

624 :
HIDを使わなければ
っていうのはどうやるんですか?

625 :
最終的にピンモードの高速変換を下のようにして(インラインアセンブラなのか?)
1)MEGA2560 使った FM-7 のメモリに書き込みは成功(これは前から成功例あり)
DDRG = DDRG | B00000000; // data D40 EB port inputmode
DDRF = DDRF | B00000000; // address(0-7) port inputmode
DDRK = DDRK | B00000000; // address(8-15) port inputmode
DDRL = DDRL | B00000000; // data D43 RWB=WRITE port inputmode
DDRC = DDRC | B00000000; // data(30-37) port inputmode
2)この後ホットスタートで 6809 に制御が戻り、モニタコマンドでメモリの変更を10回程確認
3)しかし FM-7 のメモリに書いた(テスト)プログラムの起動は BASIC の EXEC コマンドでも
モニタの G コマンド でも失敗。最終的に↑がしたかった。ソフト的な面では、この辺りが限界かなと。
お騒がせしました。
>>600
何せ「Arduino(IDE)」を使い初めて8日目なので判らないことが多いです。

626 :
>>624
HIDはヒューマンインターフェースデバイスだったかな。
つまり、"Keyboard.h"や"Mouse.h"をインクルードしない。という意味なんだけど...

627 :
>>626
どうもありがとう
サンプルスケッチのLチカを呼び出しただけだからそれらはインクルードしてないはずなのに…なんででしょう?

628 :
>>626ではないが
原因はわからないけど、そういう報告が結構あるから>>612みたいな対処法を書いてくれてる人がいるんだと思う
ちなみにおれもPro MiniでLチカやっただけなのに2度め書き込めなくなった経験がある

629 :
>>627
うちの場合は、Leonardoだけど、下記の三つがある。
Arduino Leonardo bootloader (com4) リセットした時に一瞬でるやつ。
Arduino Leonardo (com5) "Keyboard.h"をインクルードするとcom5になる。
Arduino Leonardo (com13) "Keyboard.h"をインクルードしないとcom13になる。
Windowsだから参考にならないかもだけどw
あ、原因はオラにもわからんです。すまん。

630 :
SSD1306の描画ライブラリ書いてて思ったけどVerticalモードでアクセスした方が良いのかな
P/Hは縦8ドットのフォント描く場合に限って楽だけど、それ以外はVの方がビット配列的に自然?

631 :
>>628
>>629
どうもありがとうございます
昨日の >>596 です
今日は別の店のPro Microが届きました
昨日のボードとは違ってMacに繋いでもキーボードがなんとかのウィザードは出てこないし、MacのシステムプロファイラやArduino IDEではArduino Microとして認識していました
ボードからArduino Microを選んでサンプルのLチカを書き込んでも昨日のようにシリアルポートから消える事もありませんでした。
これなら普通のArduinoとして使えそうです

632 :
Windows買えばええねん。

633 :
>>632
賛成
Arduino側が扱う回路によっては、USB経由で最悪パソコンを壊す可能性あるし、中古で充分だから、万一壊しても損害の少ないWindowsマシンを1台持っとくといいと思う

634 :
>>585
音源に付いて同様な思いがありますけど例えば Arduino を使って脈はありそうですか?

635 :
PSGなら実際にやってみたしFM音源もやればできると思う(やってる人は沢山いる)
今やってるのはAVR16MHzのdigitalWriteだと辛い感じだけど

636 :
日高総帥のマシン語サウンドプログラミング読めば
FM音源チップでまともに演奏するには気が遠くなるぞ

637 :
>>635
>>636
レスありがとうございます。

先ずはPSG音源から始めてFM音源については、その後に考えてみます。

638 :
Arduino Nano 33のMicro USB端子はもげやすいタイプなんだな
高いのになんだかなー

639 :
先日始めたばかりの者で、プログラミング関連は全く入門以前の知識ではありますが質問失礼いたします。

前置きとして・・・電子タバコの電源機器(電気回路としての分類上は電熱回路)を作りたいと思い、ひとまず現在システム試作としてUNO REV3と
OKL-T6-W12N-C搭載秋月オリジナルモジュールを組み合わせて、以下に提示する接続回路およびプログラムでコンバータモジュールの出力を
任意で調整できるところまではやってみました。
・ブロック図(Trim-GND間の部分をトランジスタ換装でデジポテ的に電流制御しました)
https://dm-vaporizer-produce.webnode.jp/_files/200000058-a6865a6866/KIMG0301.JPG
・プログラム
https://dm-vaporizer-produce.webnode.jp/_files/200000059-ea2a6ea2a8/Arduino_vv_curve_prototype1.JPG
・テスト時の実際の様子
https://www.youtube.com/watch?v=Cv0PycJ8j20

ここで次の段階として、コンバータ出力段に接続した発熱体コイルの抵抗値を常時読み取り、演算を介して電力指定でArduinoボードが出力電圧を
自動的に調整するようなプログラムおよび回路を組むには一体どんな方法がありますでしょうか?
例えば発熱体コイルの抵抗値が1Ωだとして、9Wの出力電力を指定して3Vの出力電圧に自動で調整するといった感じです。

640 :
PID 制御の温度コントローラーがあるけど

641 :
>>639
> 発熱体コイルの抵抗値を常時読み取り
考え方として
発熱体に与えた電力は全て熱に変わると仮定して
供給電力制御のみ行ったほうがシンプル

DCDCの発生する電圧は発熱体の許容80%程度にTrim設定しこれをいじらない
上記を100%性能とし、DCDCのON/OFF端子をスイッチングしPWM制御する
データシートを見るとDCDCのON応答は6ms遅延があるので数Hzで
次のステップは温度センサーで制御になるけど
最初の10秒はフルパワー、以降50%、3分後に自動OFFとかでいいんじゃね

642 :
1Ωは計測できるでしょうけど、サブオームを計測するのは、無謀なのでは?
温度管理するには、Ni、Ti、SS、どのコイルもサブオーム帯での運用ですよね。
普通に FT なりで MOD 買った方が早い。どっちにしろ温度管理も、制御カーブも
使わんようになる。

コイルの抵抗値を計測するために、引っ張りだした配線の抵抗値だけでも。。。
それにコイルに流す電流が 20W〜75W でしょ?

643 :
温度はどうでもよくて単に指定のWだけ発熱させりゃいいんだろ?
V=√(WΩ)で済むじゃねーか

644 :
>>639
初心者にわかりやすい手段としてarduinoのADコンバータを使った手法

回路を以下の通りに変更する
・発熱部のGRD側と出力コンデンサの間に0.1Ω程度の抵抗を挟む(入れる)抵抗値は流す電流によって選択する
・arduinoからVoutの電圧を取得出来る様にする
・arduinoから発熱部のGRD側と上記で追加した抵抗の発熱部側の電圧を取得出来る様にする

測定
DCDCが作動してる状態で抵抗側の電圧測定する(例2.5Aで0.25Vの電圧発生)
DCDCの出力電圧を測定

あとは計算すれば発熱部の抵抗値が求められる

例 3v / 2.5a -0.1Ω = 抵抗値

645 :
発熱回路を作りたいんでしょ?

電子タバコの抵抗値は少数2桁の精度だよ。
0.10Ωから1.80Ωの間で、赤熱するコイルを計測するんだが、
18650バッテリーを極端に言うとショートさせてる状態。
常時 5V 30A とか流れ、吸いはじめのピークは 60A にもなる。
USBの 5V とは、レベルが違う。

だからバッテリーの許容範囲を超えて、低抵抗にして
爆発事故が頻繁に起こる。低抵抗の方が発熱量が多くて
いわゆる若者が好きな爆煙になる。

素直に MOD を買うか、DNA基盤を買ってケース自作程度にしとけ。

646 :
直接arduinoの質問では無いんですが、よくあるピンアサイン図の様な物はどう言ったソフトで作るのが楽なんでしょうか
おそらく一番楽なのはエクセルだとは思うんですが、フリーソフトで何か無いですかね

647 :
KiCAD

648 :
>>646
>よくあるピンアサイン図の様な物
例えばどれ?

649 :
>>640
ご提案有難う御座います。
要するにリバースエンジニアリングするということでしょうか?

>>641
ご教示・ご提案有難う御座います。
すみませんが“発熱体の許容80%程度”という部分につきまして、具体的に何の許容値のことかお教えいただけると光栄です。
この許容値とは熱容量のことになりますでしょうか?
また、リモート端子の数HzON/OFF制御に関してですが、digitalWriteのHIGH・LOWを使いHIGH側のdelay値を101以上にするということでしょうか?
ちなみにですが次のステップとなる温度センサーは、測温抵抗体式として発熱体自体が検温部になることを考えています。

>>642
ご指摘有難う御座います。
まず抵抗値に関してはミリオーム単位の世界で細心の注意を払わなければならないのは重々承知しています。
つきましては各種接合に関しても従来とは違った設計を考えています。

例えばコネクタ部と基板部の接合は、リード線ではなく例えば以下に紹介するLUXOTIC MF BOXのようなターミナルとネジ止めで考えています。
https://dm-vaporizer-produce.webnode.jp/_files/200000060-d9ea2d9ea4/KIMG0303.JPG
この他にもアトマとMODの接合において、ポジティブピン端面接触ではなくネジ接合を考えています。
また、ネジ切り違いによる問題は例えばアトマベース取り付け後に別途ポジティブ側アセンブリを組み込む構造で解消しようと考えています。

あと余談ではありますが・・・一応既製品は既にいくつも所有しており、電子タバコの愛好暦は現在5年半ぐらいとなりTC使いはKOOPORmini
(KP60)使いを機に4年ぐらいになりますが、個人的にはTC機能はおそらくこのままずっと使い続けていくと思います。

特に今はArcticFoxがあり、更に嗜好性・応用性が高められる物があるのでこれはもう手放せません。
それこそパフカットタイム60秒設定やオートスイッチ機能は、電子タバコとしてだけではなく、例えばCigalliaのCIG2.0のアトマを流用して
加熱式タバコおよびハーバルヴェポライザーとしての運用も難なく可能になります。

また、この電熱技術は例えばNovelLife TS80のようなTCハンダゴテとか製作する上で応用が利くと考えています。
ArcticFox使いを機にウェアシステムおよびプログラミングに魅了され、これからはそういった工作も趣味にしていく所存です。

>>643
ご教示有難う御座います。
最終的には温度制御も目標にしています。
一応段階的にシステム開発を考えていましたので、次点としては電子タバコ用語で言うところのVW機能の構築を考えていました。

先に説明した私のプログラムでは、まだVV機能と言われるものでしかなく演算による制御が含まれておらず、温度制御システム構築以前の
問題なので段階的には演算を組み込んだプログラムの作り方を覚えるためにまずVW機能を選択しました。

つきましてはご教示いただいた演算を組み込むための文法等はどんなものがあるのかをお教えいただけると光栄です。
恐縮ですが現段階では各文法等の意味や使い方すらまだろくに知らない状態にあります。

650 :
>>644
ご教示・ご提案有難う御座います。
つきましてはプログラミングにおいては一体どういった文法等を選択すれば良いのでしょうか?
恐縮ですが現段階では各文法等の意味や使い方すらまだろくに知らない状態にあります。
また、シャント抵抗に関してですが、ご提案はVoutに対し並列に組むということでしょうか?

>>645
ご指摘有難う御座います。
まず危険性については重々承知しています。
そして試作において電池の消費電流に関しては、ラジコン用ワットメーターを活用し監視する所存です。
※先に提示した動画をご覧いただければそのワットメーターによる監視状態が判るかと思います

ちなみにですが最終的な想定としては、コンバータモジュールをもっと高スペックにして50W運用あたりを最大として考えています。
そして電源構成は採用コンバータモジュールの仕様のこともあり、3セル直列構成あたりで終止電圧をセル当たり3.0Vで想定していますので
安全マージンを考慮して効率70%と低く見積もって入力段消費電流は最大10A未満で考えています。
また、採用セルはラジコン用とかの高出力対応小型リポかリフェを考えています。

651 :
fritzingみたいなやつ?

652 :
ごめん 651は >>646への質問

653 :
荒らしか?w

654 :
>>945
あと余談ですが・・・DNAは200以降はチョークコイル二個使いによる昇降圧独立制御コンバータなので魅力的ですが、
肝心のウェアシステムであるEScribeが機能的に狐より劣るのでイマイチ食指が動かずにいます・・・。
特にハーバル使い含めいろんな使い方・ビルドする私にとって、オートスイッチ機能やPI値変更機能が無いDNAはデメリットが大きいです。

655 :
すみませんアンカミスです・・・。>>645でした。

656 :
>>648>>651
https://i.imgur.com/X9HdQBN.jpg
こんな感じの
欲しい情報が一枚に揃って無く色々見ないといけない事が多いので、必要な情報纏めたいなと
とりあえずGoogleスプレッドシートで弄ってみてます

657 :
>>656
わざわざ電々板で聞くから完全に想像してたのと違ったわ。
表計算系のソフト、うちで使ってるので言えば LibreOffice Calc か Draw かな。
https://ja.libreoffice.org/

658 :
>>650
一応簡単な回路図面
https://imgur.com/iMphtIr

適当にスケッチ書いてみたけど、以下言い訳
・Arduinoのスケッチを描いたのはこれを入れて3回目のみ
・検証はしていないのでこのまま動かない可能性の方が高い
https://imgur.com/tmtPDpW

これも、650さんが動かしてるのもそうですが、DCDCが正しく機能してない・・・
正直MOSFETに置き換えても同じ結果が得られるはず

電子タバコは吸わないので詳しくないけど発熱の回路を作るなら 
バッテリー>LCローパスフィルター>発熱体>シャント抵抗>N-FET>
バッテリー>LCローパスフィルター>P-FET>発熱体>シャント抵抗>
で構成してFETをPWM制御した方がシンプルじゃないかな

659 :
>>656
その程度なら、cassavaという表計算が超軽くていい
メモ代わりに使えるくらい軽い

660 :
>>658
ご教示・ご提案誠に有難う御座います。
まずご教示いただいた内容をきちんと理解して、これから実践して覚えていくと共に精進する所存です。
つきましては恐縮ですがご教示いただいたプログラムにおいて、大まかな概要を人間語および日本語的に箇条説明していただくことは可能でしょうか?
なにぶんまだ機械語(および英語)に慣れておらず、更に自身がアスペルガーなこともあり各文法の意味等の理解に苦しんでる状況にあります・・・。
一応人間語的な話で取っ掛かり的な部分が掴めれば理解可能なんですがそれがまだ出来ていない状態です。
ちなみにですが教本は今のところ“ゼロからよくわかるArduinoで電子工作入門ガイド”と“みんなのArduino入門”の二つは買ってみたのですが、先に
説明しましたアスペルガーなこともあり中々行間が読めず教本内容の理解に苦しんでいる状況にあります・・・。
お手数かと存じますがもし可能であればプログラムにおいて箇条説明を宜しくお願い致します。
また、後学のためにDCDCが正しく機能してないという部分において、どういった部分の問題要素なのかご教示いただけると光栄に存じます。
つきましてはシステム全体の回路において、チョッパを介さない方が良いのはどういった要素があってのことなのかご教示いただけると光栄に存じます。
一応電子タバコ用途としての大まかな概要を説明しますと、発熱体は常に単一の物では無く使用者が随時いろいろ仕様を変えて組み込む感じになります。

661 :
すみません補足です。
チョッパの意味はチョークコイル等のインダクタによるコンバータの意味で言いました。

662 :
>>658
補足としてもう少し電子タバコ用途としての概要を説明しますと、発熱体は測温抵抗体となり主にニッケルコイル等を採用します。
そのニッケルコイル等の抵抗値変動を読み取り、その変動値を温度に換算して演算により指定温度=指定抵抗値になるように
出力電圧および電力を制御するシステムです。
また、多種多様な発熱体を換装して、その都度演算のための基準値を任意の値に変更することが可能なシステムです。

663 :
Niコイルってことは、大まかに言うと、常温時に 0.1Ω、発熱時に 0.8Ω
ぐらいだよね?
その抵抗値を計測する、リード線の抵抗値は?
生セルのメーカーにもよるけど、0.1Ωを少しでも切ると。。。
https://youtu.be/PLBOqRg79bg?t=1m19s

664 :
>>663
ご指導有難う御座います。
まず基準となる冷間抵抗値が0.1Ω仕様なら、電子タバコとして実用的運用温度帯の理論値は以下のようになります。
https://dm-vaporizer-produce.webnode.jp/_files/200000061-6c7256c727/ni_tcr.JPG
※基本的には200℃前後の運用温度になるので0.2Ωあたりとなります
また、抵抗値測定方法として4端子法のシステムが組めないか考えています。
これであれば問題無いのでは?と考えています。
TCMODの既製品は例えばDNAや狐仕様ですと、リアルタイムレジスタンスで1mΩ単位の分解能で測定していたり、
基板内部抵抗を測定していることからおそらく基板上で4端子法の回路を組んでいるのでは?と解釈しています。
あと破裂事故についてですが、第一にインダクタ式コンバータによる出力制御を想定していますので、出力段の負荷の
抵抗値において直接的影響は低減可能であると存じています。

665 :
>>663
補足としまして・・・>>649で触れましたが、各種接続にリード線は一切使わず全てブロック的な物体で接合して
更にネジ止め可能な箇所は全てネジ締め付けにより接触抵抗の影響も低減する考えではあります。

666 :
666

667 :
>>650
コメントつけたよ
https://imgur.com/wfGCfup
まあ、本読んでも理解するのに時間はかかると思うよ
マイコンの場合、電子工作の知識・プログラムの知識の両方が必要だからね(どちらか一方でも詳しければいいけど・・・)
Arduinoあたりだとよく理解しないでやってる人も多いんじゃないかな?
私はArduinoに関してはリファレンスマニュアルに目を通した位しか知識ないです
DCDCの間違いに関しては以下のことが考えられます
・ArduinoのanalogWriteはアナログの電圧を出力してる訳ではない、490Hzか980Hz周期の矩形波を出力する(指定した数値に合わせた幅でHIGH・LOWが変わるだけ)
・Trim端子は電圧を調整るするために使うが、現状だと低い電圧と高い電圧を上記記載の周期で変化させてるに過ぎない
・負荷が小さいときに出力電圧を測定すると一見うまく動作してるように見えるが、負荷を大きくし、出力の波形をオシロスコープ等で観測すると矩形波に近い出力になると思われる
・つまり現状の回路だとDCDCは正しく機能してるとは言えず、もはやスイッチ程度の動きしかしていない
>>チョッパを介さない方が良い
これに関しては良いとか悪いとか優れてるとか優れてないの話ではなく(そもそも良いとは言ったわけでなくシンプルと表現した)
目的を達成するために少ない部品(単純な)で構成できたほうが、回路全体に対して理解がしやすいのでは?との考えです。
昇圧なしで単純に発熱コイルの出力制御だけならFETのスイッチングでも良いと思う
あと発熱部の抵抗が0.1〜0.2Ωの電流測定なら、シャント抵抗での損失を減らすために、
より低い抵抗値のシャント抵抗(もはや抵抗じゃなくて単芯の銅線を使ってもいい気がする)を使い
低い電圧をはかるための差動増幅回路が必要かもね

668 :
おまえらなんでこんな天才なの?

669 :
>>667
ご教示そしてコメントの件誠に有難う御座います。
まずご提案いただいた文法内容の意味と使い方をしっかり理解して、実践を通じ更に自身のやりたいことと合わせて精進する所存です。

それから問題点の意味は解りました。
言ってしまえば矩形波の如くまさに四角い車輪の再発明をしていたことになるんですね・・・苦笑
同時に>>641さんのご提案の意味も解った気がします。

確かに自分としても発熱体運用テストのとき、出力電圧が降下するのではなく逆に無負荷時より上昇する点は気になってました。
※動画では無負荷時の最大電圧を撮ってませんが開放電圧を測ったら5.65Vぐらいになります
一応自分なりに解釈してみたんですが、この現象はTHDの上昇により歪みまくった波形になってしまってるということになるんでしょうか?
可能ならオシロテストはやりたいんですが、高価故にまだ買えてないことが本当悔やまれます・・・。

そしてこれは一つの教訓としまして、まず回路構成の簡素化を実施する所存です。
また、これはこれでちょっと面白みがあるので、別途如何にアナログに近づけられるかは探求しようと思います。
つきましてはデジポテについてなんですが、デジポテも結局は同様な意味合いにはなってしまうのでしょうか?

あとシャント抵抗の件は解りました。
一応出力段の運用電流が10A以上とかも想定していまして、マルツ経由でデジキーに扱いがある数mΩとかを探していく所存です。
また、差動増幅回路のご提案も誠に有難う御座います。
自分としてはシャント抵抗を低くしたはいいが、その弱電圧をどう扱い処理すれば良いのかが判りませんでした。

ちなみにですが代用の件で銅線以外に、例えば相応に太いカンタルワイヤーとかでも代用は問題ないでしょうか?
カンタルであれば抵抗温度係数も抑えられるので最適なのでは?と考えた次第です。
一応現在所有の最大は20ゲージです。
また、抵抗値を決める際はどの測定器がお勧めかご教示いただけると光栄に存じます。

670 :
Intelの2MbitフラッシュROM、28F200のワード幅モード(BYTEピン=HIGH)って、通常のバイト幅モードだと
0x00000〜0x40000のアドレスで262144バイトにアクセスするところを
0x00000〜0x20000のアドレスで131072ワード=262144バイトにアクセスすることになるの?
バイト幅モードだと16bitデータバスの使わない上位8bitのうち1本を追加のアドレスバスとして使うようなことが書かれてるから
アドレス空間が2^17=131072になったり2^18=262144になったりするということで、多分そうなんだろうけど

671 :
>>669
DCDCの出力電圧について
ちょっとDCDCの仕様書を見てきました
回路から計算すると、トランジスタがONでDCDCの出力目標が約5.51V(Vce0.09Vの場合)に設定される
トランジスタのベースに電流が流れない状態だとDCDCの出力目標0.591Vに設定される
負荷が存在し、DUTY比50%の状態だとテスターではこれの中間程度の電圧が表示されるはず
DCDCは出力コンデンサにたまった電気を放電すること出来ないので、約5.51V付近の電圧でとどまる
測った数値が5.65Vとのことなので、ほぼ一致すると思います

テスターで見えない恐ろしさについて
0.591Vと5.51VをDuty比50%での状況、テスターでは中間の3.05Vほどに見える 
単純に1オームの負荷を接続した場合、電圧^2 / 抵抗 = 9.3W程の出力に思える
実際の発熱 (0.591V^2 x0.5 / 1 )+(5.51V^2 x 0.5 / 1) = 15.35W

一応、ArduinoからDCDCの電圧を調整する方法を提案しときます(コスト重視!)
https://imgur.com/L7s1RhT
この回路なら理論上0.7~5.0V位の範囲で調整可能だともいます
(ただしメーカーの想定した使い方ではないので不具合が出る可能性もあります)
analogWrite(0)で5V付近 analogWrite(255)で0.7V付近
コンデンサの容量を増やすと電圧のリップルが少なくなり、減らすと応答速度が上がります
注意点としてはArduinoで電圧を指定するまでと&電圧に到達するまでは5V付近に調整されることです
DCDCのON/OFFを使い電圧調整後にONすると良いと思います

672 :
>>669
シャント抵抗について
メーカーから精度の良いシャント抵抗を入手して使う場合は、シャント抵抗に差動増幅回路を接続して電圧を読みよるのが無難かと思いましたが、
そんな高価なものを使うのは負けた気がするので、他の手段を提案します
また、高価な計測器もなしの方向で(俺は持ってないし込々380円のテスターとか使ってる)

例えば、電子タバコの発熱コイルと電源部分がある程度離れてるなら、その電線をシャント抵抗として考えてもよいと思う
(例えば切断面積2.0mm2の銅線1mだと約8.6mオームの抵抗値が有る)
あとカンタルワイヤーをよく知らないので素材として適してるかは分かりません
距離が近い場合やらは適当に抵抗になるものを使う(用意する抵抗値に精度は不要なので予測値を計算で出したものでよい)
(ただ高い抵抗値の物は自己発熱での抵抗値の変化が考えられるので避ける)
必要な電圧に増幅する(単電源のオペアンプ等を使うと楽かな)増幅値は配線の抵抗も含め5V超えない範囲を狙う
最大電流=4V付近を狙う計算例> 倍率 = 4 ÷ (最大電流 * (シャント抵抗 + ローサイド配線抵抗))

この回路では電流と電圧が比例するので、電流をテスターなどで計測してそれを元に補正すれば精度の高い電流計測が可能になる
https://imgur.com/Ih4lbo8
計測1>適当なダミー抵抗などにテスターの測定電流値を超えない範囲で電気を流す(電流値を読み取る)電流はコイル部分よりハイサイド側で測る
計測2>実際に電流検知用の電圧を取り出す所の電圧を計測する(増幅するなら増幅後)
(計測箇所のテスターのマイナス棒は電源グランドのArduino用分岐点かArduinoのグランド)
電圧を電流で割ると1Aあたりの電圧が計算できるのでそれを基準にする
この回路なら発熱コイル直前の電圧・直後の電圧・電流の計算値を使い、コイルの抵抗値を実用的な数値で求められる(と思う)

増幅回路について
シャント抵抗の増幅回路について(増幅回路が必要な場合)
・ハイサイドにDCDCやFETを使った場合、コイル付近のローサイド側の電圧を増幅回路を使い増幅後計測する
・ローサイドにFET(FETをグランドに接地)を使いスイッチングする場合、シャント抵抗の前後の電位差を差動増幅回路で増幅して計測する
(ただし、電源>発熱コイル>FET>シャント抵抗>グランドの場合は増幅回路で計測)

673 :
プルアップされたGPIOでセンサーのHIGH信号を読み取りたい場合
センサーをNPNトランジスタのBに繋ぎ、CをGPIOにEをGNDに接続して
LOWを読み取れば宜しいのでしょうか

674 :
>>673
センサーの出力部の仕様によって違うけど、製品名と型式は?

675 :
>>674
おそらくSB612Aと言われるタイプの焦電センサーとRCWL0516のドップラーレーダーで
反応見ながらどちらかと思ってます

676 :
>>673
その方式でレベル変換回路として成立しますが、ノイズに弱い回路になると思います
一見正常に動作して見えるので、時々でる誤動作に悩まされる可能性が高いです
一般的にはセンサーとArduinoに距離が空く事が考えられますが
◆トランジスタがArduinoに近い場合
・センサーの配線からノイズを広い、トランジスタで増幅される
◆トランジスタがセンサーに近い場合
・Arduinoのプルアップ抵抗が大きめの抵抗値の為、やはりノイズに弱い
◆対策(一部、もしくは複数の対策をする)
・トランジスタのベース入力に大きめの抵抗を入れる
・トランジスタのベースをプルダウンする
・トランジスタのベースに抵抗とコンデンサを入れる(反応速度に合わせて適度なもの)(RCフィルタ)
・トランジスタのコレクターにArduino内蔵プルアップより低い抵抗値の抵抗でプルアップする
・トランジスタの増幅率hFEの低いものを選ぶ
・Arduinoのプログラムでセンサーの信号を拾う条件を厳しくする(ソフトウェアフィルタ)

また、SB612Aはオープンコレクタ出力なので、上記の接続方法では機能しません
適当な抵抗でプルアップして使うことが前提になります

677 :
ここはド素人がこんなの作りたいんだけどっていうものを相談しても良いスレですか…?

678 :
>>677
どぞどぞ

679 :
はい

680 :
ありがとうございます
まだ内容がとっちらかっているので
後程纏めて相談させていただきます

681 :
長くなってしまったのでjpgで…
https://i.imgur.com/MvWaQUH.jpg

こんなの作りたいんですがどのようにしてやればいいのか
全く知識がないので教えていただければ幸いです

waves Arduino Pro Mini
HiLetgo pro mini ATMEGA328P
というボードはいくつか持ってます

英語わからんし知識ゼロなので全く理解出来てないけど参考になりそうだと思ったやつ
https://pastebin.com/ZmDuquLc

http://www.france-airsoft.fr/forum/index.php?showtopic=200650

https://forum.sparkfun.com/viewtopic.php?f=14&t=31118

682 :
まずはバッテリー電圧低下の警告からやると良いと思う

683 :
音声関連はDFPlayer Miniでクリアできるかなぁ

684 :
え?鉄砲の中に組み込むの?Arduinoを?

685 :
>>682
http://www.d-b.ne.jp/~k-kita/arduino_115.html
こんな感じですか?

>>683
microSDを入れるやつですね
一つ持っています

>>684
最近はマイコン制御増えてます
トリガーの部分に入れて制御するものもありますが高いです

686 :
>>685
じゃあ基板から作る覚悟なんだね
すごいな、てっきりまったくの素人かと思っていたら完全なる玄人じゃんw

頑張って!

687 :
>>686
いや全くのド素人で知識ゼロ
基盤は作らず導線で元のスイッチと連動させるつもり
見た目は悪いけど原理としては基盤直付と同じ動作になる…はず
もしできるのであれば作りたいけどね…

688 :
あもう必要になりそうな部品は調べてある程度持ってる状態なのね
距離計測のセンサーは何か良いのあった?

689 :
>>688
そんな感じです
距離センサーはまだ見つかってません

ゴルフで使用する距離計をイメージしているのですが
秋月電子で調べても測定距離が2m程度しか無いので実用性が無いです

690 :
>>687
回答者は意地悪な人が多いなぁ

俺の電動ガン知識がニッカド〜ニッケル水素の時代に少し触れた程度の知識なので時代に合ってないかも・・

電動ガンのFCUを作るうえで知ってる範囲での注意点を
おそらく今でも電動ガンの電池はニッケル水素がメーカー標準だと思う
3セルのリチウムを直接電気流したら遅かれ早かれギアが欠けると思うので電流の制御が必要になると思う

制御にFETを使う事が多いと思うが、ネットの情報で間違いが多い
以下よくある間違い
・FETを使う場合、フライホイールダイオード(フリーホイールダイオード)無だと逆起電力でFETの耐電圧を超える
 また、サージ電圧が発生するのでマイコンなどを破損するリスクがある
>対策として、上記のようにフライホイールダイオード等を使うかスナバ回路を使う
 (もともとスイッチ保護のためフライホイールダイオードついてるかも)

・FETでモーターを制御する場合、PWMを使うと思うがArduino標準のPWMではスイッチング速度が遅く、滑らかな制御が出来ていない
>対策としてArduinoのレジスタを直接制御してPWMの周波数等を変更する

・大容量FETを高速なPWMで制御した場合、FETのゲートを駆動する上でマイコンからゲートを駆動する為の出力が足りない(最大電流値)
たとえ4V駆動対応のFETでも瞬間的には十分な電流が流せないとだめ
>対策としてFET駆動回路を組む

その他の回答は後回しとして、完成させるためには作業するしかない
・適当な作業スペースを確保する(作業机1台専有する気持ちで)
・改造する電動ガンもしくは同等の制御の物をばらす
・作業台に分解した部品のうちギアボックス(またはモーター)とトリガー部分を適当に配置する
・Arduinoとそれ以外に必要な部品を配置する
・機能や目的ごとの回路を作る
・回路が完成したら組み込む電動ガンの組み込める隙間を探す
・隙間に合わせて回路の小型化をする

まずは手始めにArduinoからモーターを回したり止めたり出来るところで進めると良いよ
用意した部品の回路や写真を上げれば誰かが色々アドバイス(突っ込み)をしてくれるから

質問した内容の物を全て実現するにはそれなりに地道な努力が必要だと思うので、根気よくやるしかないよ

691 :
今の電動ガンはリフェかリポです
ニッスイなんて使いません

692 :
言葉の通じる巣窟から出てくるなよ。

693 :
>>685
電池の電圧監視についてですが、違います
もっと簡単にarduinoで電池の電圧検出すればよいと思う
まずはarduinoの適当な入門書を読むことをおすすめします

694 :
>>691
オレもそう思ったのだが、メーカー標準となると確かにニッ水だった数年前
今は純正もリポ?

695 :
>>690
時間作って作業環境作ってみます
ありがとうございます

>>693
何かおすすめというかわかり易い参考書を知っていたら教えていただければ幸いです
何が必要なのか全くわかっていないので
この本にはこれが載ってるとかわかれば探せると思うので



ちなみに電動ガンの主流バッテリーはニッケル水素です
AA-12とかは特にリポ使うと不調になったりしますし
メーカー推奨はあくまでもニッカド・ニッケル水素バッテリーです

696 :
>>695
手当たり次第に読んだほうが良いと思います。目的を絞って本を探しても電子工作の基礎がないので結局遠回りになりそう。
本屋で立ち読みできるなら自分の知識に近い本を探すとか
さすがにこれ以降は自分で動く努力してもバチは当たらないかと

697 :
純正品のUnoに付属してる下にひく透明のトレイのネジ穴のサイズはいくつでしょうか?

698 :
3ミリのネジだから3.2ミリくらいじゃないの?知らんけど

699 :
机の上にちょうどあった
M3のネジ穴が4つ(プラ板のみ貫通)
M2.6 のネジ穴が4つ(プラ+基盤を貫通)

基盤の穴のみならM3が通る

700 :
>>698
>>699
手元にあったM3のネジだとUNOの基板は通るけど肝心の透明のトレイのネジ穴には入らなかったので…
M2.6のネジでいけますか?

701 :
なぜ自分で測らないんだろう
てっきり購入前の確認かと思ってたわw

702 :
ネジ1本締めるのに何日かかってんだ?という…w

703 :
>>701
M3のネジだと使えなかったから他のネジ購入前の確認です
知ってる人いるかと思って

704 :
前述の通りM2.6でいいんじゃない?
知らんけど

705 :
>>703
なぜ穴の径を自分で測らんのかということだが?
穴系決まってからのネジ選択じゃねえのけ?

706 :
穴径

707 :
ネジなんか安いんだから2.6と2と両方買っとけばいいじゃん

708 :
トランジスタやモータードライバについて教えてください。
5VモータをArduino Pro Mini(5V)で制御しようとしています。

ttp://startelc.com/elc/elc_14moterContl.html
を参考に2SD2012で回路を組んだのですが、ONにしてもモーターはぴくぴく言うだけで回りません

電源は単三4本で、電池と直結とモーターは元気に回ります。
また、少し小さいモータはちゃんと回りましたので回路は問題なさそうです。

2SD2012ではパワー不足なんだとおもいますが、
他のIC(できればピン互換で)でおすすめはありませんか?

709 :
>>708
ベース電流が足りないんじゃない?
ベース電流設定用の抵抗Rを、現状の半分や1/4にしてみたら?

710 :
>>708
>>709が書いている通りだけど、それ以前に質問の仕方として、
参考にした回路はともかくとして、
あなたが組んだ回路を提示するべき。

それと大きいモーター、小さいモーターではなくて、もっと具体的にするか、
せめて写真を出したらどうかと思う。

ベース抵抗が問題になっているとしたら、
より少ないベース電流で大きいコレクタ電流を流せるダーリントントランジスタ、
あるいは、(ベースに相当する)ゲートに電流が流れないFETに置き換える手もある。

↓ダーリントントランジスタ
http://akizukidenshi.com/catalog/g/gI-06369/

711 :
その2SD2012でもいいし、手元に他のトランジスターがあればそれをダーリントンの初段にして試してみればいい。

712 :
ピン互換の縛りがなくて、自分でトランジスタを追加できるなら、
ダーリントントランジスタの構成そのままにするのではなくて、
追加トランジスタのコレクタはVCCに接続する方がいいよね。
http://o.2ch.sc/1ldlp.png

713 :
>>712
初段のトランジスタのコレクタにも抵抗を入れた方がいいと思う

714 :
小さいネジの場合問題になる事少ないのかも知れんが、径だけじゃなくピッチの罠もあるよね
あと海外製だとISOのミリネジじゃない可能性も

715 :
Arduinoに既に書き込まれているスケッチを
空のArduinoにコピーすることはできますか?

ArduinoからArduinoにコピーしたいです
元のスケッチはありません

716 :
読み込み avrdude -c arduino -P com20 -p atmega328p -Uflash:r:C:\test.hex:i
書き込み avrdude -c arduino -P com20 -p atmega328p -Uflash:w:C:\test.hex:i

717 :
質問。
black pill 買って、ブートローダー書き込んだ。
mac arduino ide では無事スケッチ書き込み成功。
同じモノをwindowsのarduino ide で書けない。文字化けのようなメッセージ。
ドライバーとかは導入出来てる。
誰か助けてください!

https://i.imgur.com/PvAvDsD.png

718 :
com20 [使用するポート番号]
test.hex [ファイル名.hex]

719 :
橙文字はシステムメッセージでポーレートは関係無いんだっけ?

720 :
すまん、そもそもArduino IDEのシリアルモニタは別窓だっけ

721 :
おそらくFontの設定のどこかがおかしくなってる
ArduinoIDE側はFile-環境設定-以下のファイルを直接編集すれば…-editor.font= のあたり
ここに物理フォント名ではなく論理フォント名が書かれている場合はWindows側のどっかで論理フォントから物理フォント名に変換しているところかな

722 :
Javaは時々おバカさんになるからたぶんJavaなんだろうな

723 :
>>713
そうだね

724 :
でも書き込み完了となってるので、avrdude がエラーを返さなかったんだろうな。
書き込みの詳細メッセージを表示してみたら?

725 :
>>717
です。
windows ストア版のideに不具合がある、という記事を見つけました。なので一旦アンインストール。
本家からインストーラーをダウンロードして使ったら、無事書き込み出来ました。
皆さんお騒がせしました。

726 :
web上にあるatmegaのヒューズリセッタのスケッチが動作しなかったけど無事に全シリーズ修整した

727 :
はあラズパイゼロの方が面白いわぁ

728 :
分野が別だろ

729 :
こんにちは
arduinoでSpotify(音楽ストリーミングサービス)の曲をBluetoothイヤホンから流すっていうのをしたいのですが、可能ですか?走る時に使いたいのでできるだけ小型にできるといいです

730 :
>>729
esp

731 :
>>729
スマホでよくね?
走る時ってどの回線使うの?

732 :
>>731
スマホだとケース込みで200g超えててかなり重たいです
volumioのSpotifyで本家のようにダウンロードできてオフラインでも流せたらなぁって思ってます

733 :
あぁ、あらかじめダウンロードするのか。

734 :
じゃ DF Player で良くね?
Soitify 関係なくね?

735 :
>>734
Spotifyでよく聞いてる曲たちをもってないんですよねー…
買うにしても莫大な金額になりそうなのであんまり買いたくないです…

736 :
何か凄いの来たな

737 :
え?金ないのに、ダウンロードしたいとか?
Arduinoで音楽聴きたいのか、違法ダウンロードしたいのか?

スマホが重いなら、Arduino+バッテリーの時点で無理じゃね?
スマホより軽いバッテリーなんて限られてくるけど。。。

738 :
100均のモバイルバッテリー300円のが64g、500円のが100g
ドローン用リチウムポリマーが37g
走ってる1時間くらいイヤホンで聞きたいってだけなら小容量でいいわけだし
そこまで難しくはなさそう

739 :
そもそもSpotifyをダウンロードするプログラムってどう作るの?

740 :
ハードに疎いだけでソフトには精通してるんだよ きっと
ESP32で出来るよ

741 :
ArduinoでDRMするのか…大変そう

742 :
https://github.com/CosmicMac/M5Spot/blob/master/README.md

M5stackでSpotify

743 :
皆さんの開発環境ってやっぱりvscodeですかね?

744 :
ESP系はソースもデカいからvscodeが多そうなイメージ
おいらはちょこっとプログラムするだけだからお手軽ArduinoIDE

745 :
arduino ideはメモ帳で書いてるのと殆ど変わらないから、用意されたサンプルを
コンパイルして満足するだけじゃなく自分で書くなら、短いのでもvscode入れた方が楽だよ

746 :
Arduino Pro IDE更新ないな・・・

747 :
この間、久しぶりにv0.0.3-alpha.previewに更新してる。
ttps://github.com/arduino/arduino-pro-ide/releases

748 :
arduino ide pro、え?これでproを名乗るの?ってレベル。もう少しリッチになってくれ

749 :
独自IDEはもう最低限でいいから、MSとちゃんと話してVSCodeのプラグインを充実してほしいわ

750 :
現状のVSCodeプラグインだとサンプルスケッチへのアクセスが分かりづらいのと、ブートローダの書き込みが出来ない事やプロジェクトをわざわざ作らないと行けないのがのが不便かな

751 :
>>709

>>710

>>711
遅くなりました。
結果としては、ベース電流の不足だったみたいです。

arduinoベースの2k抵抗を小さくしていくとだんだん回るようになるものの、直結時と同じように安定して力強く回るのは結局0Ω(抵抗無し)の時だけでした。
(最小200Ωまで確認)

ギリギリなんですかね?

752 :
ベースバイアス足すとか ホントはオシロとかで見ればいいんだろうけど

753 :
>>751
arduinoとモーターは同じ電源から動かしてると思うけど
モーターの消費電力が大きく電源電圧が降下してると思う
電源電圧が降下した分ベース電流も落ちてるからその影響も大きいと思う

状態を把握するために電池直結とトランジスタを使った時の各所の電圧や電流を測定した方が良いよ

例えば、電源が3vまで落ちたらベース10mAも流れてないと思う
その場合コレクタには1Aも流れないはず

754 :
>>751
リンクのサイト色々と配慮がたりてない
トランジスタもモーター駆動に向いてない
秋月で2SD2012と同じ30円の2SD1326とかどうよ?

755 :
ダーリントンはコレクタ飽和電圧が高いから電源電圧が
低い場合はどうかな。

756 :
インバーテッドダーリントン

757 :
MOSFETの方がいいかも

758 :
インバーテッドダーリントンって絵の構成だったっけ。
これだと、入力電圧は低くできるものの、出力の飽和電圧の点で有利になったっけ?

でも、今はON/OFFなら「まずはFETを選んでみる」で良いような気がする。
http://o.2ch.sc/1lg85.png

759 :
>>758
構成は合ってる。
hFEが2つの積になるから,ベース電流を少なくしても動かせる。
Vbeは1個の場合と同じでいい。ただのダーリントンはVbeが高くなってしまう。

その文脈だと,FETじゃなくてMOSFETかな。
どちらにしても,電圧制御なので,電流は不要だけど,
スイッチ用途の場合,種類によってON/OFFさせる電圧が違うから注意ね。

760 :
>>759
出力飽和電圧について指摘している>>755の次に>>756がコメントしているから、
>>756は「普通のダーリントンと違ってインバーテッドダーリントンなら、出力飽和電圧の点で有利になる」と
考えているのでは?と思ったよ。

実際の彼の思いはどうなんだろう。>>755とは特に関係がなかったのかな?

761 :
リセットボタンを作るためにRSTとGNDの間にタクトスイッチを付けたいんだけどプルアップ抵抗もどこかに必要ですか?

762 :
>>761
不要

763 :
>>762
そうなんですか
ありがとうございました

764 :
>>754
>>753
電池をやめて2.6Aのアダプタにしたらモーターはより強く回ったので電圧降下はしてるでしょうね。
実家帰っちゃったのでオシロが無いんですよね。

あと2個作る予定があるので、SD1326も試してみます。

765 :
あちゃんでいいのって今売られてるやつもピン幅はズレてるまま?

766 :
>>765
どうやら売り切ったらしい、通販のページには出てない

ただし、店頭限定で売ってる可能性はあるので注意
・店頭で買うときの見分け方
MicroUSBやDC-Jackの付いたタイプは OK
LEDが1つのタイプ(基板のシルクがV2)は OK
LEDが2個で基板のシルクが「0603V2」のタイプは OK
LEDが2個で基板のシルクが「0603」のタイプはおそらく ×
他にはこんな特徴がある(通販ページにある画像と比較するとわかりやすい)
https://i.imgur.com/NVdpcwx.png

他のものに比べてかなり安ければあえて買うのもアリ

767 :
>>766
めっちゃサンクス
その画像と通販ページの画像見比べると確かに違うね。
シリアルの印字も無くなってるね。これはちょっと戸惑うかも。
今度0603V2買ってみるわ。

768 :
現物を手に取って選べるならこっちのほうがわかりやすかったか
クロスしてスケール代わりに重ねてみれば…
https://i.imgur.com/VsKHuo8.png

769 :
ESP8266-01が全くつながらないです。

https://circuits4you.com/2017/12/31/esp8266-get-ip-address/
をコピペしたのですが、#include <ESP8266WiFi.h>が見つからないとエラーになります。
ネットで探すのですが、

Arduino-master.zip
IRremoteESP8266-master.zip

しか見つからず、ESP8266WiFi.hのライブラリが見つかりません。

どなたかご教授ください。

770 :
「ESP8266 ボードマネージャ 追加」とかでググる

771 :
ArduinoでLoop一回分とか作った関数の実行速度を測ってみたいと思ってるんですけど
どんな方法をとればよいのでしょうか?
どういった機材があれば測れますか?

772 :
測りたい部分の前後にピンから信号を出してオシロスコープで信号変化の間隔を測って信号出力処理のオーバーヘッドを引く。

773 :
>>771
実行速度測るだけなら
micros()を使って実行前と実行後の時間差を引き算すればわかるよ
単位は4μ秒毎でわかる
機材は要らないよ
もう少し細かい単位で時間見たいなら同じ処理を
100回とか1000回繰り返して時間を見ればいいと思うよ

774 :
>>771
訂正
×4μ秒
〇8μ秒

775 :
>>768
こんな致命的な問題があるものをそのまま売ってたの? 中華業者より酷いな

776 :
日本で活動してる中華業者ですし

777 :
いや、中華業者だけど

778 :
アイで始まる業者
だいたいは中華

779 :
アイヤー

780 :
このFeather Wing使えてる人います?
nRF52840にも使えるとあるけど、Adafruit Feather nRF52840 Expressに挿したら動かないです
PCのシリアルポートでも認識しなくなります
抜いたら動くんですが…
バッテリー繋いだり5V/Batのスイッチ切り替えたりしても意味なかったです
FeatherのENピンがこのWingだとGNDになってるのってもしかして関係してますか?

https://cdn-shop.adafruit.com/970x728/4357-00.jpg
https://www.adafruit.com/product/4357

781 :
ピンレイアウトはこんな感じです
https://cdn-shop.adafruit.com/970x728/2995-07.jpg
https://cdn-shop.adafruit.com/970x728/4062-03.jpg
https://cdn-shop.adafruit.com/970x728/4357-02.jpg

こっちはちゃんと動いてました
https://cdn-shop.adafruit.com/970x728/4309-05.jpg

782 :
フォーラムにこの問題載ってました
Featherの3.3VピンとGroveポートの3.3Vピンを繋いだら改善するみたいな事が書いてあったから試したけどダメだった。それどころか、ダブルクリックしてないのにブートローダーモードに切り替わってしまって大変

っていうか、Adaのサポートヤバイ
このトピックはこのWingが動かないって内容のトピで、
で、ある人が「3.3Vを繋いだら動いたって」書き込みした直後にadaのサポートが「回避策共有してくれてありがとう.」って書き込み、
その2ヶ月後に別の人が「こんな欠陥あるのになぜ売り続けるんだ?知ってたら32u4とこのWing2セットづつ買わなかった」
サポート「は?32u4で動くけど」

だって…

783 :
これ
https://forums.adafruit.com/viewtopic.php?f=19&t=156074

784 :
>>770
おかげさまで、できました。ありがとうございました!!

785 :
>>773
おおむね知りたい数値を知ることができました!ありがとうございます。
arduinoが自分で測ればよかったんですね。
気がつかなかった・・・

>>772
この方法の場合、そのオーバーヘッドがどのくらいかかったかというのはどうやって測ればよいのでしょうか?

786 :
>>785
772じゃないけど何も処理をしないでピンから2回信号を出してオシロで測ればオーバーヘッドがわかるかも

787 :
>>775
当然普通にはブレッドボードには刺さらないからこんな画像も載ってたんだよ
https://i.imgur.com/w4xaHDc.png

788 :
>>782
もう現物と回路図突き合わせて、この2つが一致してるかから調べてみたら?

俺だったら、回路図が正しいものとしてその回路図で意図した動作をするのかをまず確認して
回路図に不備があるようなら回路図を修正して、
次は回路図と現物を突き合わせて、現物をあるべき形に持っていくな

こういうものでサポートガーとかは正論ちゃー正論だけど、めんどくさいしバカっぽいから自分で手を入れて
これできましたってアップするだろうね

789 :
質問です。Leonardo 互換機を使っています。
Arduino IDEで,ピン指定 A0 は確かに基板のA0にアクセスできるのですが,A0=18のようなのです。この18って何?
32u4 のピン番号じゃないし,UNOの番号かな,と思ったんだけど,それとも違う…
18って何だろう…

同様に,ピン指定 0 で D0=PD2=20ピンにアクセスできるのも不思議

790 :
>>785
>この方法の場合、そのオーバー
>ヘッド(中略)はどうやって

>>773 にその答えも書いてある
digitalWriteを10000回繰り返したときと20000回繰り返したときの差を取れば純粋にdigitalWriteのコストがわかる。同じ値の繰り返しは最適化の懸念が残るので1/0交互にするかな。
ところで
digitalWriteって最適化懸念無いんでしたっけ?

791 :
>>773
自分で書いて間違いを2回訂正するの恥ずかしいけど
100回とか1000回繰り返したときにコンパイラの最適化を回避しないと
100回分のつもりで1回の時間しか測れないので、この手段は避けてほしい
変数の宣言をvolatileとかでやれば最適化を回避できるかも

あと、やってないともうけど
関数やループの前後にSerial.println(micros());とかで時間を比較すると
シリアル出力処理の余計な時間が足されるので開始時間を変数に収納して
出力時に処理してね

例>
static uint32_t StartTimeVal; // (unsigned long StartTimeVal)
StartTimeVal = micros(); //計測開始時刻
<処理する関数やら内容やら>
Serial.print (micros() - StartTimeVal); //計測終了&出力
Serial.println (" micro second");
delay(適度な値);//処理が短い場合、必要に応じて追加する

(試してないけど、処理内容を空欄で実行すると0か8μ秒の結果が出ると思う)
後で部屋の大掃除終わったら実機で試してみるよ

792 :
>>791
レスありがとうございます。
頂いた例を参考に下記のようなコードを実行してみました。

最初頂いたコードのまま実行したら4μと8μの間で揺れていたので
Serial.print (micros() - StartTimeVal);
の部分の計算時間も省けるように別途算出し後から計算する形にして下記のようなコードを実行してみました。

static uint32_t StartTimeVal; // (unsigned long StartTimeVal)
static uint32_t GoalTimeVal; // (unsigned long StartTimeVal)

void setup() {
Serial.begin(9600) ;
}

void loop() {
int CalcValue;//計算結果格納
StartTimeVal = micros(); //計測開始時刻

//GetValue();// <処理する関数やら内容やら>

GoalTimeVal = micros();//計測終了時刻
CalcValue = GoalTimeVal - StartTimeVal;//計測時間算出
Serial.print (CalcValue); //出力
Serial.println (" micro second");


}

//計測したい関数(仮)
void GetValue(){
int dummyA;
dummyA = analogRead(A0);
}

GetValueを外した時には4μ 仮関数を実行した時は116μという数値になりました。
ということはGetValueの実行時間は4μ毎ということふまえて・・・
116(+0/-3)- 4(+0/-3)=112(-6)μという感じでしょうか。

以上のような感じで当方が欲しいと思っていた情報を得ることができました。
ありがとうございました。

793 :
Arduinoの種類(こちらはUNOを使用)によって違う可能性もあるけど

検証した結果
時間を出力するコードは平均3.584μ秒で実行できてました(外部割込みの影響を受けて誤差が出るみたい)
変数をstaticではなくauto(省略した場合auto)だと平均3.080μ秒でした
挟んで時間求めるだけなら、staticで宣言する必要なかったですね

ちょうどいい値なので実行時間から4μ秒を引く感じでいいと思います

多くのコンパイラでは
Serial.print (micros() - StartTimeVal);でも
GoalTimeVal = micros()でも
同じ結果になるはずだったのですが・・・
(もしくは変数に収める方が時間が増える可能性も・・・)

794 :
Nano+OLED で作り始めたら容量が足らないので、別のマイコンに変更したいのですが、
STM32、ESP32、が順当な候補でしょうか?
最終的に、そのまま組み込みたいので、Mega等のボードは無しでお願いします。

795 :
ESPでいいんじゃね

796 :
トランジスタつかいたまへ

797 :
>>794
データの容量だけの問題なら余ってるSDカードとかを直接ハンダ付けするのも良いかもしれません

798 :
Atmega4809もSAMD21人気なさ過ぎ

799 :
>>797
データというより、SRAM(動作中のメモリ)が、2k だと足らなくて。。。
プログラムも、まだ6割程度完成で、30kギリギリ(Optibootで1.5k稼いでも)

U8g2 だとページングでギリギリ、フルバッファだと無理。
Adafruit のライブラリは使いやすいのですが、動作メモリを大量に使うっぽい。

ESP32は、足の数でミニブレッドに刺せないし、STM32だと、いずれ容量が心配?
となり、OLEDを使う上で、定番的な奴があればと思った次第です。

800 :
>>799
OLEDはどれ使ってる?
NanoにAdafruitのライブラリを使って書き込んでもエラーは出ないのに全く表示されん
ATSAMD21のボードに書き込んだら普通に表示された

801 :
>>799
そう言うことなら
サンハヤトのSAD-101は幅広でESP32いけるよ。

802 :
オス・メスのピンヘッダとユニバーサル基板でこういう形の変換ボードを自作するとか
https://docid81hrs3j1.cloudfront.net/imagecontent/image-1487567934747.jpg

803 :
ESP32はこうだよ
https://i.imgur.com/Dk29rfd.png

804 :
>>800
スピード不要と I2C を買って後悔してる。
https://あまぞん/gp/product/B017M15KX6/
とりあえず Nano で Adafruit_SSD1306、U8g2 のサンプルは全て動くけど、
U8g2 フルバッファは、ギリギリなのでデフォルトのブートローダーだと
動かないかも?
今は Ali で SPI をカートに入れてて、ESP32 を物色中。

805 :
>>801

>>802

>>803
皆さん、ちゃんとしたボード使ってるんですね。
横着なもので、IOシールドがあれば便利だな?とか思ってました。
https://ja.aliexpress.com/item/4000203575061.html

あるんだけど、Nano用と違って値段が5倍もしちゃってて。。。

806 :
>>804
グラフィック不要なら、バッファ無しで使う方法あるよ。
http://www.eonet.ne.jp/~jr3tgs/oled_test.htm
arduino用に手直しして、動かした経験有り。

807 :
バッファなかったらチラつくわ

808 :
グラフィック使うならメモリ2Kbyteやそこらの機種は厳しいですね。
情報表示だけならなんとかなりますが。

IOが少なくて良いならWemos D1 miniなどで、アンテナをもぎ取って使うのもありかもしれません。

809 :
ESP8266・ESP32なら漢字表示もできる!

810 :
文字を縦横16/8ドット固定長で表示する分にはバッファは要らんと思うね

811 :
>>803
俺もESP32DevKitそうやって挿して使ってるわw

812 :
俺は上向きのメスのピンヘッダ付けてジャンプワイヤーで飛ばす

813 :
>>805
I2CでGrobeケーブル使って拡張するのはどう?
I2CなんでLCD見たいのは向かないけどGPIOやセンサーの類ならI2Cで十分だと思うけど

Groveケーブルはいろいろあるし
https://www.switch-science.com/catalog/list/435/
Grobe用のモジュールもいろいろあるぞ
https://www.switch-science.com/catalog/list/145/

ESP32ならM5Stack用の拡張モジュールもつかえるかもしれない
M5Stackの中身のマイコンはESP32だし
基本M5StackはI2CのGroveケーブルで拡張するからね

814 :
ちなみに秋月で
ESP−WROOM−32D開発ボード
http://akizukidenshi.com/catalog/g/gM-13628/
これは買ってはいけない
追加でコンデンサを付けないと自動で書き込みができない
スイッチを操作しての書き込みは可能

買うならこっちを買うようにしましょう
ESP32−DevKitC ESP−WROOM−32開発ボード
http://akizukidenshi.com/catalog/g/gM-11819/

815 :
ていうか、どっちも買わんわな。

816 :
atmega328のEEPROMに関する質問です。

Q1.EEPROMは書き換え回数10万回となっていますが、これはEEPROM全体でしょうか?
それとも個別アドレス毎でしょうか?

Q2.EEPROMに5分毎に64byteの書き込みを行うと、
1時間に12回x24時間x365日=105120回と1年で10万回に到達します。
EEPROM全体1024byteを16分割し、順次使用すれば16年に延命できますか?

似たような内容ですが、よろしくお願いします。

817 :
>>816
違うメーカーだけど、EEPROM
https://www.rohm.co.jp/products/faq-search/faqId/17
フラッシュメモリは消去回数
どちらも1か所を集中的に使うのではなくて、分散させる方が寿命はのびます。

818 :
>>816
寿命とは違うが、BODを有効にしておかないと、power offで0番地のデータが壊れると言うのがあったね。
頻繁に電源を落とす用途でハマった事があります。
俺以外はみんな知ってる事かな?

819 :
皆さんGUI版のavrdudessを使ってますか?

820 :
マルチ過ぎだぞ

821 :
そんなレスする前に答えてあげろよ
こんな質問マルチしても問題ないだろ

822 :
俺は使ってない

823 :
俺は使ってない

824 :
>>822
>>823
ありがとうございます

825 :
3.3VのProMiniかESP32で、別モジュールの5VでプルアップされてるピンをGNDに落としたいのですが、
3.3Vの信号をNPNトランジスタのベースに入れて5VのピンをLOWにする事は可能なのでしょうか?

826 :
可能だけど、もうちょっとトランジスタのこと理解してからのほうがいい

827 :
うわ意地悪
ベース抵抗忘れないでね

828 :
>>825
図のようなことを意図しているならOK。

>3.3Vの信号をNPNトランジスタのベースに入れて
どんなふうにあなたが接続するのかわからんので、>>826さんが心配されてます。
Rpu次第ですが、通常はR1は10kぐらい、R2は10k〜47kが、「パスコンなら0.1uF」的な
選択。(異論はあります)

反転させたくないときは、右のような方法もあります。電流は増えないですけど。
http://o.2ch.sc/1lkkk.png

829 :
ESP32の開発ボード買うならこれがいいよ
SPI接続の外部RAMが8Mあってメインメモリとして使えるらしい
(SPI接続なので速くはない)
昨日までは在庫があったようだが今は品切れ中

ESP32-DevKitC-VB
https://www.mouser.jp/ProductDetail/Espressif-Systems/ESP32-DevKitC-VB?qs=%2Fha2pyFaduifTIKK1pCXCqD6qHh2jzbJhkwMN8K1eZOXrKuJqndX7Q%3D%3D

830 :
買ったことがあるのはここらへん
http://s.click.aliexpress.com/e/nOsbwtKY
http://s.click.aliexpress.com/e/mXMISAUu
http://s.click.aliexpress.com/e/4IfzNQG0
どれも特に問題なく動いてる

831 :
>>828
有り難う御座います 右図見るにベースに3.3Vだとエミッタも3.3Vになるんですね?
この時プルアップされたピンの電圧はどうなってるんでしょうか

832 :
おれはこれ。表示器付きで楽しい。
https://a.aliexpress.com/FRjxg22c

833 :
>>831
BE間電位差ゼロ→CE間電流ゼロ→プルアップ抵抗電流ゼロ→入力端子電圧=5V電源電圧→入力端子電圧ハイ
かな?

834 :
>>830
ESP-WROOM-02やESP32-WROOM-32は外部RAMが付いてない
外部RAMが付いてるのはESP32-WROVER-Bが載ってるやつ

835 :
ちなみに開発ボードではなくモジュール単体なら秋月にも売ってる

Wi−Fiモジュール ESP32−WROVER−B
http://akizukidenshi.com/catalog/g/gM-13689/
1個 ¥530(税込)

■特長・主な仕様
・対応無線規格:
・WiFi:802.11 b/g/n
・Bluetooth v4.2 BR/EDR、BLE
・MCU:ESP32D0WD
・SRAM:520KB
・PSRAM:8MB

836 :
>>829
たかだか8MのRAM載ってるだけで3倍くらいするんじゃあ…
しかもSPI接続って意味なくね?
>>830
いいいね、1つずつポチってみたよ
>>835
安いと思ったら単体じゃん、論外だわ、何で持ち出した?

837 :
>>836 PSRAM, 画像、動画には必要ぽい

838 :
>>836
パチもんじゃなくてEspressifの正規品だからね
日本国内の販売なのでそのマージンも載ってる

839 :
>>836
Arduinoからは話がそれるがインターフェースのESP32の特集記事で
MicroPythonのPSRAM版があってヒープが3.6MBになるらしい
PSRAMがないやつだとヒープが140KBくらいになるらしい

840 :
32bitマイコンを使ったArduinoもあるがちょっと標準の機種から外れるだけで
完全な互換性は無いからライブラリを自分で読んで自分のに合うように変更する必要があったりする
そうなるとただのC++だからな
初心者には難しすぎる

841 :
Arduino UNOはCPUのクロック周波数たったの16MHz
Raspberry Pi Zero WHのクロック周波数は1GHz

842 :
全く用途が違うその2つをクロックだけ比べて突然どうした

843 :
>>831
>>833さんが書いておられる通りです。

それの変形ですけど、FETを使った双方向レベルシフト回路はよく使われているはず。

https://www.switch-science.com/catalog/2396/
http://o.2ch.sc/1ll4g.png

844 :
掲示板関連初投稿になります

以下のURLにある「Arduinoで鉄道模型のコントローラを作ってみたお話」を参考に
コントローラアダプタを作っているのですが、

https://qiita.com/Matrix5411/items/faa7df4290467d32fe9b


以下のURLのプログラムデータをArduinoにスケッチしようとするとエラー表示になってしまいます

https://github.com/KeKe115/Densya_de_go


こちらを解決したいのですがどうすればよろしいでしょうか?
情報お願いいたします。

845 :
>>844
エラーの詳細がないと原因を特定するのが難しいが
#include <GPSXClass.h>これに対してのライブラリをインストール済み?

846 :
GPSX.hをテキストエディタで開いて
#include <wiring.h> を
#include <wiring_private.h> に書き換える

847 :
>>845

いえまだ初心者ですのでライブラリ自体のインストールがまだわからないのがありまして…
「ライブラリ」データでしたらこちらのURLにある「Arduino用PS2インターフェース・ライブラリ」からダウンロードしました

http://pspunch.com/pd/library.html


そこから先はわからないです。

インストール方法はどのようにすればよろしいでしょうか?

848 :
>>847
https://i.imgur.com/cqnodW8.jpg

849 :
名前見えてるぞ

850 :
>>830
これって 32S ですよね。
書き込みエラー対策済みですか?
32D との違いは無いのでしょうか?サイズ的な所とか?

とりあえず Nano で限界っぽい所まで作りました。
他にも色々と情報を表示してたのですが、とりあえずプログラムを
分割して一部分だけで動作させてます。
https://streamable.com/e90dw

851 :
>>850
なのはグラフィック画面使おうとするとメモリ少ないよね。
aqm0806とかのテキスト画面じゃだめなかんじ?

そういうのは8266にしてる。
グラフィック画面が必要なほど複雑な用途は大抵wi-fi必要な用途だし。
8266ならSSD1306系のディスプレイ2つ使えるよ!

852 :
ESP32でもI2Cで128x64全体転送するのに22ms位掛かるからメモリはあっても
あまり気楽には使えないぽ

853 :
arduinoでデータをとってPCにそのまま送ってるんですけど
PCで動画とか見たりすると電源にノイズが入るみたいで負荷がある間のデータがおかしいんです
PCからくるUSBの5Vをきれいにする方法ないでしょうか?

854 :
それならPCじゃなくて100vコンセントから電源取ったほうがいいよ

855 :
>>853
Arduinoがどの種類かわからないのだが
UNOだとしたらUSB電源の問題じゃないと思う
もう少し詳細な情報がないと何とも言えない
・Arduinoの種類
・通信手段、速度

856 :
>>853
動画見る>CPUやビデオカードに負荷>ATX電源の容量不足>5Vが不安定
PCの電源見直すか、ACアダプタ買ってArduinoは別電源にするか
私ならACアダプタ

857 :
>>853
シリアルバッファの扱いが甘いんじゃない? データ受ける方は何でどういう設定?
シリアルの速度落としても変わらない?

858 :
バイクのスピードメーターを作りたいんだけど、画面の更新スピードがおそいんだ。
tft.
oled.
spi色々試したけど、文字が大きいと綺麗にカウントされていない。
何か良い表示モジュールは無いですかね?

859 :
ターミナルブロックって結構便利ね
ブレッドボードに直挿しだとグラグラしたり抜けたりすることがあったけどこれなら安定してよい

860 :
>>858
いろいろ混じってる・・・
TFT 液晶の駆動方式 {TFT・STN等}
OLED 表示方式の種類{液晶・OLED(有機EL)
SPI 液晶パネルとの通信方式{SPI・2IC・パラレル}

表示モジュールではなく、表示モジュールに送信してるマイコンの速度が足りない事もあり得るのでは?
SPIでも速度を上げる余地はあるのでは?
画面の書き換え方法の工夫で改善できるのでは?

あと、似たような事を考えたことがあるが
夜なら良いけど、昼使うには実用的な明るさ出来ないよ

861 :
>>858
TM1306とかMAX7219使って7SEG系は?

862 :
7セグの赤は昼間でも見える

863 :
そう言えば屋外で白黒SSD1306を見たら印刷物の様な不思議な感覚だった

864 :
https://www.aliexpress.com/item/1882014516.html
7セグと同じ様なもんだけどこれはどうだろう

865 :
文字サイズ2mmでええんか?w

866 :
バイクやから危ないってw

867 :
基盤って金属の上におくとショートして壊れたりする?

868 :
>>867
ショートするよ

869 :
>>868
浮かせてないと駄目?
木とかプラスチックとかゴムとかは?

870 :
表示が遅いんじゃなくて、速度測定が遅いんだと思う。
どういう風に測定してるんだ?
GPSなら1秒以上はラグあるぞ

871 :
液晶の反応速度

872 :
ああ、それだと暖めるしかなかろう

873 :
> バイクのスピードメーター
> 文字が大きいと
デジタル表示なら60fpsくらいだともう下桁見えないから
20fps程度に間引く処理が必要なんだけど
アナログメーター風とか凝ったデザインじゃないなら
7セグLEDでいいんじゃね大きなのもあるし表示も速い
バーになったの使えばバー表示とかpeak holdもできるよ

874 :
>>847
さん
ありがとうございます!GPSX.zipをライブラリに読み込むことができました。
その後
>>846
さんの
GPSX.hをテキストエディタで開いて
#include <wiring.h> を
#include <wiring_private.h> に書き換える
を行い、コンパイルをしたら、問題なくできました。
Arduino UNOにも不具合なく書き込みができ、完成しました。
これで問題点がなくなりました。
本当にありがとうございます!!!

875 :
すみません間違えました
>>848
さんでした
申し訳ありません

876 :
無駄に改行が多くても読み難いだけなので 必要がなければ改行しなくていいよ
まぁ表示する環境は人それぞれではあるけれど…

877 :
まあ読まずにスルーだな
今回は>>876が触れたから乗ったけど

878 :
>>874
おめ!

879 :
>>867
アルミラック直置きでショートさせたわ

880 :
アーデュイーノじゃなくてFPGAが乗っかった基板だけど、
電源が入ってる状態でネジを落として壊した事がある。それがトラウマでデバッグの時は金属ネジを使わなくなった。

仕事で作る製品はすべて金属ネジだけど、そもそもArduinoの板なんかはネジ穴にレジストが掛かっているから
ケースへの導通とか考えなくていいからね

881 :
電源LEDが緑色の中華Pro Microが欲しいんですがAmazonだとどの業者が扱ってる分かる人いたら教えてほしいです
HiLetgo、Rasbee、EasyWorldMallは赤色でした

882 :
緑色のLEDに付け替えたらええやん

883 :
USB電源ってPCから出てるやつじゃなくて
携帯電話を充電するようなUSB電源でもいいの?

884 :
>>883
当たり前

885 :
5V出てれば何でもいいよ

886 :
アンペアも何でもいいの?
急速充電とか高いみたいだけど

887 :
そんな大電流流れないから関係ない
安いので充分
別に急速充電のでもいい
それ使ったからって大電流ながれるわけではない

888 :
なるほど
おしえてくれてありがとう

889 :
何年か前にドコモでもらったモバイルチャージャー、
arduino用の電源で活用してるわ。
ただ、電流少ないと、途中で止めちゃうことあるんだよね。要注意。
乾電池6本にDCDC付きモジュールつなげたモノも使ってる。

890 :
ESP32なんかはWiFi使うと瞬間的に1A超えたりするから、逆にPCのポートだと危なかったりするね

891 :
RaspberryPI用のACアダプタが店頭販売で安売りされてたことがある。
3Aぐらいまで対応してたはず。。。

安く済ませるなら100均で単三x2で駆動できるUSBチャージャーがある。
ATMegaなら十分使えるし、小さくて便利良いよ!
箱に組み込む時のテストとか、手元で扱えるよ。

892 :
for (byte i=0; i<100; i++) asm("nop");
これは何クロックかかりますか?

893 :
コンパイルして命令数カウント

894 :
圧電ブザーだけどPro Miniだとそれなりの音量で鳴るけどATtiny13だととても小さな音しか出ないんですがマイコンによって何が違うんでしょうか?
鳴り方もPro Miniだとピッピッって感じだけどATtiny13だとココッココッっていう機械音みたいな感じです

895 :
>>894
自己解決
さすところ間違えてました
あとブザーの音量を大きくするにはもっと大きなブザーにしなきゃいけないんでしょうか?

896 :
>>895
大きいサイズに変更、電圧を上げる、が正解なんでしょうけど、
たぶん聞きたいのは、
貼り付けるケースなどを振動しやすいものにする。でしょうか?

>>892
gccの吐き出すニーモニックを見れば分かる。
ちなみにオプティマイズによって単純ループを展開するか、
そのままループを行うか?によっても変わる。
スピードを求めるなら前者、サイズを小さくするなら後者。

で、それを知ってどうするの?
興味本位なんだろうけど、知る必要がある人は、計測の仕方も知ってる。

897 :
振動板に付けて、箱に入れると少しは? 知らんけど

898 :
>>895
現状が裸の圧電素子みたいなもの(A)だったら、共鳴板を兼ねたケースに
入れるだけでもかなり変わりますが、すでに(B 発振回路無)のようなものをお使いですかね。

駆動電圧を上げると音は大きくなります。
(C)のようにすると実質2倍ですが、コイルを使って昇圧する方法もあります。
100均 防犯ブザー 回路 でぐぐってみてください。

100均の防犯ブザーでもすげえ大きい音がします。試したことがなかったら
ぜひ一度買って鳴らしてみてください。
ってか鳴動部分は、防犯ブザーをそのまま使うのもありかも。
http://o.2ch.sc/1lni2.png

899 :
>>898
Bが何か運んでるみたいでかわいい

900 :
>>899
でかすぎ、重そう
にしか見えなくなった、謝罪と賠(ry

901 :
>>896
>>898
こういうやつだからBタイプかな?
2本足で極性が無くてArduinoのtone関数で鳴らすタイプです
http://akizukidenshi.com/catalog/g/gP-04118/
トランジスタ(2SC1815GR)なら持ってるんですけどこれで大きく出来ますか?

902 :
>>900
その味方もあるけれどもう一つの味方もあるよ
Aがドーナツみたいな生き物に足がついてる生き物で
右が目玉焼きみたいな生き物が両手で目玉焼きみたいなものを持っている様に見える

903 :
>>902
実は最初そんな感じに見えてたんだけど、今はもう棒人間がでかいのを抱えてるようにしか見えなくなってるんだ、自分の脳はw

904 :
違うふうに見えるのは面白いね
http://o.2ch.sc/1lnyi.png

905 :
なんか新しいボード出てるね
99.9ドル
たっか
https://store.arduino.cc/usa/portenta-h7

906 :
mbedとかarm系のボードはこのスレの対象?

907 :
mbedはまた別だなぁ
でも他にスレが立ってなかったらここでも良いんじゃね?

908 :
>>905
STM32H747XI dual CortexR-M7+M4 32bit low power ARM MCU
って。。。ATmel 辞めたんか?
>>906
Arduino が ARM採用 したんだから、一緒じゃないといけなくなった?w

909 :
>>905のボードも

>Arduino sketches on top of the Arm&#174; Mbed OS
>Native Mbed applications

と書いてあるし。

ARMを高速な328Pとして使うだけならともかく、話題としては混じる部分も出てくるでしょうね。

910 :
Arduino Nano 33 BLEでも使われてるNordicのスレもよろしくです

【Nordic NRFxx】BLEについて語るスレ【Bluetooth Low Energy】
http://rio2016.2ch.sc/test/read.cgi/denki/1575216922/

911 :
Arduino nanoにワイヤードで接続されているセンサーを
分離してワイヤレスにする事は可能でしょうか?

調べ方が悪いのかArduinoをワイヤレスでPCから操作するとかそんなのしか出ないの

具体的には
通過センサーとその結果とかを表示するモニターをArduinoから切り離したい

912 :
>>911
無線化だけならxbee、twe-lite、esp32とか、自前で赤外線通信とかでできる。目的がわからんから手間やコストに見合うかわからんが。

913 :
センサーだけをワイヤレスにすることは困難だから
センサーから値を読んでデータにして無線で飛ばす役のArduinoと
その無線で飛んできたデータを受け取って液晶に表示する役のArduinoに分ける感じになる

無線部分は電波でも赤外線でも色んなモジュールがあるしメリットデメリット様々
こう言うときのプロトコル(データのやりとりの決まり事)は自分で考える事になる

914 :
>>911
できるできないで言えば、できる
だいたいセンサーって広範囲なんだから質問が雑すぎw

スイッチ的にON/OFFを知るだけのセンサー=開閉センサー、水位センサー、動態検知センサーなど
ONになったら赤外線LEDを光らせてArduino側でそれを受光する
受光素子を長い筒の底に入れるなどの工夫が必要になると思う

更にそれに波長を乗せる赤外線リピーター的なものを作れば
低速なプロトコル通信も可能だろう

915 :
センサーのデータを取得して赤外線を送信するマイコン(Arduino)が必要かと

916 :
>>914はそのデータが1bitなら送信はマイコンいらんねって話だと思う

917 :
まあ1bitに限らなくても
NE555でパルス送って、CDSやサーミスタなんかでディーティー比変えれば
ラジコンのプロポとサーボの関係みたく
マイコンなしでアナログ値が送れるよ

918 :
なんか難しそうですね
ド素人にはもっと勉強が必要かなぁ…
無線に関する参考書かPあれば教えてくださいお願いします
見ながらじゃないと何もわからんのです…

919 :
ラズパイzero2台用意して送信側と受信側に分けて実装するほうが手っ取り早くない?
ラズパイならwifiもBluetoothもできるし

920 :
どっちにしろ知識が絶望的に乏しいんだ…

今作ってるやつはオープンソースだから丸コピで
あとはワイヤレス化できれば便利に使えると思ってたんだけど
Raspberry Piだとゼロから始めるから難しそう

921 :
センサーと315Mhzの無線モジュールと50円ATTiny13マイコンでおk

922 :
受信モジュールの待機電流が限りなくゼロに近い無線モジュールて無いんかね

ESP32で相手からのWiFiを受信しようとすると常にWiFi有功にしてないといけなく
もの凄い消費電力になるけど、無線の受信だけならゲルマニウムラジオ的なノリで
トランジスタの漏れ電流位の消費電力で受信待機出来そうな

923 :
ESP32が異常なだけ
とりあえずディープスリープ使っておけ

924 :
単純なモジュールでも10mAとか喰わない? 電池駆動は無理かなて感じで

925 :
WiFiのデータ受信ってWiFiの電波の送信をともなうし

926 :
ESP-NOWは?

927 :
シリアルデータ通すだけならXBeeが比較的簡単かも

928 :
どれくらいの量の通信するのかにもよるけど、受信機を間欠動作させてデータが来ない期間はスタンバイ状態にしておくとか

929 :
受信機に電力を供給できる出力で送信だ

930 :
調べても良くわからなかったので質問したいのですがI2C接続のI/Oエキスパンダを使用してsoftware serialは可能なのでしょうか

931 :
UNOでIOが足りなくなったら迷わずmegaの互換を買った方が色々と便利な上に解決するのも早いと思った

932 :
>>930
100bpsでも10bpsでもシリアルはシリアルだという観点からすれば可能
シリアルなら115200は当然出るんですよね?という視点からすると不可能

933 :
やは

934 :
>>932
速度という点では難しいのですねわかりました
ありがとうございました

935 :
>>931
何を今更。ただIOが足りない時はUNOでもTTLと組み合わせて経済的な合理理性や
使い易さなりをmega比較検討することは一案だと思う。抽象論ではなくて例えば
下などはATmega2560であれば単独でアドレスバスとデータバスをカバーできる。
「TTL4個の金額500円」 + 「UNO」 と ATmega2560 との比較も一考かなと。

ttp://susumutaniyama.github.io/HongKongArduino/

936 :
車のキレーレス・スマートキーも、ずっと受信待機してるわけじゃん?
どっかのサイトで見たけど、あの仕組みはすごく弱い電波で低消費電力で受信待機してて、
信号を受信したらとりあえず起きて、出力を上げて次に本番の送信データを読み取るって書いてあった。

うる覚えなんだけど、これホント?

937 :
標準プロトコルがあるわけじゃないからホントの場合もあればウソの場合もある

938 :
ArduinoでPCシャットダウンする方法ってある?

939 :
書き忘れたけどOSはWindows10でリレーとかで100vを強制的にOFFとかは無しね

940 :
PCとArduinoをシリアル接続してウィンドウズ側にシリアル通信を監視して特定のコマンドを受信したらシャットダウンするプログラムを常駐させる

941 :
>>938
・PC側の常駐ソフトでArduinoからのシリアル通信を待つ。
・Arduinoから特定のコマンドを、その常駐ソフトが受けたら、その常駐ソフトがシャットダウンする。

942 :
PCの電源ボタンてワンポチしたときの挙動変えられなかった?スリープかシャットダウンか選べたと思うが
そしたら電源ボタンにフォトカプラでOK

943 :
https://i.imgur.com/ba8kP0B.png
あった
これシャットダウンにしておいて電源ボタンのとこから分岐線とってフォトカプラで一瞬押せばシャットダウンにできる
常駐ソフト要らず

944 :
>>936
有ってる部分も違う部分も有ると思う
それにキーレスとスマートキーでは動作方式も違うと思う

以下はキーレス及びスマートキーの自作を試みたときに考えた手法
(デジタル通信はアナログ通信と違い受信器も消費電力が大きいのが大変)

◆キーレスの場合での省電力化の方法
送信機の方はボタンを押した時のみ電波を出すので待機電力は無いものとして考えれる
>送信時の消費電力を抑えるための方法
・送信時は1/500秒送信 24/500秒間停止を繰り返しながら1秒程送信する(約1/25の電力で送信できる)
>受信機の消費電力を抑えるための方法
・常時信状態では消費電力が多きので常に受信状態にするのを避ける
・例 1/20秒受信 9/20秒停止を繰り返す(約1/10の消費電力で待機できる)

◆スマートキーでの方法
・キー側が1/500秒送信 99/500秒停止 1/500秒受信 899/500秒停止を繰り返す(1/500の消費電力)
・車両側が2秒受信 8秒停止を繰り返 す(1/5の消費電力)
(↑の条件で10秒以内に信号を補足できる(運転者が車に向かってる状況))
車両がキーの信号を受信したら、タイミングを合わせて信号を送信する(その後暗号通信等のやり取りを)
(参考までに棒nRF24xxx無線モジュールをつかった場合のスマートキーの消費電力は約0.185mWかな)

両方とも気が向いたら作ろうと思い放置( ^ω^)・・・

945 :
>>938
digisparkとか使ってコマンド送ればいいんじゃね

946 :
>>942-943
おおおー素晴らしい。

941だけど、もう何年もデスクトップPCを使ってなかったのでPCの本体に
手を入れる発想がなかった…。

そういう機会があったら使ってみよう。

947 :
>>944
ありがとうございます。φ(..)メモメモ

948 :
なんでデジタルだと受信待機の消費電力高いの?
受信強度に閾値を設定してなんか来たら次の受信から内容解読まで行うのだとダメなの?

949 :
デジタルって突き詰めるとアナログ信号をサチらせて使ってるんだよね
だから消費電力も高いんだよ

950 :
うる覚えは嘘でうろ覚えが本当

951 :
>>948

>受信強度に閾値を設定してなんか来たら次の受信から内容解読まで行うのだとダメなの?

普通のラジオの場合は、放送の電波の周波数は局ごとに違うから同調回路と
簡単なアンプで、ある程度の選局ができます。この場合なら「受信強度に閾値を設定して」が可能。

でも、デジタル通信の場合は同じような周波数にたくさんのデータが流れているのでこの方法では
実用になりません。いっけん混信だらけの電波の中から自分に関係のあるデータを拾うこと自体が
演算で行われています。

952 :
常にフーリエ変換しないとダメなのか

953 :
>>948
>(デジタル通信はアナログ通信と違い受信器も消費電力が大きいのが大変)
>なんでデジタルだと受信待機の消費電力高いの?
>受信強度に閾値を設定してなんか来たら次の受信から内容解読まで行うのだとダメなの?
ちょっと誤解があったかもしれないので追記を
送信機は電波を出力するので消費電力が多い←これはその通り
無線で送信に対して受信は消費電力が少ないイメージがある
(アナログのAM/FMラジオ等は少ない消費電力で受信できるイメージが強い、実際少ない)
なので常に受信状態でも消費電力は大きくないイメージがある
しかしアナログの受信機と違い色々な行程での消費電力が大きくなってしまう
変調方式によっては強い電波を検知するまで受信を無視することもできるけど、
それだと強い電波しか受信できない現実的にはノイズだらけの中から自分宛の弱い電波を見つけ出す必要があるんだよ
そのために色々な処理やら計算やらで受信中の消費電力がそれなりに大きい
(私自身あまり詳しくないので今度勉強してみたいと思ってる)
もちろん送信機側の消費電力を無視すれば高出力の電波を出し、受信機で受信強度にしきい値を設定することも出来るとは思うが・・・
それか周りで同じ周波数使わないなら出来るかも(非現実的)

954 :
>>953
違う

>(アナログのAM/FMラジオ等は少ない消費電力で受信できるイメージが強い、実際少ない)
受信だけなら、この通り。

通信は、(これに例えるなら)ラジオ側から返信が発生する。
これに電力が必要だから。

955 :
どうしようもないのが湧いたなw

956 :
>>954
受信状態で待機中の消費電力のことなんだけど・・・・
周波数を独占できてASK変調で通信するならラジオとあまり変わらいとは思うけど
実際にはそうもいかないからね

957 :
使い方にもよるんだが、単なる検波整流ならダイオード1個で済むところを、
デジタルならわざわざ、ADして演算してプラス変位をだして、更にDAしなきゃならない。

958 :
何MHz帯のモジュールだったか忘れたけど、以前ぐぐってたらシリアルで受信したデータが
自分の目当ての電波か、Arduino側でチェックサムとか使って確認しないといけない
みたいな話見かけたけど、WiFiの様な規格化された混雑帯域の物はまだしも
Arduino用のうんMHz無線モジュールとか言う類もそんな色々やってるの?

959 :
>>958
XBeeのAPIモードのこと?
透過モードならマイコン側は何もする必要なし

960 :
DFPlayerで音声再生をしようとしてるのですが、
無再生時でもキーという電子ノイズが聞こえます。
DFPlayerはどれでも音が鳴るのか自身の作成環境が悪いのか、
参考までに皆さんのDFPlayerの動作状況を教えてくれませんか?

961 :
>>960
電源をちゃんと5Vにしてる?

962 :
3.3vぐらいか。データシートに4.2vがベストって書いてるな。リチウムイオンに丁度良いように作ってるな
とにかく、Arduinoを経由せずに電源から直接取るようにしたほうが良い

963 :
>>960
内蔵アンプ経由?
他の方が言うように Arduino経由 を辞めても同じ電源から
DFPlayer と Arduino を取ると多少のノイズが乗ることがある。
完全分離は、面倒だと思われますので、ボリュームを上げたり
内蔵アンプを使わないでごまかすのが現実的?
あと LOUT、ROUT に 100uF程度のコンデンサを入れる。

964 :
>>963
コンデンサの配線教えてほしいです

965 :
コンデンサのプラスはLOUT、ROUTに、マイナスはGNDに

966 :
>>961
>>963

ご返答ありがとうございます。
ご指摘のようにarduinoからの電源で運用してます。

環境次第ではノイズを抑える事ができるみたいですね。
お二人のアドバイスを参考にやってみたいと思います。

967 :
>>964
DFPlayer 側をプラス、外部機器側をマイナス。
ヘッドフォン接続なら以下の通り。

LOUT - (+)コンデンサ(-) - ヘッドフォンL
ROUT - (+)コンデンサ(-) - ヘッドフォンR
GND - ヘッドフォンGND

チップが同じものなので、Amazonのレビューに改造方法が
載ってます。

https://www.あまぞん.co.jp/dp/B0154PN2FU/
https://www.あまぞん.co.jp/dp/B01MQW7EEJ/

968 :
ヲタクキッショ https://i.imgur.com/lu5ikSO.jpg

969 :
A power supply with a higher rating than one amp could damage your Arduino.
って書いてあったんだけど、
このスレッドで聞いた時
>>886, >>887
アンペアは何でもいいって聞いたんだけど
違うの?

970 :
そのサイト読めよ

971 :
読んでもわからんから聞いておるのだが

972 :
>>969
どこに書いてあったかを書くべき。
ここかな?
https://arduinotogo.com/2016/10/07/chapter-4-current/
Arduinoの回路にトラブルがあったときに、少ない電流しか流せないパワーサプライの方が
舞子回路の破壊につながりにくい、ということはあります。

973 :
ユーザーが回路を間違えてもレギュレータで電流が制限されるから基本的に問題は起きない。

974 :
中華arduinoクローンのレギュレータ(ams1117)は良くショートモードで壊れるから、電源容量は大きくない方が良いんだろうか?
ただ1Aでもパーツ破壊するには十分だからなあ

975 :
ググるとAMS1117をLD1117S50CTRに換装してる人もいるね

976 :
>舞子回路
マイコン回路だった…

この記事自体はかなりの初心者が対象に見えるし、安全な方に配慮している
のだと思う。
UNOだったら拡張コネクタのVIN(電源入力からダイオードを通したもの)を使った
回路を作っていてそこで何かを間違っているとかも含めて。

・回路が正しく組まれていれば、DCジャックから供給する電源の電流容量が大きくてもかまわない。
・DCジャックから電源を供給する場合、5V系の電源を使う回路だけなら、それは5Vレギュレータで電流制限がかかる。
・ただし、5Vレギュレータがタコなものならその限りではない。
・USBコネクタから、パソコン、充電器やモバイルバッテリで電源を供給する場合は、UNOなら500mAリセッタブルヒューズで保護される。
・ただし、リセッタブルヒューズは働くまでにタイムラグがあるし、実際には500mAよりずっと大きい電流が流れないと働かない。

習慣として、大きすぎる電源容量は実験には適さないと思う。(安全が確認された回路なら大きくてもいい)
個人的には、組んで最初に電源を投入するときは、電源装置の出力電流を少し絞り気味にしている。

かといって、いまどき、小さすぎるACアダプタなんて、入手が難しい場合もあるだろな。

・できれば小さい電流容量のものも持っておく。
・1Aを超えるものだからといって、記事の「ダメージを与えるかもしれない」の「かもしれない」にいきなり該当することはない。
ということでいいのでは。

977 :
舞子たん(;´Д`)ハァハァ

978 :
>>976
USB電源のリセッタブルヒューズって互換機についてないの?
Elegooの互換機には付いてる?
それに3Aの充電器とかつかったらやばい?

979 :
>>978
こう言うパーツが付いてたら大丈夫かと
https://i.imgur.com/mdw8s05.jpg

980 :
>>978
よく Nano のダイオードが焼ける報告があるね。

981 :
書いてある文字はちがうけど同じのついてた
これなら大丈夫やな

982 :2020/01/14
>>979 これ俺の持っているヤツ。古くなってきたから変え換えたいんだけど、
秋月見たらArduino Nano Every((ATMega4809)が売ってるから、これにしようかと,安いし(値段1/3)、メモリも3倍

【アナログ】テスター総合スレッド 11Volt【デジタル】
【な】秋月、千石、若松などを語るスレ52
ホーザンvs グットvsハッコー No2
電子工作について
鉱石ラジオ・ゲルマラジオについて語ろう 其の12
シーケンサ・PLCラダー総合スレ 19台目
初心者質問スレ その133
パチンコの不正って『簡単』にできるの?
電磁波犯罪被害(電磁波兵器/マインドコントロール)
eBay, AliExpress で電子工作関連のお買い物 12
--------------------
月刊マガジン & マガジンR 総合スレッド Part31
往年のアイドラープレーヤー等を真面目に語るスレ
【東京\/に】辛斤 シ写 糸冬 単戈【弓| /刀\ けw】
ZenFone Live (L1) Part2
[PS4/XB1] For Honor/フォーオナー part153
【MIAMI HEAT】マイアミヒートを語るスレ part71
 K-1ファイターを一人思い浮かべてください!! [933662325]
【オフ】同人活動に疲れた27【サークル】
□オークションで見つけたPCパーツ53□
【バーチャルYouTuber】.LIVEアイドル部アンチスレ#676【アップランド】
ニバスエッッッッッッッ
●チョー大都会・金沢を熱く語りまっし13
目の病気。眼科総合1目(複視、その他)
【グルーヴ】J-Doll【1/6】
Windows NTが好き! SP9
◆男の子の声変わり◆
転載は禁止です
ぬるぽで1時間以上ガッされなければチョソ@ハン板1371
フラッシュライトMOD 部品ばかりたまる16本目
【社会】京アニ放火 ガソリンで火付けたと供述 回復待って逮捕へ 精神障害があった ★4
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼