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

レス数が950を超えています。1000を超えると書き込みができなくなります。
1774ワット発電中さん2017/12/29(金) 08:24:48.52ID:fV89GCp3
http://www.arduino.cc/

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

【分裂騒ぎ】
おさまった模様。くわしくはぐぐれ。


前スレ
Arduino初心者熱烈大歓迎質問スレ part19 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1500745528/

過去スレ
Arduino初心者熱烈大歓迎質問スレ part18 [無断転載禁止]©2ch.net
http://rio2016.2ch.net/test/read.cgi/denki/1485192244/
Arduino初心者熱烈大歓迎質問スレ part15
http://rio2016.2ch.net/test/read.cgi/denki/1451893274/
Arduino初心者熱烈大歓迎質問スレ part17
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/
Arduino初心者熱烈大歓迎質問スレ part16
http://wc2014.2ch.net/test/read.cgi/denki/1451909868/

関連スレ
【Arduino】フィジカル・コンピューティング4【OSC】
http://wc2014.2ch.net/test/read.cgi/denki/1407830304/
学研マイコン Japanino ジャパニーノで遊ぶスレ 3
http://kamome.2ch.net/test/read.cgi/denki/1286354827/

926774ワット発電中さん2018/05/20(日) 14:37:00.65ID:WXMGfkV4
>>923
2回路のプッシュスイッチでも
ダイオードでも

927774ワット発電中さん2018/05/20(日) 14:38:40.01ID:WXMGfkV4
マイコン2個とか
LEDも2個とか
電池まで2個とか

928774ワット発電中さん2018/05/20(日) 14:41:52.76ID:+zMmRvuH
>>925
そうなのか……。
と言っても言ってることが分からんので、その辺の勉強したい……。
組み込み無線もそうだけどIoT位はできるようになりたい……。

最終的には今年の室内の様子とか見れるようになりたいけど、全然勉強出来て無い……。
とりあえず今年はIoT基礎から勉強したい……。

929774ワット発電中さん2018/05/20(日) 15:20:58.32ID:nbpf6iUq

930774ワット発電中さん2018/05/20(日) 15:21:15.99ID:UnGAB13G
>>927
レスありがとうございます。
二回路のスイッチがああるのですか知りませんでした
また、マイコン2個は思いつきませんでした
Aliで買った格安Arduinoなので二個もありかも
ダイオードはどのように使うのでしょうか?
また、Arduinoでつかう電源ってどんなのが一般的でしょうか?

931774ワット発電中さん2018/05/20(日) 15:59:48.18ID:+zMmRvuH
>>929
そういうのかな、と言っても室内用だから基板丸出しになるかもね。

932774ワット発電中さん2018/05/20(日) 17:03:42.90ID:ZY2qmLEH
電子工作超初心者です。
現在、arduinoでブラシレスモーター式水中ポンプの流量制御を行いたいと考えておりますが、
難航しております。

まずは以下のページをトレースして普通のDCモーターの回転速度をトランジスタとPWMで制御
する手法を学びました。

http://monoist.atmarkit.co.jp/mn/articles/1604/11/news014.html

