Arduino初心者熱烈大歓迎質問スレ part21
■ このスレッドは過去ログ倉庫に格納されています
http://www.arduino.cc/
【質問者心得】
・スレに一応目を通してから質問しましょう
・回答者はエスパーではありません。状況が分かるように詳しく書きましょう
詳しく書いてくれないと、答える方も困ってしまいます。答えようがないのです
【回答者心得】
・すぐにググレカスと言う前に「○○でググれカス」って言うような大人の余裕を見せつけてやりましょう
・節度ある初心者さんには、特に優しくね
【分裂騒ぎ】
おさまった模様。くわしくはぐぐれ。
前スレ
Arduino初心者熱烈大歓迎質問スレ part20
https://rio2016.5ch.net/test/read.cgi/denki/1514503488/
過去スレ
Arduino初心者熱烈大歓迎質問スレ part19
http://rio2016.2ch.net/test/read.cgi/denki/1500745528/
Arduino初心者熱烈大歓迎質問スレ part18
http://rio2016.2ch.net/test/read.cgi/denki/1485192244/
Arduino初心者熱烈大歓迎質問スレ part17
http://rio2016.2ch.net/test/read.cgi/denki/1471967293/
Arduino初心者熱烈大歓迎質問スレ part16
http://wc2014.2ch.net/test/read.cgi/denki/1451909868/
Arduino初心者熱烈大歓迎質問スレ part15
http://rio2016.2ch.net/test/read.cgi/denki/1451893274/
関連スレ
【Arduino】フィジカル・コンピューティング4【OSC】
http://wc2014.2ch.net/test/read.cgi/denki/1407830304/
学研マイコン Japanino ジャパニーノで遊ぶスレ 3
http://kamome.2ch.net/test/read.cgi/denki/1286354827/ 車速と同期して光が流れる車載イルミ作ってるのですが途中で行き詰まってしまいました。
LEDを順次点灯させるプログラムは完成しましたがGPSで取得した速度を同期させる方法が分かりません。
誰か教えて下さい!
使用機器は
Uno R3
WS2812のテープLED
みちびき対応のGPS受信機 どう光らせたいのかも、どう行き詰ってるのかまったくわかんないけど例えばこういうことか?
if (速度 < 10km/h)
10km以下の光らせ方()
else if (速度 < 20km/h
20km以下の光らせ方()
・・・ >>395
LEDが何個あるかわからんが
ただの点灯と消灯だろ?
なら全部並べて0,1のビット処理できるだろ?
速度がわかったら、LED1個の隙間分を何msで通過するかわかるだろ?
その時間でビットシフトすりゃOK
そのビットで点灯させるように作れ 光らせたいパターンは車と同じ向きに光が車速と同じスピードで進んでいくイメージです。
1、GPSで車速を検知
2、車速と同じスピードでLEDが端から端まで順次点灯
3、繰り返し
って感じをイメージしてます
行き詰まったのはLEDの点灯間隔の処理のところです >>399
「LEDを順次点灯させるプログラムは完成しました」って書いてるから
今は一定な順次点灯の間隔を、車速に反比例させて変えてやればいいだけなんじゃ? Leonardo+74HC595で1602Aに出力したいんですが
74HC595+LEDをハードSPIで点滅出来る事を確認し、
1602Aを直接続4bitモードでの動作確認は出来たものの
Leonardo+74HC595で1602Aを扱う方法がさっぱりです
最悪自分で一から書けば良いとは思うんですが、Leonardo+74HC595に対応した
液晶ライブラリて無いですかね >>401
原理的にはできるけれど、特別な理由なきゃ i2cインターフェイスの液晶か
1602用のi2cインターフェイスボード使ったほうがいいんじゃない? ぐぐると74HC595で1602Aを扱う事は広く行われててライブラリもあるんですが
全てUNO用で、UNOと違ってSPIがICSPにしか出てないLeonardoではどうした物なのか >>403
ICSPコネクタに繋げばいいというものではないの? >>404
初期化にpin番号指定したりLeonardはSSがとんでも無い所に出てたりするので
どうかと思ったんですが、ソース眺めた感じ↓のSPI専用版ならそのまま使えそう
https://github.com/omersiar/ShiftedLCD >>402
これだな。74HC595でなんてよくやるわw https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
I2Cは重いらしいよ!
こんな応答速度の遅い液晶で重いも何もあったもんでは無いとも思いますが
戻りが早い事に越した事は無いと思う スケッチについて質問です。
フルカラーLEDを使おうと考えています。
カラー設定のこの部分
RGBLed.setPixelColor(0,150,0,0);//赤
数字の0,150,0,0を関数にする事は出来ないのでしょうか?
調べてみて
int red[] = {0,150,0,150};
このようにやってみたのですが
RGBLed.setPixelColor(red[]);//赤
エラーでした。
いい方法はありますか? #defineか何か、プリプロセッサで出来るんじゃないかな
出来なかったら
Led(int *t){ RGBLed.setPixelColor(t[0], t[1], t[2], t[3]); }
int red[] = {0,150,0,150};
RGBLed.setPixelColor(red); とか 何が疑問なのか、数値を直接書かずに変数なり、関数なりで置き換えればいいだけだが。
int fz(void){
return 0;
}
int fv(void){
return 150;
}
RGBLed.setPixelColor(fz(), fz(), fv(),fv()); http://codepad.org/tYcwCKUI
defineで通ったわ
自分は勝手に配列と関数を間違い、単に記述で楽したいと言う話かと思ったけどどうなのかな #defineでいけました!
SDカードから引っ張ってきた文字を表示しその名前に対応した色を発光させたいと
思っているのですが名前に対して色が大量に重複するので
red=0,150,0,0
blue=0,0,0,150
yellow=0,150,150,0
purple=0,150,0,150
こんな風に色の名前でRGBの数字をまとめられたら楽だし
メモリの節約にもなるかなと思い調べていました。
さすがに数字一個一個関数や変数にすると複雑すぎて混乱するので・・
聞き方が良くなかったというか関数と変数をちゃんと理解していなかったです。
すみません。
お二人ともありがとうございました。 何で引数4個なんだろうとぐぐってみたら1個目は数珠繋ぎの番号なんだな
配列に入れるもんじゃ無いと思う manoのニセ物を使ってます。
pwmでデューティ比を0から100まで変えたい場合、搬送周波数は7000hz
が限界のようですか、みなさんも
同じ程度でしょうか? 別にニセモノがホンモノの性能を超えたっていいじゃない?(頑張れー ArduinoIDEのサブメニューって、マウスカーソルがズレるとすぐ消えね?
なんとかならない? やろうと思えばできるだろうけど労力の割りに合わないだろうな
我慢しとけ >>417
IDEを Visual Studio Code に変えなはれ サッカー日本代表セネガル戦でお忙しい所すいません。
スピーカーの中に内蔵させようと思うんですが、
こういうマイコン類って、強力な磁石の近くに設置しても大丈夫ですか? いくら強力なスピーカーの磁力程度では全く関係ないよ >>420
エンクロージャーならどうにかなると思うけどユニットってことならやめといた方がいいと思う。 駄目だったらスアンプ内蔵スピーカーなんかもアウトだなw >>415
「Arduino PWM 高速化」でググってみて
このスレでも、ちょっと前に高速化使ってるプログラムが出てたような A/Dは量子化10bitですが、8bitならば200KHzを超えるAD変換クロックが出来るとデータシートに記述されてました。
しかしそんな設定の出来るレジスタは見当たりません。
200KHzを超えるAD変換クロックを入れれば勝手に8bitになるのでしょうか?
8bitで読み取るにはどうすればいいのですか?
arduino unoです。 使いにくい
やっぱArduino IDEが一番いい そっか
残念
書くのだけVSCodeにしたらいいか
PlatformIOはどう?VSCodeにも拡張あるみたいなんだけど >>426
出来るよ。
Arduino IDEはもう全然起動してない。 中華のNano互換買ってみたけど、あとで火を噴いただの、PCとつなぐのにドライバがいるだの知って使うの躊躇してる >>425
8bitにしてとかじゃなく、AD変換クロック(分周器)の設定だけで
早くできるみたいだよ
「Arduino ADC 高速化」で検索 >>431
ありがとう
200khzより高速でサンプリングしたければ、10bitのうち2bitを捨てろという事みたいです Arduino Nanoに対するコンパイル時にエラーが発生しました
というメッセージが出るので、調べたらこれが原因でした。
#include <avr / interrupt.h>
#include <avr / io.h>
#include <avr / pgmspace.h>
削ればコンパイルは完了するのですが、ボードに書き込んでも動作しません。
何らかのライブラリをダウンロードする必要があるということでしょうか? マジで!?
初電子工作の初ArduinoでRobotDynが出している互換機買って到着待ちなんだけど(核爆) >>433
「/」の前後にスペース入れてるの?
ファイルパスだからスペースがあったらマズいよ >>430
中華クローンばっか使ってるけど発火事故なんか一度もないけどw?
ドライバはインスコするだけ。
もしよろしければ火を噴いた記事のリンクなど有りますか? >>430
回路の抵抗値ミスって香ばしい臭いをさせたことはあるけど
発火は無いなぁ
心配なら単体で通電してしばらく監視していればどうかな
事故原因の大半は外部要因だと思うけど。。。
※個人の感想です >あとから良くみると、電源とGNDを直結してしまってました。
これは・・・ >>439
すまん、本文よんでなかったわ。。。
中華、煙、やっぱり!とおもって目の前が真っ暗になって寝てしまってたわ。。。
おわびにもっかい寝てくるわ。。。 >>435
助かりました。さらに何時間か無駄にするところでした。 >>438
私はド素人なのでいろいろ調べるなかで、この記事読んだことあったわw
まぁ諸々気を付けるに越した事はないですね
頑張ってください https://www.dorapro.co.jp/engineerblog/?p=749
ソフト屋さんみたいだけど、
この程度の問題解決能力というか掌握力では、
本業のソフトの方もたいして期待できなさそう。 >>445
・ある事象に対して根拠にとぼしい推測をする人だな。
・他者の評価について、いくつかの可能性がある場合にマイナス評価の方に目がいくタイプなのかな。
・あいまいなことで、匿名という守られた立場で個人ブログを批判する人なのかな。 ハンダ付けも上手くできたなんて書いてるからもともと初心者っしょ 仮にやったとしてもこんなの恥ずかしくてよー公開できんわ >>446
目的語を適宜変更すれば、
それ、全部そのままあなたに当てはまる。
素晴らしい自己分析能力です。 uint8_tの配列からintにキャストする場合、下のやり方で良いですか?
uint8_t array[10] ={100,101,102・・・};
int temp = (int)array[0];
どうも値がめちゃくちゃになるんですが・・・
実際には4桁7セグにuint8_tの配列値を表示させています。
disp.digit4((int)array[0]); ちなみに
int i=100; disp.digit4(i);
disp.digit4(100);
など、直接数値を指定した場合や、intの変数なら正常に表示されます。 8ビットのuint8_tから、16ビットのintへ変換しようとしていることが分かりました。 キャストの問題じゃないんじゃないかな?
配列サイズ小さくするとか、別の配列で試すとかしても同じ?
誰かがメモリ内容壊してるんじゃないかなあ。
なお言語仕様上はキャストしなくても自動でキャストされる。 >>454
自動キャストされるんですね。ありがとうございます。
もう一度見直してみます。 スケッチ書きこんだ後、PC電源落としても、ステッピングモーターとか回ってるけど
どのタイミングでUSB引き抜けばいいの? PCの設定で電源落としてもUSBだけ給電するようになってるんだろ
いつ引っこ抜いてもOK >>457
さんくす
通電してるUSBを引っこ抜くのはすごい抵抗あるお YouTubeでRGB LEDテープ使って7セグみたいなの作ってる動画あるんだけど、直列に繋げて ○○●○ 1つだけ電気つけないってのやってんだけどどうやってるのかな? すまねえこの動画の6:00前後なんだけどさめちゃめちゃ不思議なんだよねhttps://youtu.be/1aNHF5tcTpw 動画は見てないけど、マイコン内蔵LEDテープ使ってるんじゃね? シリアルLEDでしょ
ぷらす、まいなす、信号線の3本だけで複数のLEDを制御できる >>462
動画投稿者の名前で検索すれば答えが出るんだなぁ
ttps://github.com/leonvandenbeukel 特大LED時計を作る意欲が少しだけわいた。
深夜にねぼけてても読める時計が欲しかったのよね
シリアルLED WS2812のテープはamazonでよく見かけるけど、WS2822のテープはないかな? マイコン入ったledテープってのがあったのか勉強になった 普通の5mmサイズでマイコン入ったフルカラーLEDすらあるしな… >>466
そもそも動画説明にgithubのURL貼ってあるしそれでもわからなかったってことじゃない? WS2812Bすげえな。安いし。
模型なんかに埋め込んでも楽しそう。 悪くはないが、一つのシステムに組む時にすべてのデータをシリアルで
送るために遅延が問題になることが懸念される WS2812はリフレッシュレートがそんなに高く無いから
それ自身が動いたりすると若干ちらついて見える
DotDSTtar(APA-102?)ならリフレッシュレート高いけど入手性が悪い もしかしたらArduinoじゃなくてAVRマイコンの質問にカテゴライズされるのかもしれません。
ソフト側は問題ないので、ハード的なほうの質問になるのですが・・・
現在、Arduino Unoを使って製作している装置に交差コイル式のアナログメーターを実装しています。
Sin/Cos/Comの端子が出ているタイプで、各コイルは片側あたり定格で30mAらしいです。
実測でSin<->Comが98Ω Cos<->Comが97Ω Sin<->Cosで196Ωなので、およそ±3Vで動作させられそうです。
ただ、今回の用途にはあまり針のレスポンスを要求していないため、電流は25mAでも大丈夫かと思ったので
とりあえずArduinoの5Vを多回転抵抗の真ん中の足で分圧してオペアンプ(NJM4556A)をボルテージフォロアにしたレールスプリッタで±2.5Vで動作確認したところ動きました。
(Comにボルテージフォロアの仮想GND(2.5V)、SinにArduinoのD9、CosにArduinoのD10を繋ぎました。D9,D10はデフォルト周波数=490.2HzのPWM制御です。)
そこで質問が3つあるのですが
1、レールスプリッタを使わずにArduino UnoのPWM出力を50%dutyにしてCommonに繋げても大丈夫か?(オペアンプが結構邪魔なので…分圧抵抗もパスコンも要るし…)
2、もし上記が問題ない場合にCommonのPWMの周波数をSin,Cosの制御と違う値に変更したほうが良いか?
(その場合Timer2が遊んでるのでD3かD11を使用する…D5,D6はデフォ976.6Hzだが高性能な方の外部割込みとアナログコンパレータを利用のためポートが使えない…)
3、さらにマイコンのGPIOが最大40mAまでみたいなので、出力に設定したD3とD11を纏めても大丈夫か?(プッシュプルを外付けする…?それならオペアンp(ry
→AVRマイコンのタイマー制御PWMはTCCRxAの上位4ビットとOCRxAとOCRxBを同じ設定にしたら2ポートが完全に同時のタイミングでH/Lが切り替わるのか?
→もし仮に全く同じタイミングで切り替わるとしたとしても、出力に設定したピンを纏めたりしてもいいものか?)
初心者なので思いつきで頓珍漢な事を聞いていたらすみません。よろしくお願いします。 >>478
1 ダメ
2 1がダメ故にダメ
3 ダメ 駄目すぎ
自分ならフォトカプラで絶縁して電源独立させるくらいするかも ガチ初心者なのですが教えてください。
書籍の自炊マシン構築に12MP以上のカメラが2台必要なのですが
カメラモジュールで作るよりCANONの中古デジカメを買ってきて
CHDKで制御したほうが安上りでしょうか? CHDKだろ
12MP以上のカメラモジュールすごく高そうw タイマ1の割り込みで効果音を再生したいのですが
下記のスケッチ(一部)でdelayMicro〜を削ると再生されません。
実験したところでは↓のようになっているようです。
sample-(B)-sample-(B)-sample-(B)-【A】-sample-(B)-sample-(B)…
つまり1sampleごとの割り込みが出来ていません。
sample-【A】-sample-【A】-sample-【A】-sample-【A】…
delayMicro〜を使わずに↑のようにするにはどうしたらいいですか?
break;や noInterrupt(); では上手く行きませんでした。
#include <TimerOne.h>
・
void setup() {
・
Timer1.initialize(A);
Timer1.attachInterrupt(play);
}
void play() {
int i = 0;
while( i < sample_raw_len ) {
OCR2B = pgm_read_byte_near(&sample_raw[i]);
i++;
delayMicroseconds(B);
}
} >>483
スキャンスナップのSV600じゃだめかな?
非破壊で自炊できるよ。
値段も安いし。 >>484
ジャンクで売ってるスマホのカメラ部分取り出して流用って難しいもんですかね?
>>487
全自動のやつ作ろうと思ってるんです(たまのエラーは人オペで回避)
2万5千円以内でやりたいなーと思ってます。 スマホのなんてコネクターの入手だとか配線だけでもそんな質問する奴には無理だと思うよ
スマホそのものをそのまま使ったほうがはるかにいい >>486
少しはスケッチの内容を理解するようにしたら?
Timer1.initialize(A); delayMicroseconds(B); の意味
play()のやってることを、理解してれば
「delayMicro〜を削ると再生されません」とか
「1sampleごとの割り込みが出来ていません」とか当たり前
(スケッチがそうなってる)なことくらい分かるはずだよ
あと、音を出す話題は、このスレの200前後に延々と出てたよ ■ このスレッドは過去ログ倉庫に格納されています