TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
3Dプリンター個人向けその9
初心者質問スレ 139
俺のコイルガンがよわい
鬱でも必死で会社に言ってる人【電電−13】
オシロスコープ総合スッドレ! part21
AVRマイコン総合スレ Part41
自作EMドライブ電子工作
電子工作入門者・初心者の集うスレ 89
【自作】 オリジナルプリント基板製作スレ 11層目
シーケンサ・PLCラダー総合スレ 18台目
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 :
- みんな凄いなあ 初心者から見るとカッコいい〜
オレも頑張るぞっと 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引数は文字列を格納するバッファー。
100〜のスレッドの続きを読む
アナログ高周波回路、設計3課
自営業 悩みごと相談室 51
スイッチング電源 6台目
電気なしで暮らす
トランジスタ技術のスレ 3
東芝の想いで
【Cortex-】 やっぱARMっしょ 8 【AxRxMx】
コイル・トランスの自作
電子工作入門者・初心者の集うスレ 85
破裂とか][痛かった件について][感電とか
--------------------
【人生】誰かがあなたの悩みに答えます705【相談】
【SONY】DCRーPC350【ソニー】
リコーダーの曲について語れ
【犬夜叉】日暮かごめファンスレ其の六
『おやじ達のララバイ』 Part14
インテリア参考になる映画って?
youtube動画を集めよう!フライトシム板
【 #丸山穂高 】戦争発言、議員辞職重ねて否定「絶対に辞めない」 ★4
Nyaa Part26
秋篠宮佳子内親王親衛隊 第39師団
日本の伝統芸能といえば神楽じゃないの?
NTTdocomo ドコモ 誘導厨・NURO光・熊本県 Part.99
森高に短足って言いすぎたらダメだよ
【グンマー】滋賀のバスに敵対する部落の悪口が落書きされる。
なんか普通に有安嫌いになってきたわ×133
【イエス】 これはわたしの愛する子part33 【キリスト】
【自治】美術鑑賞板のワッチョイ導入議論スレ
【チョッコレート♪チョッコレート♪】明治ミルクチョコレート【チョコレートは明治♪】
潔癖症のトレーニー集まれー
L'Arc〜en〜Cielってまだ活動してる?売れてないけど
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