Arduino初心者熱烈大歓迎質問スレ part26
レス数が1000を超えています。これ以上書き込みはできません。
~-~~--~-~~-----~-~-~--~-----~-~~~-~-~--~--~---~~~~--~~~-~-~-~-~--~~~~~-~-~~~
~--~--------~-~~~~~-~---~~--~--~---~~~~~-~-~~~--~--~---~~-~~-~-~~-~-~~-~~~-~
~-~~-~~~~~~~-~-~-~~---~-~--~-~~~-~---~-~~--~---~-~~~--~--~---~~~~-~~-~------
~~~~----~------~--~-~--~-~--~--~~~-~~~-~--~~~--~-~--~~~~~~---~~-~-~-~-~~~-~-
-~--~~-~-~-~-~-~~-~~~-~~--~~--~~--~-~~~--~--~~-~~~---~-~~----~~~~-~---~-~---
--~-~~-~--~--~~-~~-------~-~-~~~----~~--~~-~-~~-~~~~-~---~-~~~~~-~~~--~~-~--
~~---~~----~~-~-~~---~--~-~---~~~-~-~~~~~-----~-~~~~-~-~~-~-----~~~---~-~~~~
~--~---~~~-~---~~-~-~-~-~~~~-----~-~~--~-------~~-~-~~--~-~-~~-~--~~~~~-~~~~
-~~~~-----~~~~~-~-~--~--~~-~--~~-~~--~~-~~~~-~~~~~----~~-------~-~--~-~~--~-
---~~~--~---~-~----~-----~-~-~~~~~~--~~--~-~~-~~~--~~--~-~-~-~--~-~~-~~~-~~~
-~~--~~-~---~--~--~~~~~-~~~~~~-~~-~-~------~~~~~~~--~---~~-~--~-~~--~--~----
~---~--~---~~-~~----~~--~~---~---~~~~-~-~-~~~~--~~-~~~-~~--~~-~-~~~--~~~----
~--~-------~-~~~---~-~-~~~~~~---~~~-----~---~~~-~~~--~~----~--~-~~~~-~~~~~-~
---~~~~~-~~~--~--~~-~--~-~---~~---~~~~--~~~~--~--~-~~--~--~~--~~~~~--~---~--
-~--------~-~--~-~-~--~----~~~~~~~~~-~-~~-~~~~~~~---------~~-~~-~~-~~~~--~-~
------~-~~--~---~~-~~~~--~~~-----~~-~~-~~~--~~----~~~~-~~~~~-~-~~~--~--~---~
~~-~-~~-~~-~~-~~-~~~-~~~~~~-~---~---~~~~---~------~~~-----~~~-~~~--~------~-
~~-~~~-~-~---~~-~--~--~-~-----~-------~~~~--~-~~---~~-~~---~~~-~~~-~-~-~~~~~
-~~~---~--~-~--~~-~--~~~--~~-~~--~-~~--~-~--~~--~-~~--~--~~--~--~-~~-~-~-~~~
-~~-~--~-~--~-~~--~-~-~~-~--~~~--~-~~~-----~~~~~~~--~~~--~~~~~-~----~-----~-
--~-~---~~~~~--~---~--~~~~-~--~--~~~---~~~~~----~-~~----~-~--~~~-~~--~~-~-~~
---~~--~-~------~-~~~-~----~-~--~-~~~~~~~--~-~~--~--~~~~~---~-~~-~~~-~~-~--~
~---~~~----~-~~--~-~~~~~-~-----~-~-~-~~~~-~~-~~----~~---~~~-~--~-~--~~~~~---
~~-~-~~~~~--~-------~~-~~~---~----~~-~-~~---~-~~-~~-~-~~-~-~--~~~-~---~-~-~~
~-~~---~-~~~--~~~--~~~~-~~-~---~-~----~~--~~-~~-~-~~--~--~-~--~-~---~~~~--~-
-~~---~~-~-~~~-----~-~~~-~-----~-~~~~---~~-~-~--~--~--~-~~~~~~~~~~--~-~~----
-~--~--~--~~---~~~~-~~~--~--~~~-~~-~-~~--~-~-~~~-~---~~-~~~~--~-~-~-----~-~-
--~~~-~~~---~---~~~~~~~--~~----~-~~~~-~~-~-~~---~----~-------~~~~~-~-~-~--~~
~-~----~-~~~--~--~--~-~-~-~-~--~~~--~--~~~~~~~--~-~-~~~~----~~~--~~--~---~-~
~~~-~~---~-~~-~-~~-~-~-~-~-~----~~~--~-~~-~--~~~-~-~-~-~~--~~----~-~--~--~~-
---~~---~~~-~----~--~-~~~~~-~~~~--~~-----~~~-~-~~-~~-~~~~--~---~--~~-~~~----
--~-~---~----~~-~~-~~~-------~---~--~~~~-~~-~~~---~-~--~~~~~~~~-~~---~-~~-~~
~-~~~----~~~~~~~~~-~-~----~-~~~-~-~-----~-~~~~--~~~-~~--~~~-~~------~----~--
~-------~--~~-~~~~--~--~~-~~~~-~--~~~-----~~~~--~~~-~~--~-----~--~~~-~-~~~~-
-~~------~~~-~~-~-~-~~-~-~~--~-~---~~-~~-~-~~~--~-~~~--~--~-~---~--~~~--~~-~
~-~~--~~~-~-~----~---~~~--~~-~----~~-~-~--~-~-~--~----~~----~~~~~~--~~~-~~~~
~--~-~---------~~~~-~~~--~~~~~~~~--~-~-~~~~----~~--~~~~-~------~-~-~~--~--~~
~--~~-~-~~~-~---~-~~~~~----~~---~~~-~-----~~~-~---~~~--~-~~~~-----~--~~-~~-~
~---~~---~-~-~-~-------~-~-~-~~~~~-~~-~--~---~--~~--~--~~-~~-~~~~~~--~~-~-~~
-~-~~---~~--~-~-~~-~~~---~-~-~~-~~-~~-~~~~----~~-~--~-~--~~-~~~~-~-------~~-
~-~-~-~-~~~~-~~~-~-~~--~---~~~-~-~~~~~~~--~~---~~-~-~-~----~~--~-~----~-----
----~-~-~---~~~~--~~-~~~-~-~~~-~~~--~~-~-~---~~-~--~--~~~-~--~-~-----~-~-~~~
~-~-~~~---~-~-~-~--~-~~~-~----~-~~---~-~~----~-~~~-~~-~~-~--~~~~~-~~--~-~---
~~~~~~--~---~~~--~~-~~~~------~~--~-~~~-~~~---~-~--~---~~~-~~~----~-~---~-~-
~-~~---~--~-~--~--~~~-~~-~~~-~-~~-~~~-~--~~-~~-~-~-~~~---~-~----~--~~---~-~-
---~~-~~-~-~~~~~-~-~-~~~-~~~~~~~~~-~----~~~-------~--~-----~-~~---~-~-~~~---
~--~----~--~-~~-~~--~~----~-~--~~-~-~~~-~~~-~------~~~-~~~~-~-~-~--~---~~~~~
--~----~--~~~~-~--~-~----~-~~~-~~~~--~-~-----~---~~~~-~~~~-~-~--~--~-~~~~-~~
~~~~-~--~~~---~~~~---~-~--~~--~-~----~-~--~~~-~~~~-~~-~----~~~-~-~~--~-----~
~--~~---~-~---~~~~-~~~~~-----~~~-~~~~~~-~---~--~--~-~--~-~----~~---~~-~~~--~ Arduino 328の入力にスイッチを接続してるのですが、
LEDでその状態を視覚化しようと図のような回路を考えました。
https://i.imgur.com/oLbsU0N.png
平時はGreen、断線するとRedになります。
LED_Greenは3mA、LED_Redには4.8mA流れる設計です。
R150はArduinoがHi出力になった場合の保護用です。
平時13mAx3=40mAも消費してしまいますが、接続しても問題無いでしょうか? >>4
緑はつきっぱなしでいいの?
あとそれだとHiの電圧が低すぎて成り立たないんじゃない? 初心者で申し訳ないけど
おらもこの回路でいいのかなあと思ってた
あとでちゃんと計算してみようと思ったけど シリアル通信ってPC側のプログラムをつくりたい場合どうやるの?
コンソールで手動でやるんじゃなくて >>8
どうやるって、手持ちの開発環境で作る、としか 極端な話、最近はゲーム内にセンサーからのデータ取り込んだからUnityでやった。 >>10
違う、PC用のプログラムを書くの。
C#とか、Phytonとか、VBとかで。 USB接続でできるの?
USB接続したらarduinoと認識される気がするんだけど? >>14
それはあなたがPCでArduino用の開発環境を立ち上げてるからでしょ
PCそのものはArduinoかどうかなんて認識してない
Arduino IDEがCOMポートを見ててArduinoがCOMに繋がったと認識してるだけのこと
たとえばUnityならUnityがCOMポートを見に行ってバッファのデータを拾ってくるの ArduinoIDEも作られているProcessingで作ったらどうだろう >>17
回答者が質問者ですらない君の位置まで下りる義務は無い
分からないなら分からない君が質問すればいい >>20
ああ、何言ってるか分からないから偉そうに見えちゃったのな
それはお前、理解力の無い自分を恨めよ、馬鹿なのか? こんなのが難しいとかいう発想しちゃう自惚れ度ヤバすぎ。 パソコンとマイコンの違いってなんですか?
パソコンは計算させるものでマイコンはコントロールするもの??? パソコンもマイコンも計算とコントールをしてる
処理能力の差の問題 >>22
じゃあ、お前がID:kCDGTsjtに回答してやれ、見ててやるから、ほれ 回答済みの質問に回答しろって?
真性のアホだったか。 >>26
おや、君独自の個性的な回答を繰り出すのかと思ったら、降参か。
そこまで無能だったとは呆れた。 >>14
もう済んだ話かもしれないですが。
UNOの場合だと、パソコンとUSBで接続すると絵の上のようになります。
「USBシリアル」と書いた部分は、USBとシリアル通信を変換するしくみです。
絵の上のようにつながった結果、アプリやメインのマイコンから見れば、
絵の下のように、お互いに直接シリアル通信をしているように見えます。
車の部品としてマイコンを使いたいのですが、常時通電させた場合、数年レベルで持つものでしょうか >>30
コネクタやケーブルまで含めて、構成してるパーツの信頼性・特性、実装法や設置箇所の環境に依る
特に車の場合、振動、埃、湿度(水)、温度とその変化など環境要因も大きい(トヨタは自社製の半田を下請けに提供してるほど)
先ずは、>>1 のように状況を具体的に詳しく書きましょう >>30
常時通電そのものは十年でもいけるだろうが
まず車載ってのが問題で条件がめちゃ厳しい
電子部品はマイコンどころかコンデンサにも車載用グレードってのがあるくらい
熱や振動などが辛い >>29
プログラムをアップロードもUSBシリアルからしてるの?
間違えたらプログラム壊れれない? >>18
processingに似てると思ってたんだけどフォークだったのか
中の関数まで似てるから偶然ではないと思ってたが >>33
USBシリアルを通して転送している
そのスケッチをやり取りする部分はブートローダといってプログラム領域を間借りして存在している
そこは標準のスケッチ転送では書き変わらないようになっている(ブートローダは自分自身を書き換えない) ArduinoIDE用のボードデータがあって簡単に開発できる奴で最もCPUの演算性能良い奴ってやっぱESP32?
こんな単純な比較は許されんがUnoMegaNanoが8bitで16MHzのところアーキテクチャは違えど32bitで240MHzは圧倒的だよな
STM32duinoでも確か32bitの72MHzだよねARMだったか Teensy4.0とかどうだろうか?Nanoくらいのサイズ
https://www.switch-science.com/catalog/5877/
ここからTeensyduinoをDLしてIDEに追加したらすぐ遊べる
https://www.pjrc.com/teensy/td_download.html
1サイクルでアクセスできるRAMを持ち64bit浮動小数点演算をハードウェアでサポート
標準で0.6GHzで動き、ヒートシンク&ファン装備するなど冷却を強化すれば1GHz超えも
ESP32の10倍近い演算性能を叩き出す・・・これで何するんだよ >>42
吊るしの600MHzで無限ループでGPIOをHi/Lo切り替えるだけだと154MHzになるようだ
ヒートシンクつけて960MHz動作でやると250MHzくらいか?
1秒で2億回以上点滅できるLEDが必要だな!!! DFPlayer動かなくて1日はまった
もしやと思いライブラリのver2個下げたら動いたよ DFPlayer のライブラリは、もう開発終了で現在は、
DFRobotDFPlayerMini に開発が移ってる
けど、中身にほぼ違いは無いよ >>41
こんなのもあるぞ
カメラ、QVGAのLCDが付いて3000円
400MHzの64bitCPUコアを搭載
単精度、倍精度浮動小数点演算が可能
RAMが6MB、Flashが16MB
MaixduinoはMaixPyでオンボードのESP32のWiFiとアナログポートが使える
(Arduinoでは使えない)
購入時、MicroPythonのMaixPyが書き込まれてるが
これをArduino IDEの追加のボードマネージャURLに追加すればすぐにArduino IDEで使える
http://dl.sipeed.com/MAIX/Maixduino/package_Maixduino_k210_index.json
PlatformIOでもArduino開発ができるぞ
Sipeed MAix Bit Suit (液晶・カメラ付)
http://akizukidenshi.com/catalog/g/gM-14471/
¥3,000(税込)
Sipeed Maixduino
https://www.switch-science.com/catalog/5707/
\ 3,960(税込) >ESPduino-32 (ESP-Wroom-32@80 MHz),
最大240MHzなのに何で >>51
内蔵のSPI-Flashの動作周波数でしょ
この成績はコア240MHzじゃないと出ない Teensy4.0速いね
512KBの高速メモリが効いてるのかな? https://qiita.com/tadfmac/items/9c58a9670ac8efa99a85
ここのスレーブ側のスケッチですが、tiny85には書き込めるけど、tiny84だと48行目の「TCCR1 = 0x90;」の所で「'TCCR1' was not declared in this scope」とエラーになってしまいます
なぜでしょうか? 「TCCR1」を「TCCR1A」にしたら通らない?
Tinyx4とx5ではレジスタ名が違うんで
データシートのタイマーの項を見比べて 39行目も変更かな OCR1A = divisor-1; >>55
どうもありがとうございます
TCCR1AとOCR1Aに変更したらコンパイル出来ましたが、書き込んでもtiny84側から音が出ません
(I2Cスレーブとして音を鳴らすスケッチだそうです)
ボード定義はこれを使いました
tiny85だと鳴るんですが。。。
https://raw.githubusercontent.com/SpenceKonde/ATTinyCore/master/avr/extras/Pinout_x4.jpg OCR1Aは16ビットタイマーか
こうかな
OCR0A = divisor-1; tiny84からスピーカへは5番ピン
Arduino Pinで言えば8番ピン >>59
話題変えてすまんけど、
このArduino Pinって面倒つーか、
わかりにくくてイヤだわ。
素直にCPUのピン番号とかの方がマシ
GPIO定義名は一部のCPUで使えるからまだいいけど たぶんUnoとか開発ボード用に初心者にもわかりやすく番号を振ったんだろね 負電圧(0~-10v)のパルス信号(バイクのエンジン回転数)をarduinoに読みとらせたいのですが、この場合は反転レギュレータを使えばいいのでしょうか? >>64-66
中心電圧シフトって方法があるんですね
フォトカプラは思いつかなかったですが確かにこれが安全そうですね
ありがとうございます >>67
回路図ありがとうございます
色々方法があるんですね
勉強になります インプットがHIGHかLOWかを判断したいんですが入力のピンにはまだ何も繋いでいないのにHIGHになってしまいます
対象方法教えてほしいです >>70
入力のピンに何も繋がないと非常に不安定な状態になる
チップ内部にプログラムで制御可能なプルアップ抵抗が用意されているのでこれを使う
pinMode(<inputpin>, INPUT_PULLUP);
プルアップ抵抗は50kΩ前後
ロジックテスターのようなものを作りたいなら
出力ピンと入力ピンを10kΩで接続し
1)出力ピンをLowにしてプルダウン状態を作り、入力がHi入力なら明確なHi
2) 〃 Hiにしてプルアップ状態を作り、入力がLo入力なら明確なLo
3)それ以外のケースは不定、又は不明
これでいいんじゃないかな
あと、アナログ入力で正確に電圧測る手もあるよ >>70
なんかつなげよ。つないでないときの入力は不定だよ。 >>70 ですけど、みなさんありがとうございます
ISPライターを繋ぐピンと入力のピンが同じなだけでした
ISPライター外したらちゃんと動いてくれました
プルアップについてもちゃんとやってみます スペック:電子工作初心者。Arduino買ったばっか。
自転車のペダルにつけるPASセンサーなる磁気センサーを使ってモーターを動かしたかったんだけど
シグナルが断続的でうまく行かない。
こんなやつhttps://www.youtube.com/watch?v=edsrDh2huFk
単純にこのシグナルをArduinoに入力して、受信している間一定の電流を出力させるにはどうしたら良いですか?
スロットルならモーターを問題なく動かせるので、リレーとやらを使ってその電流で作動するようにしたい。
あと、シグナル2回受信で作動、2秒シグナルがなかったら停止の機能もつけたい。
ネットにconst unsigned long activityTimeoutMS=2000;
const int startPulses=2;
とか言うコードが落ちていたが、実際のvoid loop()の中でどういうコードを書いたら動作するのか
さっぱりわからない。。。 あ、「シグナル2回受信で作動、2秒シグナルがなかったら停止の機能」の部分はとりあえず
無視してもらって構わないです。実際に動かしたら何の条件もつけないでうまく動作する可能性も十分にあるので。。。
よろしくお願いしますm(_ _)m 何がうまくいってないのかがわからないけれど、シグナル1回目で反応していいなら
---
カウンタ変数をあらかじめ決めた最大値に初期化
ループはじまり
カウンタ変数があらかじめ決めた最大値に満たないときはインクリメント
センサーからシグナルが入ったらカウンタクリア
カウンタ値があらかじめ決めた閾値以下ならリレーON、さもなければOFF
(10m秒ぐらいの)時間待ち
ループ終わり レスありがとうございます!
あ、うまく行かないのはシグナルが途切れるのでモーターが一瞬ガツンと動いて止まってしまうことです。
プログラムの知識も皆無なんで参っているんですが、そのコード再現できるよう
ちょっと頑張ってみます!
ありがとうございました! ちょっと頑張ってみたのですが、エラーばかり(iとかxとかが宣言されてないetc)でとても書き込みまでたどり着けない。
何かおかしいですかね?(・・?
int PASPin=2;
int led=11;
void setup() {
// put your setup code here, to run once:
pinMode(PASPin, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
for(i=0; i<4; ++i); //i=0からスタートしてカウントしろ iは4より小さい
if(PASPin, HIGH){(x=i-2)}else{(x=i+1);} //PASPinに電流が流れたらiから2引いてxとする。そうでないなら1足してxとする
while(x<0){digitalWrite(led, HIGH)}else{digitalWrite(led, LOW)}; //xが0より小さいうちはled点けろ。そうでないなら消せ
delay(1000);
} Arduino 云々じゃないね。
まず何らかの言語の勉強本、1冊ぐらい買って読んだ方がええやろ?
int x = 0;
for(int i = 0; i < 4; i++)... こんな感じかな。全角のスペース、コロンも入ってたよ
int PASPin = 2;
int led = 11;
void setup() {
// put your setup code here, to run once:
pinMode(PASPin, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
int x = 0;
for (int i = 0; i < 4; ++i)//i=0からスタートしてカウントしろ iは4より小さい
{
if (PASPin, HIGH)
x = i - 2;
else
x = i + 1;
//PASPinに電流が流れたらiから2引いてxとする。そうでないなら1足してxとする
if (x < 0)
digitalWrite(led, HIGH);
else
digitalWrite(led, LOW);
//xが0より小さいうちはled点けろ。そうでないなら消せ
delay(1000);
}
} どういう処理がしたいの分からないから
延々とiを0から3でループさせたけどw 何が目的の4回ループなのか読み解けない…
あと、このセンサーって、ある場所で止まっていたらHigh出力を維持するのかな?
だとしたら、「センサーのシグナル」はHighかLowかの判定じゃだめですね。
「前のセンサーの状態」変数をLowに初期化
ループはじまり
もし「前のセンサーの状態」変数がLow かつ 今のセンサーの状態がHigh ならセンサーのシグナル発生
「前のセンサーの状態」変数に今のセンサーの状態を代入
:
:
ほかの処理
:
:
ループ終わり
こうしておけば、センサーの状態がLowからHighに変化したときだけを検出できます。 あああーダメだ
>>84
×「前のセンサーの状態」変数をLowに初期化
〇「前のセンサーの状態」変数をHighに初期化
こうしておかないと、センサーがたまたまHighで止まっていたときに、
いきなり変化したとみなしてしまいます。 >>80 ごもっともですm(_ _)m。あ、intで宣言するんですね。
>>81 ありがとうございます。
>>82 うおお、すごい!見るからにちゃんとしたプログラムです!
これをベースに動かしてみて試行錯誤してみようと思います。
ありがとうございます! >>84 iが大きくなりすぎるとシグナルで1引いたとき作動するx<0にしにくいかなぁ
と思って適当に4より小さいにしてみました(笑)
この磁気センサ、磁石の上で止まってもシグナルはすぐ消えるんで多分大丈夫そうです
というかこれ以上複雑になると手に負えないので(←いやお前すでに負えてないだろ)
いったん実験してみます
ありがとうございました! >この磁気センサ、磁石の上で止まってもシグナルはすぐ消えるんで多分大丈夫そうです
なるほど、それなら心配いらないですね。 あまりに初歩的なところでつまずいて自分でもびっくりなんですが
上のプログラムを書き込んでもLEDがただ点滅するだけ(センサーなんてピンに刺さってようが抜けてようが無視)
自分のマイコンが故障してるんですかね?
ちなみにスターターキットの互換ボードです
初期プログラムが作動しているのかと思ったのですが、delay(3000)にかえると
律儀に3秒間隔で点滅してもはや何とも。。。 >>if (PASPin, HIGH)
これ条件式になってないよね?
if (PASPin==HIGH) デバッグの方法を覚えた方がいいな。シリアルモニターに値を出力させて挙動を見る方法は知っているかな?
setup(){}の中にSerial.begin(9600);追加。
delay(1000);の前に以下追加
Serial.print("i="); Serial.print(i);
Serial.print(" x="); Serial.print(x);
Serial.print(" PASPin="); Serial.println(PASPin);
コンパイルしてアップロードする。
「ツール」→「シリアルモニタ」を開く(右下の通信速度に9600bpsを選択)。
これでarduinoの中がどういう動きをしているのか(考えた通りなのかどうか)見える。 いやまてまて、PASPinはピン番号だからピンの状態を示す変数じぁないじゃんかw
if( digtalRead(PASPin) == HIGH ) >>90、93 おお!ありがとうございます!プログラムが作動し始めました!
あやうくスタート地点に立つ前に退場かと思いました(笑)
結果。。。結構な頻度でシグナルを送ってるはずなのにたまにLEDが点滅しただけでした
(←シグナル送ってる間点灯しててほしかったんだが。。。(笑)
>>92 チャレンジしてみます! みんな優しいな。
スターターキットを購入したのなら、何故、各種センサーのチュートリアルを
地道にやらなかったのかな?サンプルプログラムを色々と変更したり、条件を
変えたりして、遊びながら学ぶものだと思われるが。。。
ここで正解を聞いて、プログラムを人に組んで貰っても本来の意味はないよね?
完成すれば良いなら、既成品を買えば良いのでは?
>>92
デバッグの前段階かと。。。セミコロンが全角だったり?
PCの日本語入力の使い方からだろ。
決してプログラム、特に Arduino なんて誰でも習得できるレベルのもの。
今からでも全然遅くないから、その折角の入門キットを活用されてみては? Uno WifiやNano Everyのような最近のAVRのためにPicKit4を買ったんですが、もしかしてArduino IDEじゃPicKit4経由でブートローダー書き込んだりスケッチ書き換えたりって事は出来ないんでしょうか? >>97
新しいのは知らんが中華Nanoのブートローダを中華Nanoで書き込むなんてことは日常茶飯事。
もちろんArduino IDEで。 あ、当然、PICkitは使わずに、2台のNanoで互いに >>98
UnoWifiやNanoEveryはmega4809だからAtmelで言うAVR8X規格(もともとmegaxに使われてた奴)でICSPに対応してないよ
UPDIで書き込むからまぁJTAG2UPDIとかを使えば良いっちゃ良いんだが
>>97
PICKIT4はArduinoIDEでは対応してないんじゃない? >>98
ISPじゃなくてUPDIの話
NanoをUPDIプログラマにする事も出来るけどその話じゃなくてPicKit4で書き込めるかって事です >>100
対応してないんですかね
ググってもjtag2updiやmicroUPDIは見つかるけどPicKit4の例は全く引っ掛からなくて >>102
別にIDEからGUIでやらんでもavrdudeでよくない?
IDEに入ってるし >>97
ArduinoIDEの書き込み装置一覧にPICKIT4無いやろが
あるかどうか見てから買えやw >>103
Arduino IDEだと、inoファイルダブルクリックしてコマンド+シフト+Uで書き込めるから手軽かな、と
>>104
そんな事言ったら標準の書き込み装置一覧にUSBaspもUSBtinyISPもjtag2updiもmicroUPDIありませんよね?
これらは有志の方が作られたものを任意で追加したものだから、UPDIのAVRに書き込むために必要な純正装置のPicKit4も使えるように出来るかと思ったんです シリアルモニタで検証できました!
問題点:シグナルが途切れたら止まるように自動カウントさせていましたが、予想以上に早くて
シグナルごとー2では追いついてませんでした
:そもそもセンサーにつないでるだけで0.6vくらいの電気が流れていて反応していました。
というかPinにコードを刺しているだけでたまに反応しているようでした
:気になって磁気センサーからシグナルが出ているはずのとき(センサー付属のLEDが光ってるとき)
の電圧を測ったら0.3〜1.5vのきったならしい不安定な電気が流れていました。
この不安定センサーだと仮に0.8v以下のシグナルは無視とかのプログラムを組めたとしても
うまく行かなそうなので、いったん頓挫です(笑)
>>96 これからスターターキットでちょっとずつ勉強しようと思います。ただ経験上、実際にプロジェクトをはじめたら
想定を超えた問題が多発すると思うのでまた質問させてくださいm(_ _)m 頓挫ついでというか、そもそも自分が思いついた解決策が間違っている可能性があるので
意見を聞かせてください
スロットルでモーターをコントロールできるようになった
https://f.easyuploader.app/eu-prd/upload/20200126174410_6d7341536d.mp4
↓
でもこのままだと電動アシストじゃなくて電動自転車なのでペダルにつける磁気センサーでコントロールしようとしたが
センサーからのシグナルがとぎれとぎれなので駄目だった
https://f.easyuploader.app/eu-prd/upload/20200126174718_6d314a644f.mp4
これ皆さんだったらどう解決します?
今回自分は磁気センサーが反応しているあいだArduinoから連続する電気が流れるようにして
その電気が流れているときだけスロットルが有効になるようにして
モーターはスロットルでコントロールしたかった
という経緯なんですが、もっと良い解決策ってあるものですかね? それだとペダルの回転は検知できてもペダルからのパワーは検知できてないような気がする。 確かに回転センサーと別にトルクセンサーもあるんですが、海外のサイトで売ってるのみたら
単品で2万円近いうえに取り付けも大変そうだったので選択肢になかったです。
でも今ヤフオク調べたら日本のアシスト車から外した中古品が1000円で売られてますね(笑)
見るからに別の自転車につけてちゃんと作動させるのは苦労しそうですが
万一成功したらシグナルは圧倒的に安定してそうなので突破口になるかも
ありがとうございます! 合法なレベルの電動アシスト自転車が作りたいならかなりハードルは高い。
キモは人力が50%を下回るような馬力を出してはいけないという点だが、
市販品は人間のパワーを計るためにペダル軸のねじれ具合を検出するなんぞという大変高度なことをしている。
まったく無駄なことしやがってという感じだが、法改正の気配はないし技術的に簡便な方法も見つかっていないのだ。 別に、電動原付にすればいいのでは?
ただし原付免許を持っていないお前が悪い、と言える。 >>人力が50%を下回るような馬力を出してはいけない
( ゚д゚)ハッ!こんな決まりあるんですか?
別の意味で完全に頓挫ですね(笑)
>>電動原付にすればいいのでは?
アシスト自転車
→原付(モーターの出力上限規制で多分非力)
→250cc (なぜかとんでもない出力までこのカテゴリーに認められてるので本命!)
とステップアップして自作していけたらなぁ(・∀・)と思ってましたが
いきなりコケましたね(笑) >>110
規制なんて下らないのだが、それによって時々とんでもない傑作が生まれる
軽自動車しかり、アシスト自転車もまた規制によって生まれた超傑作だ
踏まなくても電動でブーーーーンなんてバカでも出来るが、それじゃダメなんだよ
踏まなきゃ進まない、一件不合理な様だが、それこそ傑作だった 自分は自作してさっさと公道走ってる海外の人たちが
心底うらやましいです(笑) 日本ではイノベーションは大企業にのみ認められた特権だからなぁ >>115
確かにローラースケートはいてブーンってやりたいかも Arduinoって今やAVR以外にもいろいろ対応してるけどPICも対応してたりする?
ググっても対立煽りのページばっか >>118
PIC32ならあるっぽいよ
ttp://www.microtechnica-shop.jp/shopdetail/000000000095/ そう言えば いつの間にかPinguinoの本家が消滅してる 残念だなぁ…
https://web.archive.org/web/20190102180953/http://www.pinguino.cc/index.php もうPICとAVRは同じ会社なのにESPやARMより仲が悪いとはどう言うことだ AtmelがMicrochipに買収されて同じ会社になった
AVR推しの皆さんは悔しくてしかたない
AVRスレでPIC厨が暴れるという現象が見られないのがその証拠 そんな対立初耳なんだが
PICとか過去の栄光と思ってた ArduinoのおかげでAVRは市民権を得たもんな >なんだただの情弱か
情弱にそのような認識を持たれてしまうPICさん…w PICくんは情弱を相手にしてないんだな、Arduinoと違って
そのArduinoのパーツに成り下がったのがAVRくん コンコンてノックすると返してくるいいセンサありますか?振動か音ですかね >AtmelがMicrochipに買収されて同じ会社になった
は事実だけど
>AVR推しの皆さんは悔しくてしかたない
これはおかしいね。
求められたから同じ会社になって、今も新製品が出ているわけだし。
AtmelのARMが欲しかっただけ、なんていう人もいるけれど、それなら
AVRの新製品なんて出さないわけだし。
PICもAVRも住み分けができればいいことだし、ユーザーが煽りあっても
仕方がない。両方の(あるいはいろいろなマイコンの)ユーザーである方が
偏らなくていいよ。 >>129
以前に使ったことがあるのが圧電ブザー(発振回路非内蔵タイプ)。
オペアンプで増幅してコンパレータでH/Lを決めるとか。
裸の圧電素子でもたぶんOK。 このあたりが定番かな
振動センサー
https://www.aliexpress.com/item/32984962912.html
音量センサー
https://www.aliexpress.com/item/4000166479822.html
いずれもコンパレーターLM393でデジタル化してArduinoに入力するもの
振動センサーは中に鉄球の入った筒なので、
センサーを傾けるとかシェイクしないと反応しないと思われ
音量センサーは単に音量レベルなのでコツコツ以外にも大きな声でも反応してしまう
ESP32などの高速Arduinoでサンプリングして音声波形を比較する方法も考えられるけど
韓国製の冷蔵庫みたいな機能ならそこまでいらないと思う SW-18015の方だけど、ブレッドボードを指でコツコツ叩いても
ちゃんと読み取ってくれたよ。使えると思う
https://www.aliexpress.com/item/32721306308.html スマホのコンコンロック解除アプリと同じように加速度センサーを使うとか まぁ一つ言えることはマイコンの肝とも言えるアーキテクチャに関してはPICは完全にゴミってことだな >>130
なぜここでAVR厨が暴れるかの理由を推論してるんだよ
買収されて悔しいからだろうと
君のは悔しくない理由の説明になってないし
ましてここでAVR厨が暴れることの正当性も説明できてない >>135
何かを主張したけりゃ論理的にその理由も説明しないとね
ただの馬鹿にしか見えないよ、あるいは犬の遠吠え >>132
> 韓国製の冷蔵庫みたいな機能
なにそれ? >>135
PIC24やdsPICはかなりよくなってるけどね >>139
サンクス
こんなのあるのか
話し声には反応しないでノックにだけ反応するの? >>118
Arduinoに対応するにはg++のツールチェインが必要だけど
PIC用にフリーのg++のツールチェインはないんじゃないの?
XC8、XC16はC++自体対応してないし
PIC24、dsPIC用には非公式のg++があるようだけど
PIC32ならMIPSだから可能だろうけど >>136
>君のは悔しくない理由の説明になってないし
そもそも悔しいとか悔しくないとかの話じゃないのでは?
>なぜここでAVR厨が暴れるかの理由を推論してるんだよ
暴れてるかな? いたとしてもごく少数でしょ?
どんなところにも端っこの変わり者はいるからそういう人を対象に議論しても仕方がない。 アドバイスをお願いします。
esp32でサーボを制御するため、esp32servo.hをインクルードしました。1度ずつ変化させ、180度になったら0度まで戻すコードです。
しかし、サーボが180度回転したところで停止するだけで、制御不能になります。
シリアルモニターでは、1度ずつ変化していることが、確認できています。 >>144
追記
>しかし、サーボが180度回転したところで…
電源を入れると一気に180度まで回って制御不能になります。 >>145
現物の確認はできないですが、周期やピンの初期化はできてます? 動作がおかしいのはプログラムがおかしいのです。よーく見直してみよう。なお、ライブラリにバグがある事は初心者レベルでは稀です。
#include <ESP32Servo.h>
Servo servo;
int servoPin = D0;
void setup(){
servo1.setPeriodHertz(50);
servo1.attach( servoPin, 500, 2400 );
}
void loop(){
for( int pos=0; pos<=180; pos++ ){
servo.write(pos);
delay(2);
}
} >>146
アドバイスありがとうございます。
D4に接続して、setupに
servo1.setPeriodHertz(50);
servo1.attach(4, 500, 2500);
としています。 >>147
ありがとうございます。
試してみたら、「複数のライブラリが見つかりました」と書き込み出来ませんでした。 >>147
それコンパイルできる?
俺の環境(arduino-esp32のmasterブランチ+ESP32Servo 0.7.0)だと D0 がundefinedになるんだが
あと、PWMの推奨ピンは
2,4,12-19,21-23,25-27,32-33
らしい。
https://github.com/madhephaestus/ESP32Servo/blob/master/examples/Sweep/Sweep.ino 内蔵されてる avr関係 が最新になってるので、
User配下にある hardware/arduino が不要なので削除して OK です 落ち着け
回路図か接続図
arduino ideとライブラリーのバージョン
書いたソース全部 ここみてます
https://www.instructables.com/id/ATTiny84-I2C-Slave-Arduino-UNO/
tiny84をi2cスレーブにしてUNOからなんらかの文字を84に送って、
84側では届いた文字がaiueoだったらLEDを1回光らせて、kakikukekoだったら2回光らせたいんですけどどうやるんでしょうか? >>155
アンタの手持ちの機材が分からんが、
そんなごちゃごちゃしててわけ分からんサイトでなく、
もっと単純な基本だけ書いてるとこでまず試す。
https://wak-tech.com/archives/1534 >>157
文字列ならI2Cじゃなくてシリアルでいいんでは?
BasicSerial3はすごいコンパクトだよ 質問じゃないけど スイッチ付きUSBハブ が 200円 だった
内蔵LED が直ぐ壊れるとか、何かと問題あるけど、USB抜き差しが
必要な DigiSpark で便利に使ってる
https://imgur.com/PA73Ata.jpg >>159
>>161
文字でもなんでもよかったんですけど、UNOからI2Cでどうやって信号送ったらいいのか分からなくて
マスター側のUNOにはI2C(Grove)で他にセンサ繋いでいるからATtinyもGroveで繋げれたら配線が楽だと思って https://pastebin.com/ys765XKR
LEDを指定回数点滅させるスケッチなんですが、1秒間の間にチカチカさせてその後1秒間は消灯を繰り返したいです。
点滅させる回数を増やすたびに関数を作って点滅間隔を自分なりに測ってってやるのは非効率だと思うんですが、もっと短く書くやり方教えて欲しいです。お願いします。 >>165
点滅回数(i)と待ち時間(100-400)を関数の引数で渡す。 訳あってProcessingを使うことになって、フラッシュメモリに書き込むことをやってます。
質問ですが、書き込み中に「R」の表記が出るんですが、この意味は何でしょうか?
https://i.imgur.com/3FM2hkf.png
成功なら「・」失敗なら「X」は分かるのですが、
書き込みに失敗してますので、「R」もエラーの一種だと思います。
最後にDone!と表示されますが、失敗しています。
メモリICが5個中で2個がこのエラーが出て失敗します。
よろしくお願いいたします。 > Processingを使うことになって、フラッシュメモリに書き込むことをやってます。
自分でProcessingのプログラムを書いているように書かれているが、
どこかで拾って、説明書も読まないで使っているということか
エラー表記など作者の意図でどうとでもなるからこんな所で聞いてもなー
普通に考えて、RetryかReaderrorじゃないの? >>166
亀レスですが試してみました
blinkin関数に引数を渡そうとしても渡ってなくてLEDが光ってくれないのはなにが間違えていますか?
https://pastebin.com/g44fDfcK >>171
引数渡したりしないで
digitalWrite(LED_PIN, HIGH);
delay(100);
digitalWrite(LED_PIN, LOW);
delay(200);
だと光ってくれたので間違って無さそうです >>170
x highSec == 100
o highSec = 100 >>173
どうもありがとうございます
関数内のhighSecとlowSecの==を直してみましたがそれでも光ってくれないです
int highSec = 0;
int lowSec = 0;
とスケッチの上に書いてあります すみません、マイコンのグランドのピンが折れてました…涙
新しいので試してみます >>176
今後のためにおすすめ
ArduinoIDE>環境設定>コンパイラの警告>より多く >>177
どうもありがとうございます
設定を変更してスケッチ内の=を
==に戻したらたしかに警告が出ました >>169
ヒントありがとうございます。解決いたしました。 arduinoの5v出力端子にDFplayerという音声再生部品と外部スイッチ?(プログラムタイマー)を接続して使ってるのですが、
外部スイッチをつないだ状態でDFplayer特定の高音が流れるとDFplayerが動作を停止してしまいます。
外部スイッチをつながないと正常に動作してます。
電圧不足で止まってるような気がするのですが対策としてはどういった事ができるでしょうか? プログラムタイマーとは?
DFplayer特定の高音が流れるとは? >>180
電源はArduinoから取らないほうが良いよ
DFPlayerの電源は5Vから直接とる
Arduinoからトランジスタ・Mosfetで駆動させるてもいい
>>181
DFPlayer使ったことある? >>182
Nanoの5Vにつないで毎日使ってる。
で、
プログラムタイマーとは?
DFplayer特定の高音が流れるとは?
何のことか知ってたら教えて。 ATtinyやATmegaにスケッチ書き込むためにシールド化してみたのですが
使えるには使えますが見た目がボッコボコでいまいち見栄えがよくありません
参考になりそうな既製品ってありますでしょうか? >>186
そです
こんなスッキリいけるのですね
表面実装とかいうやつでしょうか
自分にはハードル高そうなのでボッコボコ実装をもっと小さくキレイにする感じでやろうかと思います >>181
すみません、書き方が分かりづらかったです。
プログラムタイマーは設定の時間になったらスイッチをオンにする機器です、リレーって言うのかも?
DFPlayerで曲を流してこの機器をつないでいると、
曲の高音の箇所になると勝手に止まってしまいます。 >>180
DFplayerにパスコンもりもりにするぐらいしか思いつかない。 >>188
DFPlayer以外何がつながってるか具体的に分からないと回答できない。
Arduinoの種類、配線方法、大元の電源、リレーとやらのつなぎ方等々
ノイズでリレーが瞬断するとかだとしてもつなぎ方が分からんとなんともです。 〜でなければ回答できないとか要らないなぁ
普通に聞けないのかな 全員じゃなけど電子工作みたいなニッチな趣味はそういう人が多い
上から目線だったり、回りくどくウダウダ書いたり、知識披露したり ホントそれ
回答するつもり無いのにいちゃもんおじさん いつの間にか外野増えたけど回答した人は無しかw
>>188
高音 > ノイズ > リレーが瞬断 とかですかね。
>>190の言う通り、その「機器」の正体がわからないと何とも言えませんね。
だってそれの有無で状況が変るわけでしょ? >>1に書いてある通り回答者に超能力はないだろうからさ 聞かれたことに答えない質問者
自分は何も回答しないくせに
必要だから詳細を聞き返している回答者にただ絡むだけの馬鹿
全部自演か?
そんなんじゃ何も解決しないだけだろうに >>180>>182で解決してると思うが
うちのDFplayer-miniは電圧が足りないと動作を停止とかかわいもんじゃなく
暴走してピギャーとでっかい異常音出す。
プログラムタイマーの消費が不明だけど外部電源に繋いで原因究明したほうがすっきりするだろうな
DFplayer-mini、7セグ表示機、RTC、OLEDで音量上げると電流足りなくてよくピギャーなってたわ
5V1Aの200円の電源でも買ってくれば良いよ >>180
DFPlayer-miniに限らず
Arduinoから電源はとらない方がいい
レギュレーターなりスイッチング電源なり外部から取りんさい Arduinoの5V出力に色々ぶらさげるってのは入門書とかが悪いのか
うちには5Vと12Vの電源しか無くて
AMS1117-5は最大12Vなので12.35Vとか繋ぐのこわい
なのでそこらじゅうにある5VのACアダプタからArduinoの5Vに注入してる
よく考えるとRAWとかVINなんて1度も使った事無いわ >>200
素直に指摘されたことを認めて次からは改善するなり形だけでも謝まってみたりすれば済む話だと思うの。 お客様じゃないんだからさ、
なぞなぞレベルの質問、聞き返しても答えない。
そりゃ口調もキツくなるわな、
にんげんだもの。 >>205
ほんそれ
そういうヤツに限って自分の視野でしか問題点を見てなくて
その延長線に詳細を聞かれても答えないという態度がある
そういうの続くとまともな回答者が去りまともな質問者にも迷惑
まあ、すでにその状態になってるけど 初心者だから何を書けば良いかわからんのだろ
その程度でイライラするのはどうかと オタクなんて器の小さい奴しか居ねえもんw
そこを如何にコントロールして答えさせるかが腕の見せ所ってワケw
今質問者はお前らと違って忙しくてレスできないんじゃね?w
せめてそんなところでは焦んなってw >>207
解決してたとしてもお前には関係ないんじゃね?
残念ながらお前のレスはスルーされてるからw >外部スイッチ?(プログラムタイマー)を接続
>外部スイッチをつながないと正常に動作
とのことだが「外部スイッチって何?」には無回答 >>210
お前が一つでもいいから質問者の言う他の対策を書いてやれやボケ >>212
質問の趣旨を理解してれば君のレスが無意味でスルーされた理由はわかるはず。 >>214
スルーしたかどうかはどうでもいい。別に礼を貰うつもりで書いたわけじゃない
回答者がいくつか提示して質問者がそれを選べばいい
今回自分が書いた回答が、後に誰かの役に立てばいいと思ってるよ > 電圧不足で止まってるような気がするのですが
500円程度のマルチメーターで測れるからあると便利
https://www.aliexpress.com/item/4000030125587.html >>216
数撃ちゃあ当たる方式ですか、原因も探らず?
言葉の下品さと問題解決の手法は無関係ではないのねw >>217
わざわざAliじゃなくても
千石で500円くらいで店頭でマルチメーター売ってたよ 5V なら USB から取れば良いんじゃないの?
https://ja.aliexpress.com/item/32967318140.html
Nano には VIN から入れたら良い。どうせ本体は mini USB だし、
物によっては +5V と VIN が直結だよ。
3.3V は AMS1117 通せば良い。
Arduino から電源取れば、今後うまく動いてもノイズ問題で
また質問くるんだろ?なんども繰り返してる議論。 >>219
俺は千石行くのに3万円掛かるけどなw
秋葉とかで安く売ってるのがDT830B
https://www.aliexpress.com/item/4000617484207.html
5%も誤差無いからだいたいの事はわかる >>221
俺は片道 1.3万円 掛かるけど、共立なら徒歩5分だわ。
と思ったら日本橋にもあったのね。高いから行かないわ。
DT830B ならアマでも買えるし、組み立てキットもある。
https://www.fasttech.com/p/9711258
組立中のテストは、別のテスターが必要だけどな! パルスの周波数とデューティ比を測れるテスターってある? ぶっちゃけスターターキットに入ってるセンサー使わないつもりなんだけど本体だけ買うよりなぜか安いし
スターターキットを買えばいいんだね? >>224
あるかないかで言えばあるけど
高いし、波形までは見れないから
2千円くらいのポケットオシロでもあったほうがいいな
https://www.aliexpress.com/item/32878694776.html
ノイズが乗ってたり、方波形のはずがノコギリみたいに減衰してることはままある >>225
どう考えても本体だけのが安いだろ
”その店では”とかいうのが付くんじゃね >>227
相場が全然わからない・・
秋月 1台 ¥2,940
amazonタイムセール 本体+(ブレッドボードやセンサー電子部品などなど総勢数十個) 2,500円くらい
本体自体が別もんなのだろうか Amazonのは中華互換機だよ
ものは普通に使えるけど不良品の確率も高かったりするから
トラブったときの問題の切り分けが難しくなるってばっちゃが言ってた
UNO買ってもnanoやPro mini等の小型の互換機や単体のマイコンしか使わなくなるから
arduino学習用なら安い互換機でいいと思う 328がDIP品の方が良けりゃこっち
http://s.click.aliexpress.com/e/_sajqa4
4000以上も売り上げてるセラーから買えばまず外れない
うちの中華UNOももう6年経つがトラブル知らず >>230
本体
どちらもUNO と書いてて正確にはamaの方はELEGOOとR3だから別物なのか?と思って
素人目に見て数百円も開いてその他付属品も付いてきてどっち買えばいいんだろうておもた
>>232-234
なるほど、そもそもクローン品とかいう概念がなかったわ
プレステのクローン版なんて普通は売ってないよなくらいの感覚でいた
全てすっきり謎が解けたわ
とりあえず初めてなので?クローンから試してみようかな DIPタイプでも500円未満
https://www.aliexpress.com/item/32848546164.html
個人的にはUNOよりNANO推し
2500円も予算あるなら、
中華NANO、中華ESP32、ブレッドボード2枚、ケーブル各種と電源まで全部揃うな aliexpressの方向性で考えようかなと思うけど
>>234,236
配送予定が一ヶ月先なんだけどその通り一ヶ月先なのかな? >>235
回路図も公開されててクローンは許容されてるんで
そのかわりセラーは玉石混交なので売り上げの多いとこで買ってね
なんならUNO1台とNano2台くらい買っといて
http://s.click.aliexpress.com/e/_sI9BcG
Nanoはここの青いのね >>237
そうなの、早くても2〜3週間はかかる
唯一のネックだけど
その間にいろいろ勉強しとけば? >>238,239
d
とりあえずついでに工具とかも見ていろいろ買ってみる >>240
はいはい、数週間後のデビュー、首を長くしてお待ちしております。 >>232
また良い値段の2つを持ってきたなw
>>238
青意外の Nano互換 なんてあるの?
ATmega互換は別で。
>>225
たぶんその質問してる時点で スターターキット が良い。
まぁ、Nano や ESP なんて UNO 買ってからでも良いのでは?
作りたい物が決まったら、その時に組み込みサイズが欲しくなるだろ。
どうせ IDE のセットアップも自分で検索できないだろうし、
先人のライブラリを使いこなせないと、スターターキットで終わる。 >>243
NANO互換は赤とか緑もあるよ
ATMega328PB micro-USB 送込199円
https://ja.aliexpress.com/item/32828478049.html
・328P上位互換
・USART,TWI,SPIが追加
・A6,A7が入出力可能に
・LEDが4.7k接続で眩しくない
参考:https://www.switch-science.com/catalog/3711/
セールの時150円だったので買い込んだ
重宝してる パチモンでもいいからFT232RLが載った格安中華Nanoが欲しいんだが全く無いな >>245
これもしかしてUSB付近の10pinのICがシリアル変換なのか…? 115200以下ならCH340
それ以上ならCP2103で何の問題も無いからなあ
FT232RLは単体でISPなるくらいしか取り柄が無いんじゃないの
それもNANO搭載だと意味無いわけだし >>246
パチモンのFT232RLに何の意味があるのか。
自分はここの328P-MUのピンがハンダ付けされてないのをよく買う。
http://s.click.aliexpress.com/e/_sITaSa
基板の裏に実装が無いのでいろいろ便利。
>>245ご紹介のものとの違いは328が小さいかシリアルICが小さいかの違いだね。
そのうち両方小さいのとかが出て来るのかもねw >>250
パチモンであってもFT232RLの標準ドライバで動くからね >>250
1年くらい前に328P-MUの黒基板を217円で買ったけど
今380円とかなの? このNANO安かったから買ったけど、持ってるのとちょっと違った
https://www.aliexpress.com/item/32520935731.html
Tx・Rxピンのとこに三角矢印あるし、中央のNANOがRESETになってるし
裏面もダイオードが茶色なってるし、レビュー見たらold bootloaderなら書き込めたって書いてあるから、
古いやつなの?
持ってるのはこれ
https://www.aliexpress.com/item/32341832857.html? >>251
何が標準か知らんけどw
>>252
値段は二の次なのでわからない
値段よりオーダーの多さで選ぶ
最近は上にも書いたように基板裏に何も無いもの
ピンヘッダがついてないもの
という条件で買っている
>>253
クローンなんだから違って当然
ブートローダは新しいのに書き換えればいい
自分なら128 ordersより22268 ordersの方で買うけどね >>253
LEDが緑だから多分それと同じの持ってるけど、何も考えずに普通に書き込めてたよ あ、そういえばarduino IDEのボードデータを更新してないからかもしれない >>245
知りませんでした。Nanoは最初に4個、買ったままで STM32、ESP32
に行ったので、色々とあるんですね。
あ、途中に LGT8F で遊んでたわw
>>253
かなり特殊なことをしてない限り、Optibootが載るでしょ?
Nanoのブートローダーはサイズが無駄。 >>248
CH340E 良いですね。
https://ja.aliexpress.com/item/32948296192.html
先月ぐらいに届いたけど、ほんと小さい。
付属ヘッダピンが L字 じゃないので、L字 に変更したら、
シルクが見えなくなる程のサイズ。 >>258
良いねそれ!ちっチャイナー!買っチャウナー!
CH340系って中国オリジナル? Arduino UNO でI2C使用するときの質問です。
SDAとSCLをシリアルと共通の部分とA4、A5の2か所で取れると思います。
この2つを同時に使って、それぞれ違う通信速度で扱えますか? >>260
中華オリジナル。中華Nanoなどに使われてる CH340G の下位互換?
Windowsのバージョンによってドライバーが別途必要。 >>261
SDA/SCLの端子はA4/A5の端子を延長してきただけ。
専用の端子ではない。まったく同じものだw arduinoを触りだしてから思ったのですが
簡単に言えばコンピュータって電源が入ると
クロック周波数に応じた速さでマシン語のプログラムを上から下まで読み込んで実行
終わったらまた上から下まで読み込んでの、その作業を延々繰り返す、みたいな仕組みなのでしょうか・・? >>264
だいたいそうだけど、arduinoでもsetup部は一度しか実行しないから一番上までは戻らない。WindowsとかもOSは周辺機器やプログラムからのメッセージを待つ部分がぐるぐる回っていて、来たら処理する。割り込み待ってほぼ止まっていることもあるだろうけど。 言葉の定義がイマイチなところあるけど、
ほぼいいんじゃね? 終わったらそれまでなところが違うかな
何回もやりたいなら終わらないようにループさせる必要がある まあマイコンはハーバードアーキテクチャでPCはノイマンアーキテクチャだという大きな違いがあるけどな >>264
>上から下まで読み込んで実行
読み込むのは1命令ずつだな、キャッシュ付きだと複数先読み
実行してる箇所はレジスタで示されてて、これをインクリメントして上から下とかなってるけど
強制的に値を代入して飛ばすのがジャンプ
条件で分岐してジャンプするとロープ構成になったり複雑化していく >>264
Arduinoは組み込み用だから一般的なコンピュータとはちょっと違うかもね
LinuxやWindowsのコマンドラインアプリは自動的にループする仕様はないね
ループしたければ自分でループするようにつくらないといけない
自分で処理の流れを完全に制御できるので楽と言えば楽
Windowsなどの多くのGUIアプリはイベントを読み取って処理して
また読み取ってのループみたいになってる
だいたいどのOSのGUIでもだいたい似たような設計になってるよ Arduinoの延々ループして処理していく仕様は2Dのゲームプログラムと似てるかもね
2Dのゲームプログラミング自体が組み込みと似たようなところがあるのかもね void main( void )
{
setup();
while(1) loop();
}
ってなってるだけだぞw >>272
まあね
objdumpでplatformIOでできたfirmware.elfを逆アセンブルしてみたがmainはこうなってた
ちなみにRISC-Vね
000000008000050e <main>:
8000050e: 1141 addi sp,sp,-16
80000510: e406 sd ra,8(sp)
80000512: 00004097 auipc ra,0x4
80000516: 76a080e7 jalr 1898(ra) # 80004c7c <pll_init>
8000051a: 00002097 auipc ra,0x2
8000051e: 33a080e7 jalr 826(ra) # 80002854 <plic_init>
80000522: 00004097 auipc ra,0x4
80000526: b8e080e7 jalr -1138(ra) # 800040b0 <uarths_init>
8000052a: 00005097 auipc ra,0x5
8000052e: 81a080e7 jalr -2022(ra) # 80004d44 <gpio_init>
80000532: 4585 li a1,1
80000534: 4519 li a0,6
80000536: 00003097 auipc ra,0x3
8000053a: 556080e7 jalr 1366(ra) # 80003a8c <sysctl_set_power_mode>
8000053e: 4585 li a1,1
80000540: 451d li a0,7
80000542: 00003097 auipc ra,0x3
80000546: 54a080e7 jalr 1354(ra) # 80003a8c <sysctl_set_power_mode>
8000054a: 00003097 auipc ra,0x3
8000054e: 57a080e7 jalr 1402(ra) # 80003ac4 <sysctl_enable_irq>
80000552: 00000097 auipc ra,0x0
80000556: 218080e7 jalr 536(ra) # 8000076a <setup>
8000055a: 00000097 auipc ra,0x0
8000055e: 238080e7 jalr 568(ra) # 80000792 <loop>
80000562: bfe5 j 8000055a <main+0x4c> >>274
auipc ra,0x0
jalr 536(ra) # 8000076a <setup>
<setup>をサブルーチンコール
auipc ra,0x0
jalr 568(ra) # 80000792 <loop>
<loop>をサブルーチンコール
j 8000055a <main+0x4c>
8000055aへジャンプ なんか、前スレで出力ポートにスピーカー繋げた時に、コンデンサーを使って簡易的に音を大きくする手法を紹介してる人がいたと思うんだけど、
あれってどこかに解説してるサイトとか無いかしら?
または当時貼られた回路図持ってる人…はいないか。、 >>273
Arduinoでは
C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino\main.cpp
が実際のそれ。
なぜこれが気の利いた措置だと思ったのか、どうもいまだにわからんw >>279
MaixBitならQVGAのカラーLCDとカメラが付いて秋月で3000円で売ってる
flashが16MB(プログラムが格納できるのは8MB)、RAMが6MB
CPUコアが64bitのRISC-Vで単精度、倍精度浮動小数点演算に対応してる 抵抗つけただけのオスUSB付きの白LEDライト(と青LEDライト)を作りました。そしてarduino側にはメスUSBジャックを設置しました
白ライトを刺しarduinoでLチカさせ、次に青LEDライトに刺し替えてLチカしてみたりしました
がしかしもしそのメスに間違って電源刺したらと思うと危ないと思ったのですが
こういう場合は電源取りようの無いコネクタ形状に変えるのが通例ですか? だいたい電源のケーブルはACアダプタ側がタイプAで充電する側はそれ以外じゃね? FT232みたいなUSBシリアルコンバータ経由でATTiny13とか85とか84とか861とかATtiny1シリーズとかにスケッチ書き込めますか? >>286
レスサンクス
FT232をISPライターにするんじゃなくて、FT232でPro Miniに書き込む様な感じで出来るかなって思って
85とか84とかTiny1シリーズとかだとArduinoのブートローダー書き込めるっぽいから、最初に一度ISPライターでブートローダー書き込んで、以降はPro MiniみたいにFT232とかCP21xxそういうのでスケッチの書き込みしたいなって これからアルディーノ 始めようと思うのですが、最初は何を買えば良いのでしょうか?通販の口コミも見ましたが、これは初心者には厳しいなど色々な口コミがありどれがいいのかよくわかりません…。おすすめがあれば教えていただきたいです。 >>288
amazonでarduino スタータキット 2000円くらいから3500円くらいのとnano 互換3ケセットあたりが良いと思う。 最初は壊すことを恐れない準備も必要。 >>283,284
たしかに
給電はUSB2.0 typeA or TypeB、microとかtypeCとか小さい系
ですね
市販のUSB単純LEDランプとかもオスはほぼ2.0typeAなので
TypeAでやってみます 訂正
×給電はUSB2.0 typeA or TypeB、
○給電はUSB2.0 TypeB、
あとモバイルバッテリーはAC変換アダプタのとこがusb2.0typeAなのでややこしいですね…
(usb2.0typeAオスを使う状況があるという意味で) すみません、教えてください
IRremoteつかって、赤外線リモコンの信号を読み取ってるんですが、
リモコンの同じボタンを押しても、毎回違った数列が表示されるんですが、なぜですか? >>294
エアコンならそういうのがあるかも
TVのリモコンで毎回違うコードになるなら何かがおかしい テレビのも照明のもなるんだよね><
どの数列を送信すればよいのか困ります それはうまく受信できてなだけだ。
まずテストに使ってるリモコンのメーカーからメーカーコードを調べておく。
したらそれが受信されるようにがんがるんだ! >>294
ドップラー効果
ボタンを押した際にわずかにリモコンが揺れてしまう
近付く時と遠ざかる時の周波数が変わるので
揺れてるリモコンから発射する波長は微妙に違う
他に考えられる原因としてはリモコン制御ICのクロックの安定性とか
送信中にキースキャン割り込みがあってずれてくるとかかな ドップラー効果ってマジ?
そんなちょっと波長ズレくらいで光センサーの波長特性の中でどれくらいの幅でズレるんだよ >>300
ボタンを押した際にわずかにリモコンが揺れてしまう
赤外線だからなぁ
わずかに高速に動いてるのかw センサが取りこぼすほどの波長変動をもたらす揺れってどんなもんだろう
仮に波長が1%ズレたら取れなくなると仮定した場合、3000km/sなんだが・・・ 手の揺れでドップラー効果でてくる手って
人間では無理です Atmega32U4でUSBシリアル変換器を作ってみました。
RXとTXにLEDを付けてみました。
んで1秒ごとにHello WorldをシリアルにプリントするスケッチをAtmega382に書き込んで、
Atmega32U4の基板をPCとAtmega382の基板に接続して、Hello WorldをPCで表示する事が出来ました。
LEDについてですが、市販のUSBシリアル変換器だと1秒ごとにHello Worldがプリントされたタイミングで点灯してすぐに消灯してますが、自分が作ったやつだと、
Atmega32U4をAtmega382に接続しただけでTXのLEDが点灯してArduino IDEのシリアルモニタを開くとRXが点灯します。以降ずっと点灯したままです。
Hello Worldがプリントされるタイミングでもなにも変化は無いです。点灯したままです。
何が間違えているんでしょうか?
Atmega32U4のRX(TX)のピンにそれぞれLEDと抵抗を付けました。 >>305
TXは normal high じゃなかったっけ? 待機時はHレベルだからそれが正常
市販品は反転してるだけ >>306
>>307
どうもありがとうございます
一応自分のこれは正常な動作でしたか リモコンといえばxbox360の赤外線リモコンをArduinoで使おうと実験していたら一つのボタンで二種類のコードが押すごとに交互に出る仕様だったな
あれは謎だった >>305
ATmega328
>>309
海外製品に ON/OFF を一つのボタンで実現するために、
リモコン側で交互に信号を出すタイプがあるって奴だね。
本体側の状態に関わらず ON/OFF を出すので、2度押さないと
思った動きをしないことがある。
エアコンのリモコンに付いてる液晶の動きに似てる。
エアコン本体に向けずに電源を入れようとすると、
リモコンの液晶だけが表示される。 アリで一通りカートに入れたのですがこれだけは買っとけってのあったら教えてください
ちなNew User BONUSなのでマルチテスター入れときました > 一通りカートに入れた
何か勧めると「それはもう買いました」になるんだろうな
非常にレスしにくい質問 eBay, AliExpress で電子工作関連のお買い物 10
https://rio2016.5ch.net/test/read.cgi/denki/1579618462/l50
専門スレは見てないのかな?それともArduno縛りなわけ?
3スレ位遡って見ればだいたい最近のお買い得品は揃うw ネタにマジレスみたいになってアレだけど、郵送物に付着したウイルス(コロナ)はどんくらい生きてんのかね?
こういう時は逆に配送の遅さが有利に働いたりしてなーと思ったりも
まぁ時間の掛かってるところが主に中国国内だろうからあまり意味ないけど コロナウイルスの場合、つるつるの乾燥面では2日。衣服など柔軟もしくはしめった面ではもう少し。
表面に脂質膜があるタイプなのでアルコールで破壊可能。
いずれにしても2週間はかかるから日本では物から感染する心配は無い。
中国国内に関しては1日で配達されるから、余裕で安全とは言い切れない。 発送が止まってるから心配しなくていいんじゃね
セラーも集荷来ないからキャンセルしてくれって言ってくるみたい
1〜2ヶ月で落ち着くと思うけど
その頃にはNew User BONUS失効してるな >>312,313
新しいユーザセールで何かないかなと
おそらく?商品を物色しないとおすすめ品に載らないっぽいので(最初は釣り用品ばっかりだった)
お買い物スレもっかい見てみます
一つ良いの見つけるとそういえばあれもこれもとねずみ講式に横道それてしまう・・ >>318
「ねずみ講式」ってなーに?
「ねずみ算式」でもないようだけどそっちかな 秋葉原の東京ラジオデパートの3階のshigezone安いね
Pro mini互換ボードが税込み390円だった
Arduino Uno互換ボード(USBシリアルがCH340Gみたい)が税込み450円だったよ shigezoneは今は通販はやってない模様
先週、期間限定で通販やってたみたい
今後はそのうち告知あるようなことがTwitterに書かれてるね オレ基準な
ちっちゃいdigispark互換機、好きで何個か買ったわ。
ちょっと本格的に作りたい時用に、pro mini 互換ボードと、esp32 のやつも買ったわ。
特にesp32 に OLED がのったモジュールは、単体でいろいろ遊べて楽しいわ >>318
そう、変なものを見るとお勧めが汚染されて
しかも変なものはなかなか消えない法則なので気を付けて。
まあみんな良識人でめったにそういうものは紹介されないけどw 絶対必要みたいなもんは少ないな
あっても既に市販化されてて自作する理由はコスト面だけだったりする
2年前に作ったオートサーキュレータは部屋の空気を攪拌するものだが
部屋の天井付近と床付近2点の温度差で動作する
1度セットすればもう一年中いじる必要も無く
今まで、エアコンONしてサーキュレータもONしてといったわずらわしさから開放された
そのエアコンも去年から自動運転になった。明かりを感知しておやすみモードを装備したので
夜中にトイレで起きても適度な気温、エアコンには一切触れずに本当に自分好みの環境になった。 修理のスキルが上がるから、ちょっとした故障なら直してあげたりしたら周りから喜ばれる >>319
「ねずみ算式」とは、慣用句では聞くけどどのような増加の仕方かな?
「ねずみ講」は親が子世代を4人づつ増やしていくと言う方式なので
14世代前後で現在の地球人口と同程度になる。式は下になるかと
4^n = 9 * 10^9 (現在の地球人口を90億人にした)
両辺の(常用対数)をとると n * log4 = 9 * log9
(黙々と)式を簡単にして n = 9 * ((2 * log3) / (2 * log2))
n ≒ 9 * 1.585 = 14.265
故に14世代「ねずみ講式」で会員を増やせば地球人口と同程度になる。
<それで自分も質問あるけど宜しく>
Arduino mega の PWM で質問です。下を参考にコーデイングしました。
ttps://qiita.com/srs/items/68981b6e695e6f4468ff
TIMER1を PWM にして、周波数を 3.921 kHz とする意図ですが
不都合や間違いはないでしょうか。 因みにロジアナ等はないです。
使うピンは>>150氏のレスを参考に12ピンを予定してますが
include <avr/io.h>
static int divide = 2;
void setup() {
pinMode(12, OUTPUT);
TCCR1B = (TCCR1B & 0b11111000) | divide;
}
void loop() {
} >>330
なぜ divide にメモリを取る?プリプロセッサに任せれば? >>329
AN8008は鉄板ですな。安いと1600円くらいで買えるし。
トランジスタ他テスターも使う人には必携。 >>288
micro:bitはどう?
初心者にも優しいと思うよ
Arduinoだけじゃなく、MicroPythonも使えるし >>326
作ってはいないけど
(サーキュレーターの容量不足で常に全開状態)
おなじこと考えてたりするんだね ANENGやZOTEKとかの中華のDMMも安くてそこそこ機能/性能がいいんだけど液晶のコントラストがちょっと薄い感じがするんだよね
古くてショボいDT-830BやDT-9205Aみたいな9Vバッテリーを使ったDMMが意外と液晶のコントラストが高くて見やすかったりするんだ
(ZT15B+、AN870、DT-9205A、DT-830B所持者の感想) バックライト付きだから反射型と比べるとどうしても薄い感はあるね
AN8009をセールの時1200円くらいで買ったけど
大画面だし、組み込んでしまったセンサーのチェックとか薄暗い所でもバックライトで見えるし
キャパシタや周波数、温度まで測れて本当に重宝する
何よりもオートレンジなのでかちゃかちゃ切り替えなくて良いのがいい
難点は電池の持ちがやや悪いのと、テスター棒に太い所があってお箸のように持てない点
LEDやTrのVfとかはAN8009で計れるから
LCRテスターはMOSFETのゲート電圧やコイル計るのにたまに使う程度
こっち買うよりマルチメータ2台あったほうが便利だと思うよ
電流と電圧同時に見たり、入力と出力同時とかできるし >>338
>>339
実物見ないと何とも言えないけど、その液晶はいいかも >>342
下はほぼ単体に近いけど、
上のやつはArduino向けによくあるね
オペアンプ付き(IC)で可変抵抗(四角い青いの)でしきい値を調節してデジタルON・OFF出力が出来る
あとセンサーに必要な抵抗やコンデンサを付けてくれてる ピンヘッダが付いて手軽にポン付けできるってだけだから、
CDSの場合は単体で買ったほうが安い >>344
それはセンサによってまちまち。必要なものもあるし必要ないものもある >>343,345
ありがとうございます
なるほど
まだarduinoもセンサーも使ったことがないですがサイトをみたりしていると
アナログPINにさされていましたがこのモジュールを使うとデジタルPINの方でいける
みたいな感じでしょうかわかりません
https://ae01.alicdn.com/kf/HTB1RIiYcBOD3KVjSZFFq6An9pXab/1-TINY85-Digispark-ATTINY85-Arduino-Iic-I2C-USB.jpg
こういうAttiny85モジュールのやつにセンサーを2,3個付けたいのですが digisparkね
>このモジュールを使うとデジタルPINの方でいける
そうそう。
センサーによってはノイズなんかのフィルタリングや、値の微調整が必要なものはアナログで読み込んでスケッチで調節する方が確実だけどね あ、>>342の上のURLのモジュールに乗ってるコンデンサはその通りオペアンプLM386のコンデンサだよ >>347
中華製の Digispark は P5 がリセットとして生きてる(Arduinoで使えない)。
P3、P4 は Bootloader で USB端子 に使われているので使えない。
実質使えるピンは、P0〜P2。
P1 は LED直結なので、P0、P2 とは違う制御が必要(同じ抵抗値にはならないからね)。
そもそもフラッシュのサイズから3個のセンサー制御はかなり厳しい。
夢を壊すようで申し訳ないけど、bootloader を消して P5 のヒューズを変更して
UART で書き込むとかすると全部解消できそう。
まぁ、その難題を解消するのが楽しいんだけどね! >>354
ごめん、間違ってた。
UART -> ISP(USBasp や Arduino as ISP)。 深セン封鎖らしいけど
深圳直送便謳ってる東京ラジオデパートのshigezoneは大丈夫なのかね? >>353
そうなのですね てっきり全ピンをセンサーに使えるのかと思ってました
ひとつ?大き目のnanoだといけそうなのでそれでもやってみようかと思います Arduinoで他のマイコンの電源を管理しつつUART/I2C等で通信を行いたいのですが
以前NchMOSFETでのローサイドで同じ様な事をしようとした時に痛い目にあった事があり、
今度はPchMOSFETでのハイサイドで試してみようと思うも不安があります
いっその事ハイサイドとローサイドに入れてしまうのはどうなんだろうとぐぐってみると、
そんな作例が全く見当たらなかったのですが、両方に入れるのは完全な無駄なのでしょうか >今度はPchMOSFETでのハイサイドで試してみようと思うも不安があります
どんな不安があるの?
ほかの回路と通信ラインをつないだまま、その「ほかの回路」のGNDを切り離す
のはあまりしない。グランドはつなぎっぱなしが普通だろね。 PNP Tr ではダメなのか?
FETより使うの簡単、値段も安い >>357
よっぽど大きさにこだわりが無いなら、無難に ATmega 搭載の方が良いです。
Digispark は、そのままでは動かないライブラリも多いです。
で、私が書いたことに、もう一つ間違いがありました。
P5 のヒューズを変更してリセットを無効にすると、P5 を Arduino から
使えるようになるのですが、そうすると ISP経由 で書き込みができなくなります。 >>361
ヒューズリセッタ用意する方が手間かかる >>362
全く現実的じゃなくなるね!
Tiny買い直す方がよっぽど安上がり。12V電源だけで10個は買えるんじゃない?w >>363
そもそもDigisparkとTiny85なにが違うん? ISPライタとTiny12Vリセッター
https://i.imgur.com/TuPKeXL.jpg
ガイドレールは3Dプリント 道具の一つだからねえ。
ラジオペンチってなかなか見せ所がないよね、みたいなw ラジオペンチは頻繁に使われるけど3Dプリンタは敢えて使おうと考えないと使わないよな 特別なアイデア物じゃなくとも、作った物収める箱なんか全部3Dプリンタで出してるな
100均とかのケース加工とかもう出来ない うちはパネルとかが多いな
ミリタリー風のとか
https://i.imgur.com/CGEQEUI.jpg
ジャンパーワイアを2.54ピッチで曲げたり、IC足補正する冶具
https://i.imgur.com/eueEVQa.jpg
Hexまとめるホルダーとか
https://i.imgur.com/vNlhpPe.jpg
DCDCモジュールをマウントするネジ穴付いたホルダーとか、
ケーブル束ねるやつとか、30分〜1時間でプリントできるような小物が多いよ >>377
こんなの。
https://i.imgur.com/D8dmsgS.jpg
U字のパーツにひもを付けて、引いてスイッチをON/OFFします。 赤外線リモコンを読み取るときは、近すぎると駄目なのよね?たぶん >>364
製品名とチップ名。
Arduino UNO と ATmega328P って関係。
Digispark は ATtiny85 に USBコネクタ と
専用の bootloader が乗ってるので、そのまま PC に
ポン付けできるし、UNO とは違った bootloader で
HIDデバイスになれるので、キーボードやマウスが、
数行のプログラムで作れる。 >>365 >>366
コンパクトで良いですね!
リセッターと言うと、こんなのをイメージするのですが、
電源が小さいですね。
https://blog-imgs-75-origin.fc2.com/r/a/d/radiopench/20150419IMG_3615.jpg
少し聞かせて貰いたいのですが、生のチップは何個ぐらい持ってますか?
単純に私も死んだチップが幾つか転がってますけど、リセッターの
制作には至ってないので、1個でも作る人は作るだろうけど。。。
元を取れるとかって意味ではないですが。 UNOとNANOは同じ能力だよー
UNOはデカイ高いのいらない子 >>385
屁理屈垂れるなら200円多く出すメリットを書きなよ ブレッドボード使うと>>382みたいにごちゃごちゃするんだよなUNOって >>388
シールドって言うらしいよ
どこがメリットなのかわからんが
あと「基板」な
>>389
うむ
Nanoなら自分がブレッドボードに載っちゃうからねえ >>385
俺ならその200円で5V1Aの外部電源を買うわ
USB2.0は0.5Aだしな ブレッドボードに載ることにそんな意味あるか?
結局nanoの足の列から他の列にワイヤー繋ぐなら、UNOから直接ワイヤーで繋いだ方がブレッドボード広く使えて良くないか >>397
あのな、>>382の写真に対してレスしてるんだわ
お前みたいに脳内の敵に向かって吠えてるヤツと違ってさ
>>382をNanoに替えてブレッドボードで同じように配線した場合占有面積減るよねって話だ なんか要らん写真を貼ったようで。。。ちなみに私の環境じゃないです。
別に UNO と Nano どうこうって意味じゃなく、リセッターと言う
毎日使うものじゃないものも、きちんと作り込めばコンパクトになるね!
って思っただけ。ちなみに私も UNO は一度も買ったことないです。
あと 12V も紹介された小型のモジュールが手元にないので、
3.3V、5V しか使わない人間からすると、それだけで躊躇する案件なんだわ。
うちの Nano互換。RTCなしで運用。
https://imgur.com/7pDgGmH.jpg >>396
アマゾンで検索したけど、どれか分からんわ>< ホントにどいつもこいつも「それ要る?w」ってモノばっか作っとるなw
ま、手段が目的ってとこか。 >>405
凡人に必要ならものなら製品化されて売ってるだろ?
逆に時計なく生活できるなんて素敵な人生じゃないか?
別に君が凡人だとか言ってる訳じゃない。 くだらん争いはやめろ
くだらん製作物でも過程を楽しむ事はいけないことなのか?
赤青黄色のおもちゃの信号機作る場合、tiny13みたいな安いAVR使うのと555使うのとでどっちが消費電力や製作コスト抑えられる? AVR派 vs ARM派の争いか?
UnoなんてRAMが少なすぎて、好きなこと出来ないからな
俺も初心者はRAM容量なんて気にしないでプログラミングに専念できるnanoの方がいいと思うな あ、BLE使えるNano 33 BLE Senseのことね でも、普通にESP32でもいい気がするけどね
WiFi使えるし安いしArduinoのライブラリも充実してる ESP32を使う場合でも、検証用にAVRのnanoくらいは持ってた方がいいけどね
nano互換機なんて数百円で買えるんだから aliやamazonが嫌ならAitendoでこんなのが750円で買えるよ
http://www.aitendo.com/product/10700 aliで買えばもっと安いけど、届くのが遅くなるし
コロナウイルスの影響でかなりやばいらしい amazonのマケプレでも中華ボードや部品の出品が激減してるね
Pro Micro欲しいのに買えねー >>412
UnoもNanoも328PだからRAMは同じだろ?
それとも初心者はSAMD21使えと? 純正でピンヘッダが付いていないnanoやmicroのような小型Arduinoはないですか?
中華製はだいたいユーザー任意になってるので必要無ければピンヘッダ使わないという選択肢もあるけど純正は問答無用に付いてるんで除去が面倒 純正のNano何なにはピンヘッダ無しも選べるよ
秋月やスイッチサイエンスで扱ってないだけ
自分はESP32DevKitCのピンヘッダ無しが欲しいけどそれは売ってなさそう 純正である必要ってあるの?
チップがATMega328pなら純正とか関係ない気もするけど
何かの講習で使うのかな? >>423
純正じゃない中華ボードならピンヘッダーなしのがあるね
ピン配置は違うけど
ESP32DevKitCも中華だし気にする必要ないかも
この業者は在庫持ってて即日発送だよ
https://www.あま.co.jp/dp/B07RPSC6RR/
PSRAM版が欲しかったから
Amazonで在庫持ってて即日発送のこんなのをポチってしまった
俺が最後の1個を買ったのでもう、在庫はない
この業者からは初めて買うのでまともに動くかどうかドキドキしてる
https://www.あま.co.jp/dp/B07RPTBBXW/ lolin32のliteに似てるね
バッテリーのコネクタがこの向きだと収まりが悪い様に感じる Adafruit Featherの雰囲気パクりかと https://www.あま.co.jp/dp/B07RPTBBXW/
届きました
とりあえず、PSRAMが機能してるか見るためにLoBo MicroPython for ESP32を入れて
gc.mem_free()
やったら4093408と出ました
ヒープサイズが4Mもある
ESP32 DevkitC用に作ってあったArduinoのプログラムを入れてテストもしたけど
正常に動作してるようです aliからなかなか発送が来ないのでみなさんの意見を参考に人感パワーLEDライトを作ってみたのですが
https://i.imgur.com/zkWYUZX.jpg
こういう感じでいけますでしょうか?
スイッチのやつはこれです
https://ja.aliexpress.com/item/32884205332.html >>434
夜間のみというか、人感感知だけで動作してほしくないという感じなのです
人感で感知してほしい かつ (朝は)人感だけで感知してほしくない
みたいな・・わかりにくくてすいません。。
光センサーに手をかざしてものすごく真っ暗のときだけ検知すれば
夜(真っ暗)と朝も手で遮ったときだけ検知してくれるのかな?と思ったのですが・・
なるほど555すっきりしそうで良さそうですね!
10分の間に、人感ONが激しいようなら15分延長とかもやってみたいです
あと市販のUSBライトも人感+タイマーライト化する、みたいなことをやってみたいです!! いまどきArduinoより555の方が面倒だよねw
あとで機能追加したくなった時潰しがきかないしw あらためて考え直したら、自分がやりたかったことは
人感センサーの感度(の判定)を動的にすればいいだけのような気がしました!
最初は、手をものすごく近づけたときにだけ反応する(狭域モード)
一回ONになったら、広域モードにして判定をゆるくする?
10分広域モードに反応なかったら切って→狭域モードにする
みたいな感じです >>434
聴き逃していましたが
>カバーはずしてCDS付けたら夜間のみ動作する
なるほどこれはめちゃくちゃやりたかったスリム化です
ありがとうございます!! >>435
よくわからんが、時間帯によって感度や動作変えたいといことかな
光センサーは明るい暗いしか判別できないよ
「手で遮った」とかいわれると???
Arduinoの内部タイマーは1日2分ずれる事もあるので
時間によって動作変えるならRTC追加したほうがいい >>437
なるほど
感度を動的に変更する方法は無いから
センサー2つ使うと目的に近いことはできるかも
たぶん干渉するのでセンサーへの供給スイッチする必要があるけど
あとHC-SR501のジャンパでトリガモードを変更すれば
動態検出が続く限り出力持続するようになる
検知時間は最大5分なので、
短距離センサー5分→長距離センサー5分とい妥協案も考えられる >最初は、手をものすごく近づけたときにだけ反応する(狭域モード)
>一回ONになったら、広域モードにして判定をゆるくする?
なかなかONにならない、ONになると持続しやすい
遮光フィルタをサーボでとかやると大掛かりになるから
最初だけ赤外線でジャミングすると期待通りの動作になるかもしれない BLE sense は、上級者向けだわ
初心者はこんな高いのは無理><
すぐぶっ壊すから
HiLetgo 3個セット Mini USB Nano V3.0 ATmega328P CH340G 5V 16M マイクロコントローラーボード Arduinoと互換
これにしたわ>< 貧乏だし
UNOはやめるわ >>440
なるほど指向性強いのかもしれませんがアリかもしれません
>>443
赤外線もしらべてみます
>>422
おそらく地上130cmから(センサー位置の)2mくらいの範囲になるかもしれません
>>441
>たぶん干渉するので
ほほう・・そういうことも考えないといけないのですね。。
>トリガモードを変更
なんと、そんな方法があったのですね
ON時は短・長どちらでもよさそうなのでそれもいけそうな気がします
ありがとうございます! XYZプリンティングジャパン ダヴィンチ mini w+
これええのけ? eBayにESP32が500円位で出てる。深�ゥら発送だ >>446
ストロベリーリナックスのダヴィンチのバリエーションが出たのか? ストロベリーリナックスでひさしぶりに注文したら
住所を入力できない池沼は注文を拒否する!そういう奴の割合は3%だっ!
って出てきてびっくり&笑った。現品comを少し思い出す。客商売は病むなあw digisparkの小技
ピンヘッダではなくピンソケットを上向きにつけてやって
2番ピンに INPUT_PULLUP で書いて
12mmのタクトスイッチを P2 と GND に直接挿してやると
ボタン用シールドを作らなくても即ボタン(キー)として使える 知識ゼロの初心者なので叩かれるの覚悟で質問
遡れる限りログ漁ったりググったけど見つけられなかった
arduino互換品がPCで認識されないんだけどどうすればいいんだろう
環境:Win10(bootcamp)
接続機器:macbookpro←タイプC-A変換ケーブル←A-Bケーブル←arduino Leonard互換品
目的:nintendo switchコントローラー化してPCから制御
状況:arduino IDEでシリアルポートがグレーアウトしてる
→arduinoの給電ランプは点灯(CNとRX)
→コンパネで表示されていない、ポートが非表示になっているので確認するとserial CH340が表示されてるがグレーアウト
→コンピュータに接続されていません
やったこと:PC再起動
ケーブル変更
CH340ドライバの再インストール
もしかしたらCH340ドライバは以前間違って買ったnano互換品を接続した時にインストールされただけで関係ないのかもしれない
できるだけ詳しく書いたつもりだけど知識不足でわかりにくかったらごめん
教えて偉い人 それのどこが「即」なんだかw
余計な足カットして裏から取り付けりゃピンソケットすら不要だろ >>452
サンクス
あくまで簡易的って感じね
安定しなさそう >>453
レオナルドはCH340関係ないよ
レオナルド互換品やPro Micro互換品は認識しない事よくあるよ
何故だか分からない
レオナルド互換品やPro Micro互換品は癖がありすぎるから試行錯誤するしかないかもね >>454
ボタンはんだづけしたら他の用途に使えないじゃんか >>454
まあ、digispark使うときってどっちにしろピンヘッダつけるかソケットつけるとしたりするから
ピンソケットを付けたらこんなこともできるってことで
>>455
12mmのタクトスイッチってジョイスティック的な遊びがあるから結構安定して押せるよ >>456
レスありがとう
そうなのか…340関係なくそもそも認識されてないんだな
気になったのはnanoはランプ点滅してたけどlnonardは点滅してないことかな
>>457
ありがとう
試してみたけどインストールの段階でエラー→コンパネ見るとインストール自体は前にできてたから関係ないと判断してたけど間違ってる? >>460
リセットボタン取り付けて、Arduinoで書き込みボタン押してからひと呼吸置いてリセットボタン押したらPCで認識するからArduinoでレオナルドのシリアルポート指定したら書き込めるかも >>461
レスありがとう
arduino本体にリセットスイッチ取り付け→IDEで書き込み→リセットボタン押す だよね?
エラー変わらず
書いてて思ったけどiqos付属の充電ケーブルとかモバイルバッテリーに付属してたやつ使ってみたけどこれデータ通信不可のやつか…? >>458
>>459
そもそもDigisparkにシールドとか、さらに使いまわすとかいう意識が無かった。
余計なこと言った、すまんかった。 >>462
>データ通信不可のやつか…?
おいおい、そっからかいw
そもそもなぜOSX版のIDE使わないのかな? >>462
そう
同じマイコン載ってるPro Microだけど、リセットボタン2回押さないといけないって書き込みも見たことある
結局よく分からないから自分はライター経由でスケッチ書き込んでる
レオナルドでいうと後ろ側に付いてる2x3のピンヘッダにライター繋いで >>464
赤面しながら調べてたけどケーブルはデータ転送可能なやつでしたすまぬ
OS X用のを使わないのは実用時にWin環境でしか動作しないソフトを並行して起動したいから
PC2台あれば別なんだけどね >>465
リセットは押す感覚や回数色々やってみたけど無反応
スケッチの書き込み別ルートからもできるっていうのは目から鱗だ
それ聞いてトラブルシューティングとしてOS Xから書き込みだけやるかと思ったけど、そっちの環境でも認識されてないからこれarduino本体側の問題なのかな… >>466
書き込みはOSXで実行時はBootcampではだめですか
バーチャル環境ともろもろのドライバーの相性ってはまるとはまる >>468
ありがとう
まさにそれ試そうとしてるけど書き込みエラーが出るからファイルの保存先のディレクトリ間違ってるんだろうなってところです
PCの基礎知識も足りてないからwinとmacでの変換が頭の中でうまくいかないけど、ここ来たお陰で前進してる気はする
本当にありがたい >>469
OSXでやる-->Bootcamp原因の切り離し
別のArduinoでOSXでやる-->Arduino基板原因の切り離し
別のケーブルでやる-->ケーブル原因の切り離し
等々
1つずつ切り離して絞り込んでかないと永久に堂々巡りしちゃいますから
あと、エラーでるならエラーメッセージ書いて相談してください スイッチサイエンスのサイトにこう書かれてたよ
Lonardo互換機も持ってるけど、これを意識してドライバをインストールした記憶がないw
Windows
Arduino Leonardoの場合
初めてArduino Leonardoをパソコンに接続する時に、ドライバをインストールする必要があります。
Arduinoフォルダの中の「Drivers」というフォルダを指定して、ドライバをインストールして下さい。
http://trac.switch-science.com/wiki/Arduino >>470
ありがとうございます。
完全にその通り…
エラーメッセージは
「/users/ユーザー名/Arduino/libraries/フォルダ」に、無効なライブラリ「/users/ユーザー名/Arduino/libraries/フォルダにはヘッダファイル(.h)がありません」があります。
が表示されています。
書類フォルダ内にarduinoライブラリが自動作成されたのでそこに解凍したzipフォルダを突っ込んだんですが、何がまちがってるんでしょう… >>471
これならbootcampの方で書き込みできるかもなのか…
ありがとうやってみる >>471
OSXの書き込みで詰まったからこっちを試してみてるけどデバイスマネージャー見るにそもそもPC側でArduino自体が検出されてないみたい
OSXのIDEの方ではポート選択出来たけどBluetoothになってたからArduinoとの有線接続が上手くいってないのかも 連投ごめん
Arduinoのポート認識と書き込みに関しては解決したから報告させてくれ
まず前提として書いとかなきゃいけなかった所なんだけど、今回はArduino Leonard互換品とFT232をブレッドボードとジャンパ線使ってドッキングしてた
給電してなきゃ関係ないだろうと思って除外してたけど一旦FT232との接続切ったらarduinoのLランプが点滅し始めてポート認識とマイコンボードへの書き込みは問題なくできるようになった
次のステップとしてPC-FT232-Arduino-ニンテンドースイッチ接続の順に接続してマイコンで制御する所だけど
・ソフトの書き込みが間違ってるのかスイッチ側がArduinoをコントローラーとして認識しない
・接触不良なのかArduinoのTXランプが点いたり消えたり
っていう問題が出てきてるので試行錯誤続けてるってのが現状
素人が勝手に判断して情報出してない典型的な例だと恥いるばかりだ
ここで聞いたおかげでかなり助かった
本当にありがとう
また詰まりそうなので相談しにくるかも >>475
一歩前進乙です。
ですが、写真さらしてれば4時間前に解決してたかもって案件ですねw
次来るときは、参考サイトへのリンクと
基板やモジュールの接続の様子を写真に撮って用意するのがおすすめです。 シリアルモジュールをつないだままだと、電源ラインに逆流してリセットかからないてのは
経験あるわ 質問失礼します。初心者でまだよく分かっていないんですが、Unoのブートローダーを
無効にしたいのですが、使うソフトがよく分かりません。ネットを見ながら調べている
とUnoのISP端子とUSBシリアルコンバータをつないで、ヒューズビットの設定から無
効にすると書いてありました。
自分でもよく分かっていません。よろしくお願いします。 >>476
写真とかやってることやりたいことちゃんと書くのは必須ですね。
丁寧にありがとう。
早速なんだけど
目的:マイコンを使ったニンテンドースイッチの外部操作
環境:WinX(MacOSX BootCamp)、Arduino ITE
参考サイト: https://qiita.com/chibi314/items/975784f6e951341fc6ce
現状:switchがArduinoをコントローラー認識しない
試したこと:
・ファームウェアの書き換え箇所確認
・switch本体/ドックへの接続
・switch側の設定でのコントローラー有線接続機能ON
使用機材:
・arduino Leonardo互換品
・FT232、ブレッドボード&ジャンパ線
・Nintendo Switch
・Type-C_USB-A変換(PC-Arduino接続用)
・USB-microケーブル(Arduino-PC/switch接続用)
https://i.imgur.com/W7c4wNN.jpg
https://i.imgur.com/eDpVXts.jpg
ていう感じなんだけど誰かわかる人いませんか… >>481
またまたごめん自己解決です。
基板の接続は問題なくてファームウェアの書き込みの問題でした。
連レス多数で申し訳なかった
ROMに戻る 実機がまだ手元にないのでシミュレーションで申し訳ないですが
ざっくりこんな感じをやりたくてがんばってみたのですが
loop(){
ボタン@で短押し → Lチカ開始 or Lチカ停止
}
いろいろ疑問点が出てきました・・
https://i.imgur.com/MelKOA1.mp4
https://i.imgur.com/ZfRFIeO.jpg
(変数TIMENOWは無関係です)
・ボタン@を短く押すときのdelay(500)は必要なのか?
・Lチカの時間的な間隔はきっちりしていなくても、delay(500)の分を無くしたい
・短押しだとLチカ停止できなかったので長押し停止せざるを得なかった・・
→ ボタン@短押しでLチカ開始、ボタン@短押しでLチカ停止のループにしたい
のですが改善点を教えてください。。 >>483
delay使わずに時間計って分岐したほうがよくね?
unsigned long starttimems=millis();
(SWを離すまでループ)
unsigned long uptimems=millis()-starttimems;
(uptimemsが50ms以下ならチャタリングなので無視)
(uptimemsが5000ms以上なら長押しの処理、未満なら短押し処理) >>485
なるほど・・
これなら非同期的な?スイッチ処理ができそうな気がしました
起きたらさっそくやってみようかと思います
ありがとうございました!! >>486
flashでdelayやってるとkeyの反応悪くなるんで、
そこもmillisに書き直すとこんな感じ
#define LED_PIN 11
bool LED_Flg=false;
int LED_DLY=1000;
unsigned long ledtime;
void setup() {
ledtime=millis();
}
void loop() {
if ((millis()-ledtime)>=LED_DLY){
ledtime=millis();
digitalWrite(LED_PIN,LED_Flg=!LED_Flg);
}
} たびたび申し訳ない
>>481です
あれからぶっ続けでやってたけど解決しそうにないから相談させて…
ゲーム機側でArduinoをコントローラーとして認識させた所まではよかったけど、その後VisualStudioで作られたフォームアプリケーションからの入力を受け付けなくて困ってる
PC-FT232-Arduino-NintendoSwitch
と繋いでて、FT232の最初に繋いでた物がランプ光らずダメっぽいので取り替えた
あり得そうなのが
・回路の組み違えやブレボの断線
・ケーブルの故障(FT232のポート認識はPC側でしてるからなさそう)
・exeファイルの動作環境(これが怪しいけど知識がなさすぎてわからん、Flameworksが未サポートとか?)
かなと思ってるけどどうでしょう
もうどうして良いかわからんので助けてくれると嬉しい
https://i.imgur.com/W7c4wNN.jpg >>489
説明足りなすぎてごめん
小さい方はFT232でPCから給電してる
繋ぐとランプ点灯が強すぎて写らないから抜いてるんだ
役割はPCからArduinoへの信号送信…であってるかな、自信ない >>492
ありがとうございます
自分のスケッチが間違えてるのかな >>483
1回押したら点灯、もう1回押したら消灯の繰り返し
int LED_PIN = 13; //出力ピン番号
int SW_PIN = 7; //入力ピン番号
int count = 0; //チャタリング防止
boolean sw_detect = false; //チャタリング検出後スイッチ
int out_mode = 0; //出力信号
boolean flag = false; //出力変化指令
boolean flag_mono = false; //出力変化指令記憶
void setup() {
// put your setup code here, to run once:
Serial.begin(9600); //シリアル通信開始
pinMode(SW_PIN, INPUT_PULLUP); //入力ピン指定
pinMode(LED_PIN, OUTPUT); //出力ピン指定
}
void loop() {
// put your main code here, to run repeatedly:
if (digitalRead(SW_PIN) == false) { //押釦が押された
if (count < 10) { //チャタリング防止
count = count + 1 ;
}
else if (count >= 10) {//押し釦ON検出
sw_detect = 1;
}
}
else { //押釦が押されてない
count = 0;
sw_detect = 0;
}
flag = sw_detect & ~flag_mono ; //出力変化指令
flag_mono = sw_detect ; //出力変化指令記憶
if (flag) {
switch (digitalRead(LED_PIN)) {
case LOW: //出力がOFFのときONにする
digitalWrite(LED_PIN, HIGH);
break;
case HIGH: //出力がONのときOFFにする
digitalWrite(LED_PIN, LOW);
break;
}
}
Serial.print(count);
Serial.print(" ");
Serial.print(sw_detect);
Serial.print(" ");
Serial.print(flag);
Serial.print(" ");
Serial.print(flag_mono);
Serial.print(" ");
Serial.println(digitalRead(LED_PIN));
} >>483
flag = sw_detect & ~flag_mono ; //出力変化指令
flag_mono = sw_detect ; //出力変化指令記憶
ここで押し釦が押された時に1回だけ”flag”がONするようにしてます >>487
>#define LED_PIN 11
こういうリテラル的な記述があったんですね
あと型付け?みたいな書き方にも慣れてないので勉強
(マジックナンバーをconst intと#define で表現する違いがよくわかりませんが可読性でしょうか)
タイマーがあると一気にアニメーションの処理みたいになってわかりやすいですね!
若干もたつき部分がありますがなんとか形にはなりました
https://i.imgur.com/0vTfu33.jpg
https://i.imgur.com/RlphUee.jpg
https://i.imgur.com/3uxuEv3.mp4
ありがとうございました
>>494,495
今からやってみます!
>>496
共有のやり方がわからないので調べてみます! メモリーの無駄だから実行中に使用ピンが変化しないならdefineするクセをつけようぜ
int LED_PIN = 13; //出力ピン番号
int SW_PIN = 7; //入力ピン番号
↓
#define LED_PIN 13 //出力ピン番号
#define SW_PIN 7 //入力ピン番号 >>495
やってみました PIN11の書き換えだけでばっちり動きました!!
これみて気づきましたが自分のやつだとチャタリングレベルのボタン連打もカウントされてしまっていました
ありがとうございます
共有はなんかメール招待みたいなのがでてきて面倒?っぽいですね
他にシミュレータがあればいいのですが。。
>使用ピンが変化しないならdefine
横ですが、なるほどそういうあれがあったのですね >>498
const intはflashメモリーなどのROMに定数置いてRAMを節約する場合に使うよ >>501
なるほd・・つまりそういう使い方しない数値は基本#defineでいい、みたいな 自レスですがおかしな部分を発見しました >>498
LEDTIMEがLED_DLYのとことシェアしてるのでLチカのときにLEDTIMEがリセットされてました
まったく別の変数を使った方がいいですね なるほど
> while (!digitalRead(SW_PIN)) {}
この行でスイッチ離す(1)まで無限ループして動的delayみたいなことをしているのですね
>>508
tinkercadというサイトで登録してホーム画面に
3Dデザイン、Circuits、コードブロック、レッスンという中のCircuitsってやつです!
たまにサイトが重いときがあります(あと共有の仕方が未だにわからない) >>498
結果的に >>499 が言うメモリの問題になるのですが、中身はプリプロセッサが処理するか、
コンパイラが処理するか?の違いがある。
実際はプログラムで事前定義するものなのか、メモリを確保して処理する
必要があるものかで判別するので答えは一つになる。逆はプログラムとして
動いていたとしても作法としては間違い。 もっと砕いた表現じゃないと理解できないんじゃないの >>513
多分なんだけど、入門書の1冊すら読んでないと思われ。。。
プリプロセッサを検索して詳細を理解して貰うのが目的で、
あえて検索単語を並べてみた。
今は理解できなく、必要も無いかもしれないけど。
ここで #define と const int の上っ面だけ説明しても、
動くプログラムが書けても、それ以上に繋がらない。
今からプログラムを始めることを応援するし、いずれその人の
書いたコードがライブラリとして残り、色々な改変が入り、
多くの人の利益になることを願ってる。
そう RMS に昔、教えられた覚えがある。 今、Arduinoを含む組み込みの人のためのC/C++入門書って何になるんだろう。
本屋さんに行っても、とっつきやすそうなプログラミングの入門書ってPythonが
目立って、C/C++のはちょっと硬くて怖い印象を与えそう。(昔のK&Rよりは
ずっととっつきやすそうではあるけど) 「マイコンボードに書き込む」と「書き込み装置を使って書き込む」
の違いが分かりません。
Pro MicroをArduino as ISPとしてMCUdude/MicroCoreのボード定義でATtiny85を使っています
Pro MicroのISP経由で書き込むからずっと「書き込み装置を使って書き込む」を選んで書き込んでいたんですが、「マイコンボードに書き込む」でも書き込めることに気が付きました。
「マイコンボードに書き込む」は開発ボードやFT232みたいなシリアルアダプタ経由で書き込むための選択肢だと思っていました
この二つって何が違うんですか? >>514
>>515
入門書は何を選んだらいいのか全くわからないです
「オライリーのArduinoを始めよう」は買いました。
リファレンスにはconstの項目は載っているけどdefineは一切載ってなかったです
constの説明の中ではdefineよりもconstの方がいいと書かれてあって、本のサンプルはすべてconst int LED = 13;で統一されてました 俺も古いから#defineの方がなじみがある。注意深く記述すれば問題はない。
ただ、初心者や、誰が使うかわからない公開ライブラリの製作者はconstの方が
わけがわからなバグを埋め込む可能性はより低いのかも。
constは構文チェックが#defineより厳しいし、スコープも狭くできる。
でもピン番号の定数を定義する場合は#defineの害はないと思う… Cの入門なんて基本的な条件分岐とかの文法とポインタの概念だけで、あと分からない関数は索引引いてねで
良いんじゃないのか >>512
なるほど・・
#defined n 123 → ソースコードのnの部分が123に置換され→コンパイルされる
みたいな感じでしょうかわかりません
int nとかだとnのままコンパイルされるので関数とかforで再帰したとき
nと数値123を格納したメモリに頻繁にアクセスするのかどうなのかと思い
調べてみるとポインタとか出てきて難しそうな気がしましたが入門とかArduinoリファレンス読んで勉強しようと思います! >>520
勉強してからコード書けという人もいるだろうけど、まず書いて、動かしながら必要な勉強するも有りだと思うよ。ポインタやクラスについては上手な説明というか、わかりやすいサンプルに出会えるといいね。 #definedの問題点は、意図しない置換が行われる事だから
ArduinoIDEで小規模なコード書く上では何の問題も無いと思うけどな
作法に従って記述するとコンパイラがエラーを指摘しやすくなるのでミスが減るってだけ
それより異世界ラノベタイトルみたいな長くて内容のわかる変数名使うほうがミスは減ると思う >>521
とりあえず実機届くまではシミュのスタータとかプロジェクト一覧があるみたいなので
センサーの使い方と回路の具体例とプログラムのソースコードを読みつつ、
https://i.imgur.com/3vQzywJ.jpg
https://www.tinkercad.com/things?type=circuits&view_mode=default
C言語も見ようかなとおもいます!
ポインタやらメモリ確保云々のとこがいまいち掴みきれないので。 サンプルとしては、ライブラリの中身見るのが良いと思うよ
こんな記述方法があったのかと勉強になる事も多いし
ギリギリ動いてるのやバグ発見したりすることもあるけど なるほどarduino ライブラリでぐぐったら公式サイトに回路と共にサンプルいっぱい出てきました
https://www.arduino.cc/en/Reference/Libraries
こっち方が近道っぽいので簡単なのから模写してみようかとおもいますありがとうございました 公式でざっとみてみましたがなかなか練習できるのがなかったので >>525
githubで公開されてる有名どころのコード参考にしてみます CPPは、以下の説明が分かりやすいかな?
https://www.atmarkit.co.jp/ait/articles/1309/17/news007.html
ポインタやメモリ確保は、他の方が言うように良いライブラリのコードが、
見つかれば良いのですが。。。
ただ Arduino IDE では、デバッグがやり難いので、メモリを直接扱うコードは、
書きにくいと思います。
Arduino IDE 意外に手を出した頃に、がでべが使える環境で勉強した方が良いと思われます。 web系のスクリプト言語は触ったことがあるのですがC言語は初めてで
大部分で文法かぶってるところがあるとは言え、覚えることは数倍あるなという印象でびびりましたが
わかりやすいですね ありがとうございます >>527
とりあえずソースコードをざっくり読めてライブラリに依存して何か作れるレベルと
ちょっとしたライブラリ自作できるレベル目指してがんばってみます IDE 1.8.12 が出てるね 11 に不具合あったのかな? SpenceKonde/megaTinyCoreでATtiny1シリーズを試してます
megaTinyCoreだとUPDIピンを使う場合はリセットピン使えません。
特定のボタンを押したらリセットしたいんですけど、
どうやるんでしょうか? 物理ボタンなら直接VCCを外してしまったらどうだろう 東芝のシーリングライトの赤外線リモコンのコードを読み取ったら、UNKNOWNになる。NEC だと思うんだが >>532
うちのNECのライトもON時間が長めに読みとられてUnknownになる。オシロ持ってないから波形が鈍ってるのか信号自体がそうなってるのかわからんが。 UNO R3のヒューズビットの設定でブートローダーを無効化出来るはずなんですが、具体的なやり方が分かりません。
どなたか分かる方がいらっしゃったら、教えて頂けませんか? リモコンの信号位ならオシロなくてもPCのマイク入力でOK
リモコンセンサーと3〜5Vくらいの電源をマイク入力につないでフリーのWaveSpectraっていうソフトで波形が見られる
https://i.imgur.com/BMNKMS9.png DUEなんだけど使うデジタルpinでpwm出力に制限かかったりすることはあるだろうか?
いくつかのpinでanalogWrite関数の255設定にするとエラーを吐くんだけど
半分の120以下の値だと正常に機能したんだよね
それから色々なpinで試したけど255でokなpinと駄目なpinが混在してた
原因がわからなくてもやもやしてる >>534
UNO(ATMEGA328P)の標準フューズ設定はL:0xff H:0xde E:0xfd
http://www.engbedded.com/fusecalc/
ここに行ってヒューズ値を入れて[Apply values]して内容を展開する。
さてBOOTRSTビットにチェックが入っているのが解る。
これがリセットでブートローダーを実行するという設定だ。
チェックを外してあるとリセットで0番地から実行するという設定となる。
外すとフューズ値はL:0xff H:0xdf E:0xfdとなる。
この値をUNOのISP端子から書き込み器でCPUに書き込めばブートローダーは無効となる。 >>534
boards.txtを書き換えてブートローダを書き込むだけ
もう一台Arduino持ってれば出来るよ
あとは検索かけて不明ならまた聞いて >>537
>>537
ありがとう!やってみます。 秋月のPIRセンサーは動作電流3mAで動くみたいですけど
みなさんのはどれくらいで動きますか
ぼくは15mA強ないと感知してくれません >>ぼくは15mA強ないと感知してくれません
赤外線感知できるなんて えらく高感度 PIRセンサーて人感モジュールとはまた別?
HC-SR501は何処も仕様では待機時65μA未満と書かれてるけど >>543
それ3端子あるうちの信号pinじゃなくて? arduinoでtoneを使ってスピーカーを鳴らしてみました、もう少し音量が欲しいのでアンプNJM386BDを接続して鳴らしたのですが、変化がありません
toneだから限界があるのでしょうか? >>547
回路図が無いと正確なレスは難しい
ところで電源電圧は何ボルト?
低いと出力電圧振幅も小さくしか出せないよ
もし12とか15ボルト電源でも音が小さいのなら製作ミスかな? >>548
電源は5vのUSB電源で、スピーカーは8w8Ωのものです
電流不足なんでしょうか… >>549
8Ωで5Vだと625mA流れる計算だから、Arduino直だと駆動できずに音が小さい、ような気がするが案外鳴るものだ。
で、LM386の電源を5Vにしてないか?
toneは矩形波だからね、0V〜電源電圧(5V)までフルに振れる信号なわけよ。
元々電源電圧フルに振れてる信号を、同じ電源電圧のアンプに通しても電圧は大きくできない。当たり前。
音量をでかくするならアンプの電源電圧を上げるんだ。 追伸:5V以外はびた一文用意出来ない!という場合は
BTL出力のアンプを使えば電源電圧そのままでも出力4倍になる。
http://akizukidenshi.com/catalog/g/gI-03595/
NJM2073とか(データーシートの図1の回路)。USBの電流制限に注意。 >>546
人感ライトの製品が単4電池で半年以上余裕とかだから、センサー周りの消費電力が
そんなもんじゃ無いんかね >>549
アンプも5ボルトだとP-Pで3.5〜3.6ボルトと出力振幅も小さいよ
アンプの電圧をもっと上げないとね
https://i.imgur.com/qyZMRaE.jpg なるほど、電圧差が必要なんですね!ありがとうございます
手元には9v電池くらいしかありませんが別途供給して試してみます。 HIGH LOW の型は何でしょう?
関数に引き数として渡したいんですが、関数の宣言時に型がわかりません。 すみません解決しました。
wiring_digital.c を見たら、void digitalWrite(uint8_t pin, uint8_t val) でした。 >>547です、NJM386を回路図通りにつないで電源を供給したんです
プログラムをnoToneにした状態で1番から出ている電解コンデンサに自分の指を繋ぐとなぜかどこかのラジオが流れるんですが、どういう仕組みでしょうか?
なぜか指でないと音が消えるので、自分がアンテナになったようで怖すぎるのですが… arduino関係なさそうでした、アンプのせいか…スレ汚し失礼しました それは昔から電電ホラー話しの常に上位に来るネタだぞw
アンプは半導体で出来てるからたまたまどこかの経路にPN接合があれば(というか有る)
検波されてAM信号が音声信号になるし、それがノイズのように小さいレベルでも
アンプには大きな増幅率があるからラジオとして聞こえて来る事はままある。 あ、思い出した。被AM信号が非線形素子を通過すると、小信号(小振幅)の場合、
直線検波ほどではないが、二乗検波される。この場合は出力は2次近似成分だから
2次歪も伴うので歪を伴うものではあるが、AMラジオ放送と識別はできてしまう。
これを防止するには、回路をすべて線形にすればいいのだが、無理なので、
入力にAM放送帯のフィルタをつける方法がある。 昔、番組名は忘れたが「ガードレールからラジオ放送が聞こえる」をテレビで放送した。
AMの検波は何がやっていたんだろ? 赤サビか? イタズラで、トランにラジオを仕込んでるんだろ
たぶんトランジスタラジオだろう レコードプレーヤーからエレベーターの動作音や蛍光灯のノイズが聞こえるんだが、対策方法ある?
蛍光灯を消したらその分のノイズはとりあえず消える
エレベーターの動作音とラジオか無線のは消しかた分からない ESP32をArduino IDE環境でmillesを使ってるんですが、ある程度行くと数字が頭打ちになるからか動作止まってしまいます
millesの上限はいくつか分からないけど、その手前まで行くと自動でリセットさせて最初からカウントさせる方法教えてほしいです >>569
4294967296とかじゃなかった?
普通は0に戻ると思うけどねえ。
50日くらいかかる計算だけど何にお使い? >>570
>>571
50日ですか
milesを使って前回から5秒おきにセンサーのデータを取得してしてたから5分おきにサーバーにアップロードって用途に使ってます
時々気が付いたらデータが取れてなくてESP32に取り付けてある液晶やLEDを見たらある時点でのデータで止まったままになってます
厳密には分からないけど2週間くらいで止まるような気がしてます
もし0に戻るとしたら本来ならスケッチはそのままで普通に動くんでしょうか? 前回の時間との比較とかで使ってて、リセットされて前回>今回になる事を考慮されてない様な
作りだと無限ループになったりする事はあるね >>573
たしかに前回より今回の数値が小さい場合について考慮してなかったです。
前回より今回の数値が小さい場合の処理はどう書いたらいいんでしょうか?
現状は、
ループの最初でkonkai変数に今の数値を入れてセンシング、
ループの最後でdelay(5000 - (miles() - konkai));と
zenkai = miles();
zenkaiが5分前だったらデータ送信
ループの先頭に戻る
って感じです。
ベッドの中なので書き方間違えてたらすみません。 >>574
konkaiがunsigned longでmillisと型が揃ってて変にキャストされなければオーバーフローして勝手に合うんじゃないかな
オーバーフローしない様にするとしたら無理矢理過ぎて絶対に間違いだと思うけど
now=millis();
delay(5000 - ( (now>konkai)?(now-konkai):((0xffffffff^konkai)+now+1)) );
とか? そのまま置き換えたけど、オーバーフローの前に何らかの原因でmillis() - konkaiが
5000msを超えた時の考慮もしてないね esp32は止まる。
なぜかは知らんが止まる。
ウォッチドックもうまく動かん。
仕方ないのでPIC繋げて外部ウォッチドッグをつくった。 うちだと定期的ではなくランダムっぽいような、たしかに2週間くらいなような感じ。
別のタイミングで電源入れた二台が似たようなタイミングで止まるのをみたので、通信時のもんだいかもしれぬ。
リクエスト先のAWSのclowd frontがエラーでクソでかデータを返すとか。 VSCodeのArduino拡張なんだけど、Select programmerの選択肢がArduino IDEよりも少なくてOnboard Atmel mEDBGなどが選べない
どうやったら増やせますか?
Arduino IDEだと選べる >>547
裸のスピーカだと音小さいよ。スピーカを箱に入れてみると大きく聞こえるかも。 >>568
プレイヤーの電源コードにぱっちんフイルタ入れてみたらどう? Arduinoとは関係ないかもだけど
チップコンデンサ MLCC の規格を調べる方法ってありますか?
秋月で全種購入して試そうかとも思ったんですけど
プリント基板なので剥がれちゃったらもう自分の手ではどうする事も出来なくなってしまうので 一度混ぜたらもう解らんよ。
はっきりしたリファレンスがあれば色つやとかよく比較すれば分かる可能性はあるかもしらんが。
それともC0GなのかX7RなのかX5Rなのか調べる方法の事か? ライブラリを#includeする時<>で括ってるのと""で括ってるのには何が違うんでしょうか?
Adafruitのサンプル見てたらひとつのスケッチの中で<>も""も両方使われていました Pro miniでスリープモードを試してます
setup関数内でオンボードLEDをHIGHにして点灯させています
スリープさせるとLEDは消えるものだと思っていたんですが点灯したままです
消灯させたければ自分でLOWにしなきゃいけないんですか?
それともスケッチが間違えててスリープ出来てないとか?
https://pastebin.com/ygpug8ia >>587
LEDを消したかったらスリープさせる手前でLOWにさせなきゃいけないってことでしょうか?
他にI2Cでセンサーや液晶画面繋いでる場合どうやったらI2Cをオフに出来ますか? >>588
回路にもよるがそもそもI2Cの電源ってarduinoのIOと独立してるのでは。arduino側で制御したいの? >>589
スリープ中はセンサーと液晶をオフにしたいなと
電源はArduinoから取ってます >>588
電源を別にして駆動回路をつけてそれごとArduinoでON/OFFする
あるいはI2C機器ごとにEnabled端子とかあるものもあるかもしれないが
それはあなたが何をないでるかわからないから何も言えない 例えば気圧センサーのBME(P)なんかはスリープ機能がある(0.1 μA)
センサー・モジュールにスリープ機能があるものは使えばいいし、
591の言う通り、差し障りがなければ電源ごとバッサリ >>591
>>592
スリープ機能調べてみます
ありがとうございます
ソフトウェアリセットを試しています
39行目以降、5分経ったらリセットをかけたいんですが、5分過ぎてもリセットされず43行目のスリープが動くんですがifの使い方が間違えているんでしょうか?
43〜46をコメントアウトすればリセットかかってくれました
あと、>>586を参考に80行目に30000ミリ秒のdelayを入れました
delayを入れなかったらスリープから起きた時にシリアルモニタに大量の文字が出てしまったけどdelayを入れると治りました。しかし、30秒のdelayのはずなのにすぐ次の動作に移るのはどうしてですか?
https://pastebin.com/Bb2zz6j4 >>593
sleep復帰時にboottime書き換えたらsleepにしか入らんのでは。 >>585
ソース形式でライブラリを#includeする場合はあるのかも知れないが
include用ファイルが「カレント」にあるか「パス」にあるかの違いでないのか。
因みに「C言語」は30年前に覚えたけど「Arduino」は初心者だから
君も自身での確認を怠るなかれ、と。 どうもありがとうございます
>>594
if (bootTime > 300000) { // 5分経ったらリセット
こうする事でリセットがかかりましたが、5分経っても次のスリープが動いてしまってそれを解除したらリセットがかかりました
なぜでしょうか?
>>595
カレントパスに無いライブラリで両方ためしてみましたがどちらも使えるようでした >>585
昭和の頃のC言語としては作法があった気がする。もう忘れたしその知識が役立つとも思えない。 #include<>は標準インクルードで""は自分で作ったか、追加したライブラリのインクルードと書き分けてた。
俺も書き方の作法だけと思ってだが探す順番が違うみたいね。
インクルードのある場所は以下で
1.標準のインクルードファイルの場所
2.コンパイルオプションで指定したインクルードパス
3.カレントディレクトリ
#include<> → 1. 2. の順に探す。3.は探さない
#include"" → 3. 2. 1.の順に探す。
結果的にカレントにあるインクルード以外は、どちらでもエラーにはならない。 >>598
なるほど!
じゃぁライブラリによっては標準のライブラリ、ボードのライブラリ、自分でダウンロードしたライブラリの中の依存ライブラリなどで重複してたりするから""を使うのが確実なのかもしれないですね
これはArduinoのルール?それともCのルールですか? >>596
一般的なC言語の仕様では、コンパイラのプリプロセッサに指定されたインクルードファイルの
保存されたフォルダ(Linuxなんかだと/usr/includeと-Iオプションで指定されたフォルダ)から
読み込む場合にはカレット(<>)を使用し、「include」を使用したソースファイルの存在する
フォルダからの相対パスでファイルを指定する場合にはダブルクォート(")を使用するかな
実際には使用しているCコンパイラのプリプロセッサのソース見ないとわからないけど 入門書でも両方載ってたけど違いについては何も書かれてなかったです
https://i.imgur.com/JbTPIfy.jpg ””は近場、<>は遠いとこ、みたいな概念で捉えてたw >>600
なるほど
<>は標準のライブラリ、""は追加したライブラリって感じですかね
>>601
この写真でも1行目は標準のライブラリ、2と3は追加したライブラリっぽい感じがします もう答えが出ているようですが、C言語では >>600 の通り、
プリプロセッサが認識する場所が、<>。ソースと同じ場所(カレントフォルダ)
だと "" で括らないと、正常にコンパイルできない。
ArduinoIDE だと、どちらでもコンパイルが通るので、
>>601 のような違いを付けている書籍もあるのかもしれない。
ただ今後のバージョンアップで厳密になるかもしれないし、
PlatformIO など他の環境では厳密かもしれない。
スケッチと同じ場所意外は、<> で括るのが安心かも?
ちなみにファイル名だけでなく、フォルダ名も記述できるので、
#include <foo/test.h>
#include <bar/test.h>
のような同じファイル名でも違いを付けることが出来る。 俺の環境だとPlatformIOだとローカルにあるヘッダーファイルは
<>でも""でもコンパイル通るけど
Arduino IDEだとローカルのヘッダーファイルは""じゃないとコンパイル通らないよ 32bit、64bitのARM版のArduinoIDEがあって
Raspberry PiでもAVRのArduinoなら開発できるんだね
ARMマイコンでもSAMD21G18Aを使った
Arduino ZeroとかArduino Nano 33 IoTにも対応してるようですね
Ubuntuに入れると文字化けするのでフォントを変更する必要はあるようです
fonts-takaoを入れて
~/.arduino15/preferences.txtのeditor.font=のところを
editor.font=Takao,plain,12にすると文字化けが直ります https://github.com/SpenceKonde/megaTinyCore/blob/master/megaavr/extras/DirectPortManipulation.md
ここ見てます。
PORTA.DIR = PIN3_bm; // set PA3 as an output
PORTA.DIRSET = PIN3_bm; // use PA3 as an output
このふたつの違いってなんですか?
PORTAのPIN3はD4です。
pinMode(4, OUTPUT);に相当するのはどちらですか? 上はPA3だけ出力にする(ほかのportはinputになる)
下はほかのPORTのinput/output設定を変えずにPA3を出力にする
下のをDIRSETを使わないでやろうとすると、
PORTA.DIR = PORTA.DIR | PIN3_bm;
かな >>610
どうもありがとうございます
という事はpinMode(4, OUTPUT);に近いのは
PORTA.DIRSET = PIN3_bm; なのかな?って思いましたが、あげていただいた
PORTA.DIR = PORTA.DIR | PIN3_bm;
の書き方の意味とどういう働きをするのか分からないです
|で区切ってPIN3_bmとやればA3だけの設定を変えられるって事ですか? |はbit演算子のORだね
読み出した値とor取ってやれば1になってるビットだけ1にできる PIN3_bmはツールチェインのavr/include/avr/iox*.hにこんな感じで定義されてるね
(*は任意の文字)
#define PIN3_bm 0x08
0x08は2進数で0b00001000
丁度、最下位ビットから4番目(3は0から数えると4番目)のビット 逆に0にクリアしたければ
PORTA.DIR = PORTA.DIR & ~PIN3_bm;
ビットマスクを反転させると1のビットが0になる
読み出した値とANDを取ると0のビットが0になる どうもありがとうございます
なんだかとても難しい感じです
PORTA.DIR = PIN3_bm
PORTA.DIR = 0x08
PORTA.DIR = 0b00001000
この3つは同じ意味という事は、3番目にするともっとメモリーの節約が出来るのかと思ったけど3つとも結果は同じサイズになりました
ただ、このようにpinModeやdigitalWriteを使わないと大分節約出来ますね
delayの場合も_delay_msに置き換えればこれもかなり節約出来ました ビットについて勉強したいんですが、参考になる初心者向けのサイトってありますか? >>2
ユーザー数が多い「ubuntu」か「fedara」にすると無難。
普通にネット、メール、表計算ができる。
>>6
linux にもアンチウィルスアプリがあるので偶にはチェックした方が良いかと。
トリは「fedara」だけど 最近はArduino 用ソフトのコーディングもしてる。 fedara
fedira
fedura
federa
fedora アナログpinをdigitalReadしたら0、1してくれたのですがこれは正しい使い方ですか? はい。 アナログpinはDigitalもできる賢い子です。
A0はD14として使えます。 小学生の頃ビット演算て物の存在を知らなく、BASICで IF A>128 THEN A7=1 A-=128的な
条件分岐の塊でやってた思い出 >>626
いるようだけど、それより最近は電子回路を作るハードルが下がったせいか
基板製作する人口が多くなった。また問題はArduinoの出力する信号が微妙だとも気付いた。
どのように微妙なのかは使って習得して欲しいしけど安全性に係る用途では生で使って欲しくない。 >>626
80年代辺りは電源入れたら勝手に起動するBASICに雑紙に掲載されてる一画面プログラムの入力から始まった物だと思うけど、Winになって最初のハードルがめちゃ高くなったね >また問題はArduinoの出力する信号が微妙だとも気付いた。
>生で使って欲しくない。
助詞の使い方も変だしな、この人 Arduino nano everyだけど、お尻の部分、
下の写真でいうと右上の部分に空いてるパッドがあります。
回路図見てみたらダイオードが付いてるはずなんだけど、手持ちのArduino nano everyもネット上の写真でも部品が付いてないです。
どういうことか分かりますか?
https://media.rs-online.com/t_large/Y1927586-01.jpg >>633
https://content.arduino.cc/assets/NANOEveryV3.0_sch.pdf
この回路図のどのダイオードなんだろう。
6ピンデバイスのすぐ近くだし、FETの近くのD3だろか。
もし、このD3なら…
回路図ではDNP(実装しない)となってる。
このFETは3.3V系と5V系の双方向コンバータ。
FETを使わずに双方向コンバータを構成するときに、D3とR20を実装するつもり
だったのかも。
その場合、5V系デバイスが出した5Vを、R20とD3で電圧を落として、3.3V系
デバイスの入力に過大な電圧がかからないようにする意図なのだと思う。 赤外線リモコンのコードの読み取り、
これを使うと100%正確に読めることがわかった。
SPS-444-1 SPS-444-1ってRCフィルターが内蔵されてるんだね
シャープのは自分でつけなきゃいけない。これ付けたら結構感度が良くなったよ
https://i.imgur.com/GCSJnQp.jpg Please attach the RC filter (R=100?, C=22μF) for the power supply lines.
あ、ついてないわw >>634
そうですD3です
卍の片方だけみたいなのは実測しない事を表しているんですね >>640
>卍の片方だけみたいなのは実測しない事を表しているんですね
実測? 実装しない事?
ダイオードのカソード棒線が特殊っぽいからといって、それが実装しないことを意味するわけではありません。
ダイオードの記号の棒線は特殊なダイオードの種類を表すのに使われてます。
絵の左からショットキーバリアダイオード、ツェナーダイオード、バリキャップダイオードです。
それがSやZに見えるのは俺の個人的感想かもしれません。Zはたぶん合ってると思う。
回路図のD3とその右斜めしたのR20は、部品の名前や値が書かれるべきところにDNPって書かれてますよね。
それが、Do not populate で「実装しない」の意味です。
絵もみてね。
Arduinoの逆コンパイル又はコピーは可能?
スケッチが書き込まれているArduinoを複製したい
全く同じ動作をするが二つで一対になっている玩具
片側が壊れてしまった為もう片側からコピーできれば蘇らすことが出来る >>642
結論から先に言えば不可能っぽい
調べる時間がもったいないと思う マイコンのヒューズに施錠ビットがある
そこで書き込み禁止や読み出し禁止が設定できる
読み出し許可されてれば複製とコンパイル後の機械語のプログラム確認は出来る
アセンブラの知識があればよし
そもそも読み出しすら禁止されてる場合は
このヒューズビットはチップクリアでしか解除できないので複製もNG >>643
普通にできるんだと思ってた
不可能なんだね
ちょっとびっくり >>644
禁止されてるかどうか
見分け方ってある? 樹脂をはがして施錠ビットに電子ビームを浴びせるとかには対策されてるんだろうか。 Arduinoじゃないけど、秋月にある328P使った音声合成ICの様な物もやっぱりごにょごにょは出来ないんかね >>652
売りものなら普通はプロテクトかけるでしょ?
あなたがそういう立場なら掛けないで売るとおもう? PCで使ってたコードをArduinoに移してLGT8F328Pで実行したら何か挙動が変で
型の問題かとchar/shotで指定しても変で、試しにcodepadで実行してみたら
想定通りの値が返ってくる
計算過程全部出力してみたら変になる箇所は分かったけど原因がさっぱり分かりません
Serial.print(16 * (255 - 255 * 138 / 360) / 255);
変数の型関係無く、定数で定義してもこれが21になるんですが、どう言う事ですかね >>655
int型が16bitだとすると255*138が35190で
int型の-32768から32767の範囲を越えてしまうからじゃね? Serial.print(16L * (255L - 255L * 138L / 360L) / 255L);
これで試してみるといいかも >>656
そうか、符号か! とりあえず定数を138Lにしてみた所9になりました
有り難う御座いました …360度系から256度系の変換で、138Lは360まであるから、符号じゃどうにもならなかった!
全部longで計算するしか無いのか 自作赤外線リモコンは作動したが、それを使うと、何故か正式のリモコンが機能しなくなる。電源入れ直すとまたはんのうするんだけど、 コマンド長が足りなくて受信中で止まってるんじゃないの 自作リモコンが作動後も赤外線止めてないとか
ごめん詳しくないが適当に書いた
試した状況を細かく書くと詳しい人がわかりそう >>663
gccのインラインアセンブラ使うしかないんじゃないのか? >>663
昔はZ80のアセンブラコードを書いてニーモニック表を見ながらハンドアセンブルしてたな。。
でAVRだとオープンなアセンブラがあるみたい
https://ja.osdn.net/projects/sfnet_avra/
また、↓このスレだともっと有用なレス貰えるかも?
AVRマイコン総合スレ Part42
https://rio2016.5ch.net/test/read.cgi/denki/1559713314/ ArduinoIDEでアセンブラなら関数化して*.Sの別ファイルに分ければ
インラインとかめんどくさい事にならないよ
ライブラリのソースコードみればそういうのもあるから参考にすればいい >>667
普通にArduinoIDEのavrのツールチェインにavr-asが入ってるんだが >>661
それがよ、自作リモコンどだと反応するんだよ LEDの光らせ方をタクトボタンを押して切り替えるスケッチ書いています
起動後何も押さなければblinkModeBが動くはずなんですけど、実際にはblinkModeCが動いてしまい、ボタンを押してもモードが切り替わらないです
どこが間違えていますか?
https://pastebin.com/mv2QMDuC >>672
serialで変数みた方が良いと思う。 ifで=はおかしいだろ
=は代入であって等しいの意味ではない
等しいは== × 38. if (count = 0) {
○ 38. if (count == 0) {
こうですね。ありがとうございました! >>673
>>674
どうもありがとうございます
なぜかシリアルの受信も出来ないです
とりあえず、38、40、42行目を==に変えてみたけどやっぱりblinkModeCが動いてしまいました
https://pastebin.com/eZaLe1b8
>>675
なりすまし シリアル使うなら0と1を使うなよ
機能被ってんだろうが 34行目もおかしい
インクリメントの書き方が違う
もっと初歩の初歩の参考書を読め × 34. count = +1;
○ 34. count += 1;
こうですね。ありがとうございました! >>677
すみません、ピンが被ってました
>>678
>>679
こうする事でblinkModeBが動きましたが、ボタンが反応しないです
タクトボタンは0ピンとVCCに繋いでいます >>680
いえ、自分が初歩過ぎるのがいけないんだと思います >>681
自己解決しました
ボタンはVCCではなくGNDに繋げば動きました
けど、インプットなのにどうしてGNDに繋ぐんでしょうか? >>683
自分で内部プルアップに設定してるのにそれを言うのか。 >>683
電気を水のようにイメージすると理解しやすい
プルアップというのは細いパイプでちょろちょろとVccから水が流れ込んでるようなもの
GNDに接続すると底が抜けて水は溜まらない なるほど、GNDにつなぐことはお風呂の栓を抜くようなものですね!
ありがとうございました! >>683
インプットだから、必ずVCCかGNDどっちかに繋がないといけないぞ。
ボタンを押した時にGNDだったら、押してない時はVCCに繋がないといけない。
今回、君の使った入力はたまたま周辺の状況や回路の微妙なリークによってややVCC優勢だったのだろう。
大抵は何も繋がない時は、どっちつかずで0/1がランダム(めちゃくちゃ)に読み取られるのが普通だ。
解決法はボタンをGNDに繋いだら、押して居ない時はVCCに繋がるように10kΩくらいの抵抗でVCCに繋いでおく。
逆の論理で読み込みたいならGNDとVCCを逆にする。これをプルアップ(プルダウン)抵抗と言う。 >>684
>>685
すみませんありがとうございます
ボタンを1回押しても反応しなくて何度か押したら
blinkModeBかblinkModeDが動きます
何度押してもblinkModeCが動かないです
何が原因でしょうか? なるほど、チャタリングのせいですね!
ありがとうございました! >>687
ありがとうございます!
10K抵抗つけてみました
やっぱりblinkModeCだけ切り替わらないです CHANGEの意味調べろ
というか自分で書いた命令1つ1つ全部ヘルプ読んでこい なんだろう
CとかArduino言語は知らないけど
他言語は知っててやっつけで作った? ならもっと調べると思うけど
コードのわりに、質問内容がなぁ LEDつけるときだけに押すようなスイッチは、
プルダウンとプルアップどっちが消費電力が多いですか? それと、どっちも10Kオームの抵抗でええですかね? >>671
> >>670
> 2パケ、3パケ送信してるからだろ
凄い、その通りなんだよね!
なんでいけないの? >>697
パケット間の時間守ってるかとか。終了コード(tailer)送ってないとか。 消費電力が少ないのはプルアップとプルダウンどっち?? マイコンの未使用ピンの処理なら誤差レベルだがプルアップのが少ない ねぇダイオードってあるじゃん?
あれってLEDダイオードと同じ役割なの?
たしかに向き間違えるとつかないけど普通のダイオードをぜんぶLEDに置き換えたらなにか不都合生じたりするん? 少し調べるとわかる
ledは整流用ダイオードとしての性能が低いから適さない。
逆にそれをあえて使うライフハック的回路もある >>704
今のLEDは発光効率がいいから、結構な感度の光センサーとしても使えるのは便利 えなんそれどうやって組むの
整流子としての機能が弱いのは残念だけど逆手に扱うのカッコいい >>702
ありがと
もしかして使わないピンはプルアップ(またわプルダウン)しとかないと電気もったいないって事?? >>707
電気もったいないというか使わないピンは電位を固定しないと正常に動作しなかったり最悪ぶっこわれても文句言えない Arduino初心者の彼は手荒い歓迎を受けたのだった。
だが、彼はそれをも物ともせず、夢への実現へとひたすら突き進むのであった。 >>706
手元にLEDとテスターが有れば、スマホの光でも当ててLEDの両端子間の電圧測ってみればいいよ
マイコンのADに直に入れてもいいし、電圧が足り無きゃ、FET入力のOPアンプで数倍の非反転増幅してからADでもOK arduino Nanoが届いたけど思ったより小さくてびびった
arduino初体験がnano、環境はLinux(ubuntu)
arduinoIEDでサンプルのBlink書き込もうとしたけどエラーが出たので
ターミナルで
$ sudo usermod -a -G dialout `whoami`
$ sudo chmod a+rw /dev/ttyUSB0
でnano挿してるusbポートに何かしらの許可与えて、かつ
IEDのツールでプロセッサをATmega328P(Old Bootloader)してから書き込みしたら成功した
届いたやつ始めから1秒Lチカしてたので変化がわかりづらいからBlink試すときはdelayの数字変えた方がいいのかもしれない
usbに毎回許可与えるの面倒だけどセキュリティ的に毎回コマンド打った方がいいのかな? >>716
大抵最初からBlinkはいってるよね
俺はいつもBlink2回でuploadテストしてる >>707
最近は使ってないピンはIC内部のプルダウン抵抗でGNDに落とすのがデフォルトになってたりするんで
あんまり気にしなくてもいい
でも、気の利いた開発環境でないとオープン放置で痛い目を見ることがあるかもしれない >>718
IC内部のプルダウン抵抗でGNDに落とすのがデフォルトになってるものってどんなのがある? >>719
STM32
まぁ、フルスクラッチじゃやってくれないけどCubeMXが落としてくれるようなスケルトンを用意してくれる
ICの機能としてデフォルトで落としているわけじゃないんで、ICの機能で落としてねーじゃんと言われたらその通りだが >>720
「最近は〜デフォルトになっている」なんて表現だと「最近出たマイコンはたいていそうなってる」みたいな
誤読を誘いそう。
今のところ、プルダウン(ましてデフォルトで) を備えているのは「そういうものもある」という程度の認識で
良いのでは。
未使用ピンについては、意識して処理する習慣を持つ方が良いと思う。 未使用の入力ピンだな
マイコンにはじめてさわる初心者でも、電子工作に慣れてる人なら
74HCシリーズやオペアンプの未使用ピンの処置とか基本だろ >>723
起動時のわずかな時間も不定状態が許されない機械ならそれがいい
基板を起こすなら不使用ピンはGNDに落としてもいい
そこまでシビアでないなら出力ピンにしてもいい 自作の開発ボードには確認用にRXとTXにLEDを付けてるんだけどスケッチの中では利用してない
けどスレの流れのようにそのピンは使わないからプルアップしたらLEDが光ってしまう
対策ありますか?
セットアップ関数には以下のようにしました
for ( int i = 0; i < 40; i++ ){
pinMode(i, INPUT_PULLUP);
} 使わないピンをプルアップしたら20mAほど電流が無駄に増えてしまいました 不使用ピンはGNDに落とすとかちょっとしたスケッチのミスで石が焼ける
ネタにしてもひどすぎるな
マイコンの未使用ピンは放置でおk >>725
LEDと抵抗でGNDにつながってるならそれはプルダウンと同じ
未使用ピンもわざわざプルアップの必要無い
そんな使いにくい状態で出荷するわけないよね? >>726
それ何オームでプルアップしてんだよwww
まぁ冗談なのはわかるけどさw プルアップした入力ピンになぜmAオーダーの電流が流れるんだ?
わざわざ出力にして引っ張ってるとしか思えません 自分の無能を棚に上げてマウント取られたーって騒ぐ奴は遠慮したい。 回答する義務はないし、強制するのも不可能だってことはわかるよな? 質問スレは善意で成り立ってるからね
知恵袋みたいに回答したからってポイントが貰えるわけでもなし その理論ならこのスレ必要ないし
そう思うならわざわざ来なくていいと思うよ
Arduinoを衰退させたいなら効果抜群だけど 当初からタコ(初心者)でも大歓迎してたLinuxが今、これだけ普及したことを考えようよ
初心者大歓迎は悪いことじゃないぞ 初心者お断りの雰囲気があったBSD系がどうなったか見れば
初心者歓迎はありなんだよ Arduinoがなければ電子工作にハマることはなかっただろな
初心者は大切にな! 年寄りが幅を利かせて若者が少ないプラットフォーム伸びしろがない XBee見るにArduino自体よりも中華製格安互換機の影響がでかいな Arduinoは安いからこそ若年層が手に取りやすい
だからバカにも丁寧に教えてやればもっと繁栄するし
もっと高機能で小型化されたものも出るようになって
値段ももっと下がるといういい事だらけの状況なの
煽るのはマジで衰退の道しかないから面倒でもこのスレ来てる以上
教えてやった方が己の為にもなるんじゃねえの nanoも200円台で買えるから、今の学生さんとか良いなあと思う あ、でも昔みたいにマイコンが高嶺の花の方が良いのかもね >>754
その繁栄やら衰退やらに斜陽日本のしかもこのスレがどう影響すんのよw
まさか5chの電々板内のほんの局所的な話をしてんの?
視野狭すぎw Arduinoがらみで2chや5chで質問したこと無いなあ。
ブログやら海外のフォーラムやらで足りるでしょ。
どういう層のどういう境遇の人があえてここで質問したいと思ってるのか逆に知りたいわ。 こういうマウントガイジによってどれ程のコミュニティが潰れてきたことか
次スレは無しだな 主流がESP32やSTM32に移動してしまって今更感あるよな
入門用にちょこっといじってみるには良いんだろうけどね それ結局Arduinoくくりでしょ、何イキがってんの、馬鹿なの? esp32はarduinoが混ざるとわけ分からなくなるから完全排除して使ってるな 自分が離れたら世間も離れているように見えたり、
自分が惹かれているものが世間でそれなりに使われているように見えるのは
そういう情報に目が行きがちだからだよな。
もう主流じゃないとか言ってる人が統計的なデータを提示してるのってほとんどない。 別にマイコンなんか使いたくないけどちょっと見てくれをよくしようと思うとArduinoあたりがお手軽…っていう人が使う
美術系の学生とか ま、実際はマウント取られてるヤツがみっともないわけよ だよな
取られたくなきゃ取られないようにすりゃいい
あるいは取らないでくださいお願いですと懇願する
防げずに取られたーって喚くのは滑稽
悔しいのはわかるがそういうこと パワハラかなんかと勘違いしてるんだろうね
掲示板にゃ逃れられない上下関係があるわけじゃないんだからさ
嫌なら来なきゃいいし情報ほしけりゃ耐えればいい うむ、だいたいロクな努力もしないで簡単に回答得ようとしてる時点で最下層
マウント取った感が出るのはお前がそこにうずくまってるからだろ
まずテメエの足で立てよ、馬鹿なのか? >>776
目の付け所はそこなの?
反論は無いの、出来ないの? 非ネイティブ同士で海外と情報の交換を英語でするのはいいんだけどそこにネイティブが現れると英語や英文の細かな間違いを指摘されて荒れるんだよ。
それを指摘すると細かな情報やニュアンスが大事だとか言い出してたしかにそれはそうかもなんだけど今話しを止めてるのはお前じゃんみたいな。
特に音声でやりとりすると母国語でマウントしてくるあいつらは本当に頭にくるよ。 な、こいつも自分の英語力の無さは棚の上でマウントマウントの大合唱だろ?
結局ただただ無能なだけなの、一生何やってもマウント取られ続けるの、なむー マウントしようとする人に反応するからいけないのに。
どうせすべての人とうまくやれるわけではないし、無視すればいいのでは? 掲示板でマウント取って満たされる自尊心。
リアルでは、、お察しだよ。 >>760
どのような掲示板で何を質問したのか?
1)どういう層と言う質問はヤボだな、そもそもハード関連では経験が浅いとか疎いとか
少くてもArduino関連では経験が浅くヒント程度でも欲しいとかだろ。
2)どういう境遇の人が、と言う質問は意味が明瞭ではない。経済的な境遇なのか
周囲にArduinoに詳しい人がいない等を想定した質問なのか?
>>774
嫌なら来なきゃいいと言うのは、その通り。ただし耐えれば情報が手に入る訳でもない。
回路図を公開してるしハードの不具合に関してはメールでヒントを頂いて解決した。
製作したハードも交換してたので結局、自分も能力を高め、人脈を構築する努力が必要ってことかな。 えーと…初心者ですが質問よろしいでしょうか?
UNO3にI2CのLCDとUART式のCO2センサーを繋ぐとLCD画面が脈打ったように
点滅してしまいます。コレ原因はなにが考えられますか?
症状はリセットボタン押してしばらくはLCDは正常で、10秒ほどでセンサーが
立ち上がってLCDが点滅し始めます。
CO2センサーはMH-Z16って物です。LCDとセンサーの電源部に
パスコン入れてみても全く改善がされません。
CO2センサーの電源を外部電源にしてみると通信がされなくなってしまいます。
これはUART的にダメなのかな…
海外フォーラムにも情報探しにいってますが未だ見つけられません。
よろしくお願いします。 CO2センサーの電源を外部電源にすれば点滅はしなくなるのか?
ならUARTを見直せば済む話だね LCDはUNO3の5V,GNDとSCL,SDAで接続されています。
CO2センサーは5V,GNDとTX,RXで接続されています。
これをソフトウェアシリアルでD2,D3に変えてみたりもしています。
センサーのTX,RXからのワイヤを抜いてもLCD点滅はそのままです… >>789
はい…外部電源にすると点滅は収まりますが、
センサーが認識されなくなってしまうんです…
電源とGNDとシリアルがセットになってないと駄目なように見えます… >>792
あ!外部電源のーからGNDに渡り線取ったらできた!
ありがとうございます!約3ヶ月ハマってあれこれやって
たのに10分で解決するとは…
本当にありがとうございます!嬉しい! 前から気になってたけどGND共通させなかった場合何がどうなるの
5Vのつもりが10V掛かったりするの? >>793
良かったなと。
GNDは共通は基本なので回路を晒すべきだな、自分も2週間はまったことがある。
2年近く前に誤動作があって、この板で質問したけど一見論理的風だったけど
結果的にはトンチンカンな回答で、最終的には自分で原因を見つけた。 >>796
ありがとうございます
解決した時って嬉しいですよね!
基本的なことが良く解ってないので回路も勉強します… >>795
電圧についてはそんな感じ
信号線とか電源の電圧ってのはGNDに対して何ボルト高いという意味なのね
だからGNDを共通にして同電位にしないと正しい電圧を加えたつもりでも受け側からすると期待してるのと違う電圧だったりする >>798
有り難う
じゃあ何か動作がおかしいで済めばましな方で、GND共通させてなかったのが原因で
一発で壊れる事もあるのか Timer2の設定らしいんだけど以下の1行で何をやっているのか意味を解説してください。
TCCR2A = ((1 << WGM21) | (1 << COM2A0));
WGM21がTCCR2Aというレジスタの2ビット目でCOM2A0が7ビット目だということ、
<<がビットシフトで|がORだということはわかりましたが、
で、何?って感じなんです。
やさしくお願いします。 データシートは読んでます。
レジスタの設定値の意味でなく、
1 << XXXXX
の意味です。 WGM21 = 0b00000010
COM2A0 = 0b01000000
ってことなんですかね、何かわかったようです。
ありがとうございました。 変更可能なレジアスタのビット値でなく、マクロで定義されてる値なんですね、きっと。 PICのコンパイラで言うところの、
TCCR2Abits.WGA21 = 1;
TCCR2Abits.COM2A0 = 1;
的なことなのな。 あ、
WGM21 = 0b00000010
COM2A0 = 0b01000000
じゃなくて、
WGM21 = 1
COM2A0 = 6
ですね。
1 << COM2A0 = 1 << 6 = 0b01000000
しかもスレチっぽいですね、これで終わります。 arduino nanoってブレッドボードにささります?
めちゃくちゃかたかったので途中でさすのやめといたのですが
もしかしてソケットみたいなのが必須なのでしょうか?
余談ですがブレッドボードってピンがもっとしっかり刺さるのかと思ってたら
案外グラグラしてて正直「あれ こんなもん?」と思って戸惑ってしまいました
ブレッドボードで組んだまま使いたかったので >>810
>めちゃくちゃかたかった
>案外グラグラしてて
どっちやねん
ピンを横から見てハの字になってないかチェックしてね 普通のピンヘッダはブレッドボードには太く、繰り返し使うとゆるゆるになったりするので、秋月電子の細いピンヘッダを使ってる。 中華互換品はついてるやつも歪んでついてることもある。だから買うときはついてないのを買う。 SDカードをspi接続で電子工作しようと
半田付けしてるのですが、内蔵プルアップ抵抗って出来るのですか
i2c接続の場合は出来るみたいなので、出来るなら外部プルアップ抵抗省略したいなと思いました 中華互換品、ピン曲がりは輸送中の事故て事で納得してやるけど
浮いて斜めになってるのがホントに嫌 ほんとそういうの多い
生産ラインから弾かれたやつを買い取って売りさばいてるんだろうね
2004のLCDもまともに表示されるの届いたことがないわ
いつも分解して導電ゴムをクリーナーできれいに掃除してやっとまともに表示されるって感じ ラインから弾かれたやつって
いきなりジャンクですか
流石チャイナwww >>817
俺はそんな経験ないわ
選ぶセラー間違えてるだけ、代金ケチりすぎ、自業自得 間違うてOpen DisputeからConfirm Goods Received押してもうたら
Status:Finishedになってもうた(´・ω・`)
発送前だけどちゃんと送られてくるよね・・? 輸送中のピン曲がりというよりゆがんだまま半田付けされてるやつなんかいくらでもあるでしょ
https://i.imgur.com/zxKxYHp.jpg
そんなやつをいちいち検査したり再ハンダしたりしてたら2割3割(それ以上か?)値段が上がってしまうんじゃないかな? 別にそこらへん全く気にならんのだけど神経質過ぎじゃね? 織り込み済みで買ってるからいちいち文句垂れないだけで気にはなるな
選択肢にあればピンヘッダついてないのしか買わない
てか全部面実装か空中配線してるからピンヘッダ山ほど余ってていらねえw ブレッドボードにピンヘッダ差し込んではんだ付けしてるんだろうけど
あきらかに穴一個分ズレたまま斜めにはんだ付けされてたのが届いたことあるよ
直せるからクレームも入れずに直して使うんだけど
気にならないほうが無理があるw >>823
話がごっちゃだな、アンタ
>2004のLCDもまともに表示されるの届いたことがないわ
これは経験ないぜ >>823
これは酷いw
手前の斜めはよくあるけど、奥の全部浮いてるパターンはまだ遭遇した事無いな HiLetgoはAliと比べると高いけど、今のところハズレはないね
在庫があれば即日出荷だし、発送はアマゾンだし aliで買うときは必要なのは1個でも2個3個余分に買えばいいんじゃないかな?
安いの買ってるのだろうし、
変なのがまざっててもそれを承知で買ってるのだろうし >>823
後付けのこういうピンのハンダ付けは面倒だよね。
まぁそれでも時間をかけて叮嚀にやればこんな事にはならない。
少し規格が異なるけど、
スルーホールに差し込む部分が半円状のバネ上になっていて、
壁面に押しつけるような構造になっているものを使えば、
逆さまにしても落ちないので、ハンダ付けが楽。
https://www.marutsu.co.jp/contents/shop/marutsu/datasheet/kel_dsp.pdf 質問します
UNO3×2 XBee×2で 親機子機の構成です
子機側に接続されたセンサーの値を親機に送るだけなんですが
子機側
Serial.print(val); // センサー値を親機側に送信
親機側
if(Serial.available()>0){
val2=Serial.read();
lcd.print(val2);
これだけじゃダメなのでしょうか?
センサーの値は500辺りなのですが受信先親機では19とか
表示されてしまいます
XBeeはシリアル通信が無線になっただけの認識なんですが…
子機側では正しく500が表示されます
よろしくお願いいたします ちなみに普通にaruduino同士をTX→RX RX→TXで
XBee無しで接続すると、まぁ当然ながら通信します… millis()ってarduino起動し続ける限りどんどん数値大きくなっていくの?
長時間の起動で計算おかしくなったりしない? >>837
XBeeがトランスペアレントモードになってないとかいうオチはないよねぇ >>841
d
>約50日間でオーバーフローし、ゼロに戻ります。
a=millis()を保持して、ループで
millis()-aの差の計算結果を使ってた場合
途中でオーバーフローでゼロに戻ったら
次の処理に進めなくなっちゃうね
差の絶対値がめちゃくちゃ大きかったらリセット
みたいにした方がいいのかな >>840
!先日までAPIモードで使ってました
ちょっと変更してみます!
XBeeはちと難しいなぁああ Arduinoプログラミングの本で明確にイベント駆動プログラミングを説明しているものはありますか
(void loop()を使っていればイベント駆動だという指摘をしない事として) >>842
普通に引き算するだけで、ぐるっと回って正しい差分が取れるんだな。 >>842
https://www.baldengineer.com/arduino-how-do-you-reset-millis.html
リセットはできないらしい。
オーバーフローしてもそのまま差を比較してれば立った負のビットは無視してそのまま続けられる。
ここではうまく説明できないからリンク先見てね。 >>845,846,847
とりあえず気になるとこにunsigned longしとけば大丈夫的な感じでしょうか ありやしたm(_ _)m >>43
Java やphpではディープラーニングできないの? aliで何度かnano互換買ってるけど自分でブートローダー書き込まないとダメだったことはないなあ
だからといって間違いなく書き込んであるとは言えないのがali >>850
アリじゃなく日本アマゾンで買ったElegoo製のNanoがブートローダー書いて無かった
ものは試しにと同じくアマゾンからICSP経由の書き換えツールUSBASPを買ってネット記事見ながらブートローダー書き込んだら成功
自分は不具合あってもArduinoの勉強だと割り切って中華ボード買ってます >>850
CH340のドライバーが必要かもしれないけど探してインストールすればいいだけ
1度、LGT8F328Dってのが載ったボードでブートローダを書き込む必要があったけど
それ以外では今まで経験ないよ
それも、もう一台Nanoでも持ってれば書き込めるから問題ない
初Arduinoならもっと数売れてるNanoの互換機を1台買っとくといいよ Uno3の5Vと3.3V出力ピンはそれぞれ最大50mAまで
みたいなんですが、5V-50mA程度のLCD着けたら
もう限界ってことですよね? おもちゃのアダプターでも使うか… UNOでRTCをi2c接続しています。
はじめは普通に時間を読んでシリアルモニターに一秒おきに出力してくれるんですが、突然とまります。シリアルモニターを再起動すると、また始まります。
どのへんからとトラブルシューティングすればいいでしょうか。 >>855
最低限のコードにして再現させよく考える。分からなければここにそのコードをupする。
最低限のコードにできないようならコードの意味がわかっていないことになるのでそこからはじめる。 >>850
それは386PB、俺も持ってる
bootloaderは入ってるのでそれだけですぐ使える
シリアルが2チャンネルあったりちょっと良いモノなんだけど
bootloader入れ替えるのに少し悩むかも知れない >>854
5Vピンから直接取るなら5Vは500mAからArduinoの消費電力引いたくらいまでかな arduinoのBEEPってSuperDepthのBGMみたいに高速で周波数を切り替えれば擬似的に和音出せるの? イーサネットシールド2を初めて使ってるんですが、
PCはwifiでネット接続してます
このPCにLANケーブルで繋いでEthernet2ライブラリの
webserverでMACアドレスとIPアドレスを設定しましたが
接続できません 直接ルーターに繋がないとダメですかね? >>862
試してみます!
確かどこかにあったハズ… AdafruitのI2CのLCDが乱れる原因ってノイズか何かでしょうか?
ブレットボードを持ち上げたり移動させた時に点滅したカーソルが
表示されたりして乱れます リセットすれば治るんですが…
振動等で発生するのも嫌なので何か対策出来ませんか? >>864
ESP32 の Revision0 じゃなくて? >>857
アドバイスありがとうございます。さっそく注文しました。 >>851 852 853
アドバイスありがとうございます。さっそく注文しました。 スクラッチーノ3でUNOとPC間の接続を
無線化したいのですが
何か良い手はないですか?
Bluetoothは駄目でした >>867
いえ、それではないです…
接触を見直そうと思います… 中華製2chオシロが1万円だったのでポチッた
これで意味もなくpwm波形をロギングしたりして遊ぶぞ それな、ソフトいれたら、パソコンが起動しなくなって、セーフモードからリカバリーしたわ。 >>630
周辺を補強しないで、Arduino単独だと「生兵法怪我のもと」を地で行くってこと。
Arduinoでハードは難しくないと誘っているけど半端なハードは、あくまでも趣味の範囲で。
>>873
Arduinoの周波数ならロジアナで監察できるので問題は電圧・電流の測定や波形で必要か。 I2Cのアドレスが変更できないデバイスを2つ使いたいけど
ソフトウェアI2Cも面倒くさそうだなぁ… >>876
I2CチャンネルはGR-SAKURAなら9本,GR-CITRUSなら5本あり mega328PBはI2C/SPI/USARTが各2chあります。 >>876
以前ぐぐってた時そのまま同一線上に繋いで、CS代わりのGPIOで
トランジスタとかでスイッチすると言う話を見かけて目から鱗だった >>876
STM32、EPS32、使えば解決なんだろうけど、
現実的には、ソフトウェアI2Cが一番簡単。
面倒な所なんてなく、2行追加するだけでしょ? >>881
I2Cチップってアドレス競合多いよね
特殊なモードとかで、書き換えられたり複数の中から選んだり、変更できるように仕様追加しないのかな? >>881
えっ?そうなんだ…
どこかのサイトでサンプルスケッチみたいの見たら
結構長いコードっぽくて、そっ閉じしちゃった… Digispark買ったけどどうやらブートローダーが書き込まれてないっぽくてスケッチ書き込めなかった
arduino unoは持ってるからattiny85マイコンだけ買っていれば Arduino as ISPでやれば書き込めてたのかな? 30秒くらいでループしてるプログラムが止まっちゃう原因て
なんだろう… コードは長すぎて載せるのもなんだなぁ…
普通にセンサーから値取ってそこから計算した値とか
無線子機からセンサー値受け取ってLCDに表示してるだけなのに
だいたい15分から30分くらいで止まってる…
なにかのバッファがオーバーフローとかしちゃうのかなあ
よくあるパターンって何がありますか? >>887
RAM不足や再帰プログラムのバグでスタックオーバーフロー? >>887
無線子機との通信が止まって
その値を取るところで処理が待機してるとか >>888
なんだろう… 時間にバラツキがあるんよねぇ…
ループの最後で停止してるのが多いのは確か…
>>889
うん… 最初それかなと思って子機とPCに接続した親機で
通信させて寝て起きたら普通に順調に通信はしてるんだ…
プログラムの一番下で止まってることが多いから
順序を変えて様子見してみるか… >>890
通信異常で値を9999とかにするように
しとけば判断出来るよ そして今は順調に動いているという…
接触不良が怪しいっぽいのか 普通に止まるようなプログラム組んでちゃダメでしょ
あらゆる外部入力に対してはタイムリミットで処理返すように作りなさい 電子掲示板群 ttp://x0000.net
(アルファ・ラボ|学術の巨大掲示板群) 予期しない動作(エラー)に対してどのように対応するかは難しい問題だな。
仕事ならプログラムの信頼性や製作コストに直結する。
たとえば、条件成立を待っているなら、時間制限でポーリングループを抜けて、
3回リトライしてそれでも駄目なら、
発生時刻やエラー内容をメモリに記録して、オペレータに通知するとかが考えられるけど、
もちろん、こういうやり方が常に最良とは言えないし。 やっすいデジタルマルチテスタ一つで四苦八苦してて思ったけど、spsや分解能低くとも
Arduinoで多チャンネルオシロもどき作っておけば楽になるかな >>897
取り敢えずアマゾンとかで、1,500円とか2,000円の安物ロジアナ買ったら?
フリーのソフトが有るけど結構使えるよ
センサーのアナログ値読みたいとかだと難しいけど >>899
トリガ機能用回路と言うのは何の意味があるのでしょうか
A3のEXT トリガ入力とは無関係? オシロってどういうときに大活躍するのかイマイチわかりません >>903
初心者ですが役に立った例を一つ
nano使って作ったものが稼働中なぜかとちゅうでリセットがかかる。マルチメータでは電源電圧は安定しているように見えたがオシロで見たらひどかった。対策して効果を目で確認できた。オシロが無いと結果でしか判別できずマージンなどはわからない。 >>905
ありがとうございます。
>>904
>>906
それは分かるんですが、具体的にお願いします。 >>907
目が見えないと歩くこともできないのと同じ
小学生が作るような実態配線図が付いた低次元の回路とかは除いて、自分で設計・実装した回路が一発で動くと思う?
それで最初から完璧に動けば、企業はオシロを初めとした測定器は要らないはず
回路論的知識とシミュレータで基本動作や機能の確認はできても、配線の引き回しとか半田付け不良とかパスコンの位置とか、多数の要素が関わる実装の問題は、(特に初心者には)シミュレータだけでは分からない
これのデジタル(プログラムミスに関わる)版がロジアナ >>908
>>910
能書きはいいので実例をお願いします。 >>913
おめでとうございます。ベストアンサーです。 >>912
そもそも、オシロスコープって、何か分かってる? >>912
あんたが見たいものを見れるようになるんだ。
見たいものが無い? それは天才か大馬鹿野郎のどちらかだね。 マルツからのトピックスメールでSeeeduinoのXIAOを知り注文してみた
https://www.marutsu.co.jp/pc/i/1631560/
これだけ小さいといろいろ勝手が良くて夢が広がりそう >>903
電子工作を始めて一発目にまず以下のような回路を組んで、Arduinoによる制御でDC-DCコンバータの出力電圧変更を試みた
https://dm-vaporizer-produce.webnode.jp/_files/200000058-a6865a6866/KIMG0301.JPG
※コンバータモジュールは秋月に売ってる以下のやつ
http://akizukidenshi.com/catalog/g/gK-07728/
※ボードはUNO REV3でアナログ出力をトランジスタのベースに接続
オレの考えとしては本来Trim端子にて抵抗器による調整なんだから、Trim-GND間電流の調整で出力電圧を調整できると捉え、
抵抗器の代わりにトランジスタを噛ませてベース電流を調整しコレクタ電流を制御してやればいいと考えてた
しかし有識者に相談した際に教示してもらったことが、そもそもUNO REV3のアナログ出力はあくまでPWMだから結局出力波形は
矩形であり、DC-DCコンバータの出力はきちんとしたアナログじゃなく矩形に近くなってて意味を成してないということ
そしてそのときにまずオシロ測定してDC-DCコンバータの出力波形を見ることを勧めてもらった
現状予算の都合上まだオシロは買えてないから測定はしてないが、原理的に考えてもDC-DCコンバータの出力がメチャクチャで
あることは間違いないだろうから、こういう初歩的な間違いを見つけ出す上でもオシロは活躍してくるよ
そして単に間違いを見つけるだけじゃなく、これから順次回路修正して調整していく上でも役に立ってくるよ
※現在回路修正としてコンデンサ追加によるパスフィルター回路を組もうと考えているところ 一応参考として初めての実験時に出力電圧がどうなってるかの動画は撮ってるので上げておくよ
https://www.youtube.com/watch?v=Cv0PycJ8j20
※オシロ測定は無いのであまり参考にならないかもしれないが・・・
このように一見テスター上では電圧調整できてるように見える
※おそらく周波数的にテスター程度では厳密な電圧が捉えられないんだと思う
これをオシロ測定するとおそらく波形はメチャクチャなんだと思う >>912
他人任せな人みたいだから、実例書いても参考にならんよ。
買っても使いこなせず、ここでイヤミを書くだろ。
Arduinoで何するつもりなのか分からんし。 >>920
全く同感
ときどき他のスレや過去レスにも出てきてるけど、ヤル気も無いのに面白半分でおちょくる、ただの荒らし
こんなのは無視が一番 digisparkでこういう感じでタイマーでLED点灯してみたけど
const int dly=32*1000;
void loop() {
unsigned long lt=millis();
digitalWrite(1,HIGH);
unsigned long dt=0;
while ( dt <= dly )
{
dt=millis() - lt;
}
digitalWrite(1,LOW);
while ( !digitalRead(2) ){
}
}
32秒が限界だった・・
それ以上の秒数ではずっとLEDが点灯しっぱなし
なぜでしょうか? >>899
わあ!横からだけどありがとう!
これでぼくのマイコンライフもちょっと変わるはず‥
後述のプローブみたいなのが無いと使えないですか? >>924
まさにそれだな
millisはunsigned longを返すし、ltはちゃんとそれで受けてるんだからdlyもunsigned longを使えよ
そしたらオーバーフローするのは相当先になる >>924,925
片方だけでいいのかとおもってた・・
const unsigned long dly=1*60*1000;
じゃだめだったけど
const unsigned long dly=60000;
だといけた!!
ありがとう! >>920
>>921
実例を出せないからって、すぐに人格攻撃をする癖を直して下さい。
実例が出せる人であれば1行で済む話です。
実例をお願いします。 >>926
1UL*60UL*1000ULにすれば動かない? >>929
const unsigned long dly=1UL*60UL*1000UL;
できた!
基本、”分”指定にしたかったのでこれで可読性があがったd! >>930
うんw あのタイミングじゃ仕方ないよね‥
親切にありがと‥ よっしゃ!全部揃ってるど! >>927
だから、そう言うレスする事自体が荒らしだろ?
もう、このスレ来んな >>927
トランシーバーの修理で大活躍な僕のオシロスコープ >>927
お前は教えてもらう立場として聞き方を弁えた方がいい
ここはお前の学び場として専用に設けられた場所じゃない
そこまで食い下がるなら第一に授業料として金払えって話になる 質問します
プログラムを流しながら条件を満たしたらモーターを回しつつ
メインループは継続させたいんですが方法はありますか?
割り込みだとメインループを中断して割り込んでしまうので…
モーターが回り始めてから時間を測れればいいんだけど…
自分で調べてみたのはmillisを引き算して使う方法と SwicthCaseで
milllsの下三桁を拾う方法だけど これだと取りこぼしちゃうんですよね…
RTCとか使わないと無理かな… >>942
あっ…実は割り込み使ったことないんです…
ループの途中で割り込んで処理が終わったら
中断した位置から再開って感じじゃなかったですかね?
モーターは起動してから30秒で止めたいんですが
その間もメインループは走ってたいんです… >>943
invalid URL (´;ω;`) >>944
タイマー割込み
タイマーはメインと無関係に勝手にカウントする
30秒分をカウントしたら割り込んでくれから割込みという >>946
使ったことないので先入観で出来ないと思っちゃったのかな…
ちょっと勉強してきます! うーんやっぱりマルチタスクっぽい動作は無理なのかな…
一旦寝よう… >>948
メインループって何やってんの?
初期設定終わったら、ひたすら割り込み待ちってのが普通だよ。 メインループとやらを割り込が入ったときの処理にしてみる。 >>948
閃いた
Arduinoをふたつ使えばいいよ。 割り込みって
現状を維持して
割り込み処理が終わったら再開だよね? >>949
ずっとセンサーの値を取得してて3秒毎にLCD表示してたりしてます
今は停止中だけど3G回線でクラウドに3分毎にデータ送信してたりするので
タイミングがぶつからないようにしなきゃならないです…
しばらく放置してたら3ヶ月通信無しって事で データSIMが
自動解約されてましたw
ネット繋がってればdatetimeとか使えるからアレなんですけど…
>>951
そう…2つ使ったらかなりやれること増えますね…
でも1台でやれるとこまでやってみたいです >>948
OSがメモリマネジメントしてないから
現代的OSとアプリの関係ではなくDOSアプリ作るようなもんだけど、若者にはイメージ伝わらないよね >>953
メイン
・lcdtime>30 で表示処理
・表示終わったらlcdtime=0
通信など
ループ
割り込み 0.1秒
・lcdtime++
・モーター作動ならmotertime++
・motertime>300 ならモーター停止
・モーター作動処理
割り込み使うまでも無いレベルだが、やるとすればこんな感じ 初心者です
質問があります
Leonardo のリセットボタンを押してもLのledが一切光らないのは異常ですか?
Boorloaderの異常ではないかと公式サイトにあったのですが、先日買ったときからこの調子です
書き込もうとしても、コンパイル後に書き込み開始されるとcomポートが認識されなくなります。書き込みまでは正常で、書き込み開始後にデバイスマネージャーから突然消えます。
ポートやボードの設定は合ってます。
書き込み前にリセットボタンを押しておいて、書き込み開始後に離すことで認識させることはできたのですが、いざ書き込もうとしてもprogrammer is not respondingとなり、一切スケッチが書き込めません。
買ってから一度も使えておらず、返品を考えています。ご教授願います。 >>953
3秒毎に表示、3分毎に送信ってのは
マイコンにしてみたら手持無沙汰もいいとこ
暇で暇で鼻くそほじってるわw >割り込みだとメインループを中断して割り込んでしまうので…
>あっ…実は割り込み使ったことないんです…
>使ったことないので先入観で出来ないと思っちゃったのかな…
>うーんやっぱりマルチタスクっぽい動作は無理なのかな…
何だコイツ? >>952
はい…僕もその認識で 割り込みが入ったらメインループは
一時停止で割り込みの処理が終わったら再開だと思ってたんですが… >>952 >>961
それであってる。
マルチコアとかの特殊なアーキテクチャーでなければ、CPUは普通は1つの命令しか同時には実行できない。
複数の処理が平行に途切れなく実行されてるように見えるかどうかはプログラムの工夫にかかっている。 >>961
どういうタイミングで何がやりたいかフローチャートにでも書いてから出直して
それ無しに何を語っても無意味 >>964
割り込み無しで簡略化して書いてみます
int val = sensor.value;
int total_val = 0;
void loop() {
lcd.print(val);
total_val += val;
delay(3000);
if (total_val > 100) { // センサー値合計が100を超えたら…
digitalWrite(2, HIGH); // 30秒間モーターをONしたい
***ここで30秒間モーターを動かし終わるまで待たずに
回しっぱなしでloopの頭に戻りたい そして30秒後に
自動的にモーターは停止したい***
と、書いていて気づいたのですがモーター回転中もセンサー合計値が
蓄積していくとすぐにまたif文に掛かりそうで ループを一時中断したほうが
都合がいいのかもしれないと思い始めました… >>966
割込み有りで書いてみ、即座に解決するから >>ID:dtY8+1+8
タイマー割込みだと言われてもそれについて調べもしないから
あなたの場合は回答もらっても無意味だね https://www.aliexpress.com/item/32820135156.html
これ買ったけど
AT+TYPEが0だったのでAT+TYPE3って送信したら
AT+TYPE=0
OK
って返ってきて全然OKじゃないんだけど!! うーん…タイマー割り込み調べて>>962さんと
同じ結論に至って無理そうかなって聞いてみたのに…(´;ω;`) >>966
digitalWriteでポートをオンにしたらオフにするまでそのまま保持するはずだが? >>971
理解するのが難しいかねえタイマー割込みは
メインの処理は同時には出来ないけど数のカウントは同時に複数できてそれがタイマー
既定の数数え終わったら終わりましぜって教えてくれるのが割込み
教えてもらったらモーター止めるのはメインの処理 delay(3000)なんて使わずにmillisで時間を確認し経過時間に応じてif文で処理すれば良いんじゃねーの
割込み使っても良いけど あと割り込みの使い方として、懸念されてる様に割り込み中はループが止まるから
割り込みの中ではフラグを立てたりしたらすぐ復帰する様にして、本処理は
ループの方で割り込みのフラグが立ってたらと処理する タイマー割込みならモーター始動と同時にタイマースタートして割込み関数でモーター停止とタイマーストップすれば出来るだろうし
MsTimer2というライブラリがある 横で済まないが
タイミング的に絶対割込みさせたくない部分では
禁止にする方法とか
それが済んだら割込み処理とかってできる? delayは使いたそうだからライブラリではTimerOneとMsTimer2
モーターがサーボなんだかPWMなんだかわからなかったけど
ただぶん回すだけみたいだからどっち使ってもいいね >>977
タイマー止めればいい
割込み禁止も可能 >>977
http://www.musashinodenpa.com/arduino/ref/index.php?f=0&pos=3155
割り込みを禁止すると割り込みで動作している動作は一切止まるので注意(うっかりdelayとか使うと戻って来なくなるぞ)。 あごめん、戻って来なくなるんじゃなくディレイが無くなるようだ(即戻る)。 AT+TYPE1は設定できることを発見した
でもペアリングは無理っぽい ああ…たくさんヒントありがとうございます…
なんとなく流れが理解できました
頑張ってみます! なんとなく結論出てるみたいだけど
まず、基本的にArduinoではWindowsやLinuxみたいなマルチスレッドみたいな機能は無い
なので、自分でスレッドスケジューラみたいな仕組みを作る必要がある
でも本格的にスレッドの仕組みなんか作ると大変だしプログラム容量も大きくなるので
実行したい処理と処理にかかる時間を定義して、各々の処理をどのタイミングで実行
するかを決めたタイミングチャートを作って一連の処理を行うループを作成するってのが
屁理屈なんだけど
一応「arduino マルチスレッド」でググると色々出てくるし
http://asukiaaa.blogspot.com/2016/06/arduino.html
見たいな例もあるみたいよ 割り込み中ではフラグだけ立てて、メインでフラグをチェックして処理 >>991
やっぱ、Arduinoでもそんな感じですかね〜
>>992
一般的にって事です。 >>990
自分じゃ何も調べずに適当な質問を数撃ちゃ当たる方式で投げてるだけだろコイツ >>996
そうね
きっとコイツ >>903、>>912 だと思うわ
荒らしは相手にしないのが一番 >>991の回答も意味不明なんだが
会話が成り立ってるところがまた笑える。 >>998
>>991の回答が解らないとはあんたは割込処理中にどんな記述してるんだ?
割込処理内ではフラグだけ立ててメインループでポーリングしてフラグ監視するのは基本じゃね
スタックやリソースの競合や多重割込のことを考えると
割込処理内で複雑なことするとデバッグするのが大変だろうに このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 71日 5時間 0分 52秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。