次にamazonで以下の安価な水中ポンプ(DC30A-1230 https://www.amazon.co.jp/dp/B07BGHC6YR)を購入し、12Vの電源を用意して普通のモーターと
同様に流量を制御できるかと思ったのですが、PWMの出力が最大の場合(analogWriteで255)に
のみポンプが回転し、それ以下では全く動作しませんでした。

いろいろと調べたところ、当該ポンプはブラシレスモーターで、DCモーターと同じような制御
はできないようであるということが分かりました。

arduino forumにて同様の問題に関する投稿(https://forum.arduino.cc/index.php?topic=202059.0)を見つけ、
最終的にはアドバイスにより解決したようなのですが、私にはハードルが高く理解できており
ません。

提示されている解決策として、印加する電圧を変える(動作電圧の5〜12Vの範囲で?)のが
良いとのことで

1.arduinoで制御できるリニア電圧レギュレーターを使うか、arduinoのPWM出力を平準化して
さらに増幅する(ポンプに電流が流れすぎると(ポンプ内の?)レギュレーターが過熱する)

2.フライバックダイオード、インダクタ、キャパシタ、バイポーラトランジスタTIP31Aを使う
(ただしarduinoのPWM周波数を31kHzにする必要がある)

という記載がありました。
(続きます)

9339322018/05/20(日) 17:15:31.63ID:ZY2qmLEH
1.に関しては、aruidnoのPWM出力をローパスフィルタで平準化した後、ポンプを駆動できる
ようなパワーオペアンプ?で平準化した電圧を増幅してポンプを駆動できる電圧にしてやれば
良いのかなと思っており、以下のサイトが参考になるように感じています。


(投稿時にNGワードでひっかかってしまったため、アドレス削除しています)
googleで「マイコンから電圧制御」で出てくる一番上の北の国から電子工作(仮)というページです

ポンプを駆動するには大電流が必要(当該ポンプの最大不可電流は0.35A)のため、パワー
オペアンプが必要と理解しています。

ポンプに流れる電流はオペアンプ部分の増幅回路のR2とR3で調整すれば良いのでしょうか?

仮にポンプに対して12Vの電圧で0.35Aの電流を流したい場合、電圧はPWMのデューティー比と
R2,R3の比で決まる増幅率で制御し、電流はI=0.35A=E/R=12V/(R2+R3)でR2+R3=40Ωと計算して
みたのですが、R2とR3の値がこんなに小さいのに少し不安を感じています。

実際、参考にした上記サイトではR2=1kΩ、R3=2kΩを使っています。電流をどこまで流す必要
があるのか分かりませんが、パワーオペアンプを使うからにはそれなりの電流を流すのだろう
と思っています。しかし12Vで計算すると4mAとなってしまいます。これなら普通のオペアンプ
で良いように思います。

1に関して、上記の理解は間違っていますでしょうか?


また2の手法に関しては全くどういうこと理解できておりません。arduino forumでは最終的に
2の手法で解決されたようです。これに関して参考になるサイトなどはありますでしょうか?


自分なりにいろいろ調べてみたものの、初歩的な部分で理解できていないことが多く上手く
解決策につなぐことができておりません。もしアドバイス頂ければ幸いです。

934774ワット発電中さん2018/05/20(日) 17:50:12.84ID:KDVAyWW6
ブラシレスは定電圧の電流制御でしか回転速度可変は無理だろ

935774ワット発電中さん2018/05/20(日) 19:38:23.73ID:sDDsp3SB
>>933
Tr出力にフライホイールダイオードと平滑コイル入れてやれば
あなたがやりたいアナログ出力はできるが、
それで回転数制御できるかどうかは別の問題。
実験用可変出力電源とか持ってないの?

9369332018/05/20(日) 20:20:53.34ID:ZY2qmLEH
>>934,935
コメントありがとうございます。

ひとまず最初のトランジスタを使った電流増幅回路で抵抗値を変えて電圧一定で電流値を
変えたところ、確かに流量が変化しました。
また一方で、抵抗を同じまま、電源側の電圧を12V ACアダプタから乾電池4本の6Vに
変えたところ、こちらも流量が変化(低下)しました。

電流でも電圧でも流量が変化するようです。これはブラシレスモーターの挙動としては
おかしいのでしょうか?


>>935
すいません、出力可変電源は持っておらず、上記で検討してみました。
電圧が変われば回転数は変わるようです。
フライホイールダイオードと平滑コイルを使う、とは、平滑回路と呼ばれるような
ものをトランジスタの出力に入れてやる、ということでしょうか?

以下の図6の回路のトランジスタとモーター間にその回路を入れることで電圧を
変えることがでるでしょうか?
http://monoist.atmarkit.co.jp/mn/articles/1604/11/news014_4.html

またその方法は、抵抗とコンデンサによるローパスフィルタをトランジスタの出力に
組み込むことと機能的には違うものでしょうか?

937774ワット発電中さん2018/05/20(日) 20:40:55.19ID:sDDsp3SB
>>936
PWMは無駄に熱を出さずエネルギー効率が良いという特徴がある。
>>935 に書いたのは、効率を保ったままアナログ出力にする方法。
効率や排熱に問題がないなら、この方法を取らなくても良い。

938774ワット発電中さん2018/05/20(日) 22:16:13.72ID:SMfdga0o
>>933
>電圧はPWMのデューティー比とR2,R3の比で決まる増幅率で制御し
これは正しい
>電流はI=0.35A=E/R=12V/(R2+R3)でR2+R3=40Ωと計算して
R2,R3はあくまで電圧の増幅率を設定するためのもので
モータに流す(流れる)電流を制御するような役目はない
モータに流れる電流は、オペアンプの出力電圧とモータの負荷(トルク)で
決まってくる
※もちろん、オペアンプがその電流を流せることが前提

939補足2018/05/20(日) 22:21:23.52ID:SMfdga0o
>電流はI=0.35A=E/R=12V/(R2+R3)でR2+R3=40Ωと計算して
「ポンプの最大負荷電流は0.35A」が、どうしてR2とR3に0.35A流すって
発想につながったのか不思議

9409332018/05/20(日) 22:38:32.00ID:ZY2qmLEH
>>937
コメントありがとうございます。
フライホイールダイオードと平滑コイルによる平滑回路は、アナログ出力にする方法
としては効率が良いものなのですね。
手元にすぐあるのは抵抗とコンデンサだったのでトランジスタ出力にローパスフィルタ
を形成してみたのですが、残念ながらポンプは動作しませんでした。

教えて頂いた手法についても調べてみたいと思います。

>>938
ご指摘ありがとうございます。
やはり電流のところの理解が完全に間違っているのですね。

>モータに流れる電流は、オペアンプの出力電圧とモータの負荷(トルク)で決まってくる

とは、ACアダプタ(外部電源)の流せる電流値がモーターを動かすのに十分な値であり、
オペアンプの出力電流が十分あるもの(パワーオペアンプのような)ものを選べば、
あとは勝手にモーターが負荷に応じて動作に必要な電流を外部電源から取り出してくれる
のであり、特に何かそれ以上こちらで設定すべきことは無い、ということになるのでしょうか?

941774ワット発電中さん2018/05/20(日) 23:07:49.71ID:SMfdga0o
>>940
>モーターが負荷に応じて動作に必要な電流を外部電源から取り出してくれる
正確に言うと、外部電源ではなく「オペアンプ(の出力)から」ということに
なると思います。
モーターから電源と見えているのはオペアンプの出力なので

942774ワット発電中さん2018/05/21(月) 00:02:20.89ID:nkvxtilS
質問なのですが、組み込みの場合って電源どうしてますか?
何電池使ってますか?

943774ワット発電中さん2018/05/21(月) 00:03:58.21ID:YX8KJyz4
>>942
ボタン電池から鉛蓄電池まで何でも。

944774ワット発電中さん2018/05/21(月) 00:15:54.49ID:NxjajcGs
何にどんな用途で組み込むかによるだろそんなん
ACアダプタからソーラーパネルまでなんでもあるだろ

9459332018/05/21(月) 07:00:11.88ID:eFsLnnTF
>>941
コメントありがとうございます。
なるほどオペアンプから、ということになるのですね。
ひとまず他に設定すべき点が無いようで安心しました。
部品を購入して試してみたいと思います。

946774ワット発電中さん2018/05/21(月) 07:04:47.08ID:eAEjSTcL
>>942
目の前に有るもの。
素人工作なら工夫をしろ。

もし業務でその質問してるなら二度と回路設計・製品企画に関わらないことをおすすめする。

947774ワット発電中さん2018/05/21(月) 08:11:10.35ID:C+v1TJIH
>>946
ニッケル水素しか使ったことない人が18650にチャレンジするような事があってもいいじゃん。趣味なら爆発しても楽しければいいだろ。

948774ワット発電中さん2018/05/21(月) 08:17:51.03ID:nkvxtilS
>>946
arduinoを製品に使うことなんてあるの?
初めて知った

949774ワット発電中さん2018/05/21(月) 09:31:46.09ID:+YPLsCwK
ユニークで個性的な確実稼げるガイダンス
暇な人は見てみるといいかもしれません
グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』

H0BVO

950774ワット発電中さん2018/05/21(月) 09:41:10.55ID:SAVEgL/J
>>936
ブラシレスは半導体でコイル電流を切り替えてんだから
半導体が動作しない低電圧になれば回転できない
たまたま6Vでも動作する半導体が使われてるんだろう

951774ワット発電中さん2018/05/21(月) 12:14:31.86ID:rp71G9zP
>>948
原理試作とかでよく使うよ。
そんなところに金も時間もかけてられないからね。

952774ワット発電中さん2018/05/21(月) 14:03:55.00ID:hnmcWZLT
>>948
これとかわかりやすいんじゃない?
https://synapse.kyoto/hard/miniaturize_arduino_project/page001.html

953774ワット発電中さん2018/05/23(水) 22:46:42.94ID:msPKlAd+
タイマーなしでパイロットランプ(LED)を1秒周期くらいで点滅させる方法ありますか?
デューティ比は20%〜30%くらいがいいです、周期ははだいたい1秒でかまいせん
玩具のミニロボットを作ってるのだけど
タイマー0はArduinoコアが、タイマー1はServoライブラリが、タイマー2はDCモーターのPWM制御が使っていて…
loopは高速でずっと回ってるんですが、millisとか使ってうまくできますかね?

954774ワット発電中さん2018/05/23(水) 22:48:32.11ID:yZawOtCx
>>953
なんかあったわ、それ。タイマーを使わないプログラムのタイマー
ちょっとブラウザのブックマークを探してみる
返事がなければ寝たと思ってくれ

955774ワット発電中さん2018/05/23(水) 23:36:21.36ID:yZawOtCx
あ、無理だわw
ただ単にLEDを点滅させるだけなら・・・

long previousMillis = 0; //前のmillis
unsigned long currentMillis = 0; //現在のmillis
long interval = 1000; //インターバル 1秒
const int ledPin = 13; //LEDピン

void setup() { pinMode(ledPin, OUTPUT); }

void loop() {

currentMillis = millis();

if(currentMillis - previousMillis > interval) //現在のmillis - 前のmillis > インターバルの1秒過ぎたら
{
previousMillis = currentMillis; //前のmillisに現在のmillisを代入

//LEDをトグルさせる処理
digitalWrite(ledPin, !digitalRead(ledPin));
}
}

956774ワット発電中さん2018/05/24(木) 01:10:01.74ID:pprffWGk
>>955
LEDついてるかどうかdigitalreadして調べて、ついてたら点灯時間を超えているかどうか、消えていたら消灯時間を超えているかをmillsの値で判定すればいいんじゃね。あと、長時間動かすものならmillsのオーバフローの対処すればよいのでは。

957774ワット発電中さん2018/05/24(木) 01:42:06.82ID:vpiOFuDg
pro miniのRAWに印加していいのはmax150mAですか?USB電源5V/500mAを供給したら壊れるということですか?
http://imgur.com/GQawxvC.png

958774ワット発電中さん2018/05/24(木) 01:48:30.36ID:ad44qbHk
>>956
質問者はPWMで調光したいらしいから、その処理はどうすんの?

959774ワット発電中さん2018/05/24(木) 02:04:00.89ID:ad44qbHk
>>957
RAWピンにUSB電源を繋げるだけなら壊れないよ
電流は消費する分しか流れないから
Arduinoに1ピンあたり最大40mA、合計150mA以上消費する何かをつなげてArduino引き出そうとすると壊れる

960774ワット発電中さん2018/05/24(木) 03:51:38.66ID:xqBAm0eh
https://i.imgur.com/n1mdhZ5.jpg
何処ぞでブレッドボードのまま完成品にしてる人を見掛けて、あーもうこれで良いんじゃねと
3Dプリンタでブレッドボードを収める箱を作ってみた

961774ワット発電中さん2018/05/24(木) 05:23:46.96ID:pprffWGk
>>958
俺にはPWMで調光するとは書いてないように思えるのだが。

962774ワット発電中さん2018/05/24(木) 06:38:13.08ID:4iqOVRIj
>>953
「タイマー無しで」とはあるけども…それが「タイマー0と1と2が使用済みだからもう無い」ってだけなら
まだ遊んでる犬が居るぜ?大雑把な時間を数えるくらいなら出来る(番犬にしてなければな)

setup()の前に  byte led;ISR(WDT_vect){led%=4;led+=5;}  を追加
setup()の頭に  cli();WDTCSR=24;WDTCSR=68;sei();   を追加
該当のポートに HIGH、LOW の代わりに  1&led>>■  を設定

■に数値を入れて点滅パターンを選ぶ
0 : 1/4秒点灯、1/4秒消灯(2Hz , 50%)
1 : 1/2秒点灯、1/2秒消灯(1Hz , 50%)
2 : 3/4秒点灯、1/4秒消灯(1Hz , 75%)
3 : 1/4秒点灯、3/4秒消灯(1Hz , 25%)
4〜 消灯

例 :
byte led;ISR(WDT_vect){led%=4;led+=5;}
void setup() {
cli();WDTCSR=24;WDTCSR=68;sei();
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, 1&led>>3); // 1Hz 25% dutyで内蔵LEDを点滅
/*
ループ処理なんとかかんとか
*/
}

963774ワット発電中さん2018/05/24(木) 06:47:22.37ID:ErK8F4yD
>>960
4箇所の爪は弾性変形してパチっとはまる構造?

俺も作ってみようかな

964774ワット発電中さん2018/05/24(木) 06:51:43.35ID:ErK8F4yD
>>953
CRとADCで出来そうな気がする。

965774ワット発電中さん2018/05/24(木) 08:33:08.90ID:vpiOFuDg
>>959
ありがとう
RAWピンのMAXはそういうことだったんですね

966774ワット発電中さん2018/05/24(木) 09:20:33.49ID:ErK8F4yD
>>965
質問に対する答えはそうだけど、つなぐべきはRAWじゃなくVCCピンでは?

967774ワット発電中さん2018/05/24(木) 09:20:52.28ID:XM1MTmuP
「タイマー0と1と2が使用済みだからもう無い」

どうして初心者はそこで頭固まってしまうんだろうな?
使いたいタイマーの数だけ変数作って
タイマー1個使ってすべての変数をカウントアップさせて使えば
メモリのある限り無限な数のタイマー使えるじゃん

968774ワット発電中さん2018/05/24(木) 10:52:50.69ID:0uuYOHbw
>>967
初心者だからこそ。自分が初心者のときにそこまで頭回ったか?回ったならあなたは天才
もしその方法でやるならライブラリの中弄るとか、全然初心者じゃなーい

969774ワット発電中さん2018/05/24(木) 12:04:42.69ID:Rj2Y+LTP
>>967
そこまで出来たら初心者じゃなくね?w
既存のライブラリが使えて手軽に開発できるのがウリなんだし
マイコンの隅まで使いこなせるならArduinoじゃなくても良くね?ってなるし

まぁウォッチドッグのレジスタ叩く回答した自分が言うのもアレなんだけど

970774ワット発電中さん2018/05/24(木) 12:13:27.82ID:wu/M8Rwf
C全般的にはタイマー割り込みの方がよっぽど特殊だよね

971774ワット発電中さん2018/05/24(木) 12:16:57.28ID:Rj2Y+LTP
まぁArduinoが使ってる0とサーボライブラリの1はともかく
タイマー2はDCモーターのPWM制御とやらを自分で書いたのならば
PWM周波数をちょいと工夫すれば同時にLED点滅にも使えるかな?って考えたりすれば…
と思ったけどD3、D11にFETとかつけてanalogWriteしてるだけかな?

そもそもデフォルトのプリスケーラから変えるにはレジスタ叩かないといけないし
タイマー割り込みも標準だと使えないんだっけ?
MsTimer2とかライブラリ使えばあるけど
質問者はPWM制御で使っちゃってるって考えたわけだからなぁ

サーボライブラリやanalogWriteで使ってるタイマーが把握できてたりするだけ偉いと思うぜ俺は

972774ワット発電中さん2018/05/24(木) 12:31:12.15ID:BRSVG0gy
○○が足りなくなった?

っ[Arduino Mega] スッ…

973774ワット発電中さん2018/05/24(木) 12:42:03.35ID:qzNxBi2J
>>972
お金が足りなくなった

974774ワット発電中さん2018/05/24(木) 12:43:09.85ID:BRSVG0gy
びんぼうでいいの

975774ワット発電中さん2018/05/24(木) 15:14:39.29ID:VAcXdDVO
>>953
とりあえずこれ貼っときますね
http://eleshop.jp/shop/g/g71C314/

976774ワット発電中さん2018/05/24(木) 15:26:00.76ID:BRSVG0gy
http://akizukidenshi.com/catalog/g/gI-09643/
ハードウェアで何とかしていくスタンス好き

新着レスの表示
レス数が950を超えています。1000を超えると書き込みができなくなります。
レスを投稿する