Arduino初心者熱烈大歓迎質問スレ part28 at DENKI
[2ch|▼Menu]
[前50を表示]
750:774ワット発電中さん
20/08/04 21:00:51 xylZtSCf.net
>>711
いただいたソースコードをもとに試しでLチカを想定したコードを作成したところ
どうにもタイマーを起動するとタイマーの内容のもの以外がすべて機能しなくなるようで…

Arduino標準のBLINK(D13)とタイマーチカ(D7 プログラム内LEDAに相当)の
同居想定として作成してみました。

URLリンク(pastebin.com)

これを起動するとloop内のものが一瞬だけ動いたかと思うと最初のタイマーが反応して以降
帰ってくることはなく結果的にBLINKは最初の点灯だけは起こり、その後機能せずタイマー内の点滅(LEDA)だけが点滅しました。

また、RunMilliSecondが100msではちょっと早すぎると思い2000にしてみても
減速はされず2000msとは程遠い速度で点滅しました。

>>713
こちら、サンプルコード自体は機能いたしました。
ものすごい多機能そうで理解できるまでちょっと時間かかりそうですが(汗
とりあえずサンプルコードの機能そぎ落としをしながら理解を進めたいと思います。


この4809を使ったArduino 価格は安いのですがUNOやNANOとはやはり大きく違うという事を思い知らされています・・・

751:774ワット発電中さん
20/08/04 21:39:01.13 5I5zF6uz.net
正規品買う気のない俺はAliで互換機見つけたと思ったら4808だった
とりあえず無印Nanoで足りてるしもうしばらく待つわ

752:774ワット発電中さん
20/08/04 21:48:37.85 ozm1pYih.net
>>722
今見たら色々間違ってましたね
ifの<=逆でした
× TCB0.INTFLAGS = TCB_CAPT_bm;
○ TCB2.INTFLAGS = TCB_CAPT_bm;(TCB2.INTFLAGS = 0;と被る)
まあ、他の方の情報のライブラリでいいと思います

753:おっさん
20/08/05 13:56:44 gBOjK4Cm.net
あるセンサーから測定値を取り出したいと考えています。
図面を見るとセンサーからのコネクタはRS485となっていたので
AMAZONで『KKHMF MAX485 RS-485 TTL−RS-485モジュールコンバータ』を購入しました。
ハッキリ言ってARDUINOではセットに付属されていたモノで遊んだ程度の知識しかありませんのですが、
見よう見まねで以下を作ってみたのですが何も検出されません。
ご指導いただけないでしょうか


#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
#define PIN_RTS 13

void setup(){
Serial.begin(9600);
mySerial.begin(9600);
digitalWrite(PIN_RTS, LOW);
int test = 0;
}

void loop() {
mySerial.listen();
test = mySerial.read();
Serial.println(test, DEC);
delay(100);
}

754:774ワット発電中さん
20/08/05 15:08:53.14 DjsUTd+i.net
>あるセンサー
の仕様がわからないと何とも言えない。

755:774ワット発電中さん
20/08/05 17:08:30.14 OlZDXTJ0.net
RS485はコマンド送ってアンサー待ちしないといけない
複数つながる可能性があるから局番指定したり
チェックサム生成したり面倒臭い
2線式と4線式があって2線式だと自分の送ったコマンドをそのまま受信するからそれを除外しないといけないし
それをSoftSerialでやろうとすると更に難易度が上がるよ

756:774ワット発電中さん
20/08/05 19:12:26 CwSaQ5AQ.net
PIN_RTS は、RE DE の両方に繋いでるのかな。
それならDEのときにREをディセーブルすることになるし、自分の送ったコマンドは受けなくてすむかな。
485でも垂れ流しでデータ送ってくるように設定できるものもあるけど、センサーマニュアルを見ないとなんとも。

ところで>>725のモジュールだけど、DEがプルアップされていたり RS-485が2線とかデリカシーを欠くような設計。

757:おっさん
20/08/05 20:01:36.62 cmxVoe24.net
返信が遅れてしまい申し訳ありません。
>>726さん
そのとおりですね。センサーは
URLリンク(www.optex-fa.jp)
これのRS485版になります


758:。 センサー自身に表示されている数値を手元で確認できるようにしたいと考えています。 >>727さん 2線式のコネクタが仕様されています。 今、手元にはセンサー単体のみで接続コネクタもない状態です。センサー片手に秋葉原を聞いて廻ったのですが手に入れる事ができず、コネクタに直接ワイヤーを繋いでいる状態です。 >>728さん RE DEともに13ピンに繋いでいます。 モジュールについては色々と教えていただきたいです。



759:774ワット発電中さん
20/08/05 21:29:00 OlZDXTJ0.net
>>729
FA用のセンサーって事は工場で仕事に使うものを初心者スレで質問してるのかな?
工場でarduinoやラズパイって見たことないけど

工場で使うんだったら盤屋に依頼するのがいいんじゃないか?
CC-Link用のがあるんだから三菱のPLCですぐできるでしょ

760:774ワット発電中さん
20/08/05 23:07:44 oYjST5U7.net
>>729
まずそのサイトでマニュアルダウンロードしたら?
そもそも電源入れただけじゃ通信してないんじゃないの

761:774ワット発電中さん
20/08/05 23:25:27 kUZCLsv3.net
>>725
そのセンサーの仕様書読んでみたけど
センサーの設定が有ってる(9600bpsに設定)として、まずRS485モジュールを扱うコードが必要だと思う(送受信設定等)
さらに、データを読み出すにはArduino側から読み出し命令を出し、それの返信としてデータを受信する必要がある

CD22 シリーズの通信仕様は以下になります。
通信方式 EIA RS-485 準拠(半二重:局番設定によるマルチドロップ接続には非対応)
伝送コード バイナリ データ長 8bit ストップ長 1bit パリティチェック なし
ボーレート 9.6k/19.2k/38.4k/57.6k/115.2k/230.4k/312k/460k/500k/625k/833k/920k/1.25M (bps)
ヘッダ / データ区切り STX / ETX 
■ コマンドフォーマット
送信コマンド : STX (コマンド) (データ 1) (データ 2) ETX BCC
受信コマンド(成功) : STX ACK (返信データ 1)(返信データ2) ETX BCC
受信コマンド(失敗) : STX NAK (エラーコード) 00H ETX BCC
   ※ STX(02H)、ETX(03H)、ACK(06H)、NAK(15H)、BCC は網掛け部の XOR 演算結果
コマンドの種類 : C(43H) 個別機能コマンド
W(57H) 設定の書き込み(Write)
R(52H) 設定の読み出し(Read)

判定結果読み出し 送信 B0h 02h 返信 00h (判定結果)
bit:0 = 1 の時 判定出力 ON bit:4 = 0 の時はそのデータが既読であることをします

762:774ワット発電中さん
20/08/05 23:47:41.32 ShwXW6pD.net
>>732
あんた親切だなあ
それともすでにメンバー登録してあった?
興味本位で言ったけど面倒だからやめたわ

763:774ワット発電中さん
20/08/06 00:00:03.69 v1UrSVbB.net
なんでやねん!

764:おっさん
20/08/06 00:45:28.45 sjKiJsBs.net
>>732さん
本当にありがとうございます。
>>729さんから「RS485はコマンド送ってアンサー待ちしないといけない」とありましたので、読み飛ばしていた仕様書の当該箇所をアナログ人間がわからないなりに解読しようとしています。これから色々試してみるつもりです。

>>733さん
もっともだと思います。
私は購入時にメンバー登録していましたが、メンバー登録が必要にもかかわらず安易にセンサーのサイトを貼ったことを反省しています。
不快な思いをさせてしまい申し訳ありませんでした。

765:774ワット発電中さん
20/08/06 01:10:35 dQgB9h/W.net
>>735
730です
想像ですが、予想した手順を記載します(RS485の通信したことない)( ^ω^)・・・
1.MAX485の出力ピンを出力ONに設定(DEをLOW>HI)
2.Serial.write(0x02);,Serial.write(0x57);,Serial.write(0xB0);,Serial.write(0x02);
Serial.write(0x03);,Serial.write(0xE6);(でたらめです)
3.Serial.flush()
4.MAX485の入力ピンを入力ON(REをHI>LOW)に設定(もしかしたら入力常にONでもOKかも)
5.MAX485の出力ピンを出力OFFに設定(DEをLOW)
6.データを受信

>>733
なんかネットで拾った

766:774ワット発電中さん
20/08/06 01:11:24 dQgB9h/W.net
1と2の間に少しディレイ入れたほうが良いかも

767:774ワット発電中さん
20/08/06 01:11:53 qXJLsa1c.net
6万もするセンサーポン使うのにデータシートすら読んでないとか
何かすげえな
おいらとは別世界の人だわ

768:774ワット発電中さん
20/08/06 01:17:


769:23 ID:dQgB9h/W.net



770:774ワット発電中さん
20/08/06 01:32:39 agsyJYCi.net
C22センサーも買う気か?

771:774ワット発電中さん
20/08/06 01:33:33 agsyJYCi.net
あ、ちゃうか
ロジアナでもつないどきゃ出力はチェックできるな
面白そうではある

772:774ワット発電中さん
20/08/06 01:35:36.32 agsyJYCi.net
でもじっちゃんがセンサーはIICかSPIだけにしとけって言ってたからやめとこう

773:774ワット発電中さん
20/08/06 01:43:29.11 dQgB9h/W.net
>>740
URLリンク(i.imgur.com)
ちょwwwおまwwww無理( ^ω^)・・・

774:774ワット発電中さん
20/08/06 02:38:22 6pGHWytI.net
>>739
2個買えばArduino同士1200mまで引き伸ばせたんじゃないの

775:774ワット発電中さん
20/08/06 02:47:48 dQgB9h/W.net
>>744
Aliあるあるネタだけど
これ2ポッチしたら、10個届くのよ(;´・ω・)

776:774ワット発電中さん
20/08/06 02:50:30 6pGHWytI.net
>>745
5個セットなのね

777:774ワット発電中さん
20/08/06 06:53:48 t89/X9dv.net
RS-485のインターフェース基板で2端子しか付いてないものって、安心して接続できるのは共通グランドが期待できる範囲だけだよな。

778:774ワット発電中さん
20/08/06 07:53:58 /RdpEj1Q.net
そういえば、昔どこかのスレでRS485をA、Bの2線にするか、
A、B、GNDの3線にするかの大論争があったな

779:774ワット発電中さん
20/08/06 09:51:01 ZdfEaf7+.net
>>748
どっちがいいの?

780:774ワット発電中さん
20/08/06 11:13:35 dQgB9h/W.net
>>749
どちらともいえない、運用方法や状況、考え方によって変わると思う
RS-485は2線(or4線)で通信することを前提として考えられた規格だと思うのだけど
2線通信で不具合が発生する場合の対処の1つがGNDを接続する方法だと思う
(また外部ノイズを減少される目的でのシールドとGNDを接続する事と別に考えたほうが良いと思う)
機器A−機器Bで通信するとして、電源が絶縁されてれば問題は起こりにくいと思う
また、電源が共有の場合でも、通信側を絶縁すれば問題は起こりにくいと思う
多分業務用の高い機器は電源も通信も絶縁されてる可能性が高い気がする(←そんなの持ってないよ・・)
GND接続の有無で通信に問題が有る状況だとしたら、GNDを接続する以外の手段で問題を解決した方が良いと思う

781:774ワット発電中さん
20/08/06 11:18:08.64 V8nKybkJ.net
>>747
RS485はA-B間の電位差で信号を送るのでGNDとは直接関係無いんじゃないか?
GNDはコモンモードノイズ対策のシールド線用でGND間の電位差が問題になる様な場合は片側のシールドを浮かすだろうし

782:774ワット発電中さん
20/08/06 11:35:29 t89/X9dv.net
RS-485インターフェースICのメーカーの資料を提示して議論するべき。

783:774ワット発電中さん
20/08/06 13:29:37 Uem2xBK8.net
>>752
正解!

784:774ワット発電中さん
20/08/06 13:45:07 zReUPyp0.net
部屋の換気具合を知りたいのでCO2センサーモジュールを買おうと思てるんだけどArduinoで使いやすいおすすめある?

785:774ワット発電中さん
20/08/06 13:48:21 LVR9/WgQ.net
URLリンク(ambidata.io)
自分が信じられるやつ

786:774ワット発電中さん
20/08/06 19:48:54.68 D82bmkE+.net
正解は越後製菓!

787:774ワット発電中さん
20/08/06 23:46:38 9X+QUB86.net
>>754
最低、アナログ出力かシリアル出力が付いてればいいんでないの?
ノイズのこと考えると、シリアルが1番かな?
センシング面での性能は分からんわ

788:774ワット発電中さん
20/08/08 07:27:15 zFGmnYK/.net
ARMとかRISC-Vだとavr/pgmspace.hにあるpgm_read_byteとか使わなくても
直接、プログラム領域


789:にある変数とか配列読めるんだね Arduinoの作法としてはavr/pgmspace.hにある関数群使うのがいいのだろうけど



790:774ワット発電中さん
20/08/08 11:26:30 3OmqZVpQ.net
それはArduinoの作法じゃなくて搭載してるマイコンAVRの仕様なんで・・・マイコンのデータシートや命令セットを読んでもろて
ちなみにAVRでも最新のmega0とかtiny1とかAVRDAシリーズだとLPM命令を使わなくてもLD命令でアクセスできるぞ

791:774ワット発電中さん
20/08/08 21:53:24.65 c5JF+g9Z.net
不注意で328Pじゃなくて168Pがのったnano互換ユニットを買っちゃったが、(4枚) 168Pの方が良いことって1つでもある?

792:774ワット発電中さん
20/08/08 21:56:40 3OmqZVpQ.net
マイコン的には容量が少ない以外の差がない ので値段が安いのであればそこだけ

793:774ワット発電中さん
20/08/09 03:06:38 YPAdskZ6.net
>>761
ありがとうございます。
やっぱりそうですよね。
失敗しちゃったなぁ。

794:774ワット発電中さん
20/08/09 23:03:42 h75D77Ag.net
画像だけが328Pだったりしたら助かるかもw

795:774ワット発電中さん
20/08/09 23:26:01.30 YPAdskZ6.net
>>763
いや、すでに目の前にあって、実際メモリ不足で書き込めないスケッチがあった。軽い目的に回そう。

796:774ワット発電中さん
20/08/11 16:34:20 sc8Rsbz2.net
DIPだったら石だけ交換する手もあるな

797:774ワット発電中さん
20/08/11 17:05:28.52 o8VO6J4g.net
>>765
文章読まない派?

798:774ワット発電中さん
20/08/11 23:14:07.51 elhVhKPk.net
消しゴムかけたら168Pだったとかあるのかなw

799:774ワット発電中さん
20/08/12 00:49:04.28 pWUR+CKI.net
>>767
中華マイコンなら無いほうがおかしいでしょ?

800:774ワット発電中さん
20/08/12 02:25:11.35 3cDz/9fL.net
やすりで削ってレーザー刻印だから消しゴムじゃ消えないぞ
全額返金で168Pが無料で手に入るチャンスだけどそういうのは無いなw
チップ単体だとTiny12の刻印削ってTiny85として売ってるのはよく見かける
動かないとかチップIDが違うといえば返金してもらえる

801:774ワット発電中さん
20/08/12 10:34:08.48 Dw8Xx6vV.net
ひでえな中華
50円の詐欺のために50円のコストかけてないか?

802:774ワット発電中さん
20/08/12 11:41:19 vVOY7Dqt.net
>>770
販売先に日本が多いと、評価が上がるとか、日本人は余り文句を言わないで諦める奴も多いとか?

803:774ワット発電中さん
20/08/12 16:13:10 o8fKKuef.net
リマークのコストは2円〜5円くらいじゃないかな

804:774ワット発電中さん
20/08/13 06:01:17 o12y0wFX.net
Aliexpressで買って届くまでに1ヶ月、2ヶ月待った挙句にそれが偽者だったらショックだよなw

805:774ワット発電中さん
20/08/13 07:39:35.43 /35kYQvX.net
さいきん10日くらいで届くようになってきた

806:774ワット発電中さん
20/08/13 08:10:29.74 vgb5Upkq.net
5月末にアリに注文した部品が昨日到着した。

807:774ワット発電中さん
20/08/13 09:56:16 54CFqnyS.net
URLリンク(forum.arduino.cc)
AVRDAシリーズのコアが仮完成したみたいだ

URLリンク(www.microchip.com)
VCC=1.8Vでもフルスピード24MHzで動く今年発売したばかりの最新のAVRマイコンだ
tiny1シリーズやmega0シリーズに順ずる高性能な周辺機能を装備のうえ、ADCが12bitだったりDACが10bitだったりパワーアップしてる
命令セットは↑から変わってないので何時も通り使える上に、push命令とsbi命令とcbi命令のマシンサイクルが2から1に短縮され割り込みルーチンなど高速化
ROM128k/RAM16kの大容量でEEP


808:ROMもアリ、なんと28pin仕様にはDIP版もあるぞ!



809:774ワット発電中さん
20/08/13 10:14:28 CNTX7rkP.net
まあ、届いただけマシだと思わねば
何ヶ月も届かず、注文したことすら忘れて、
そのまま闇に消えていった注文品がいくつもある

810:774ワット発電中さん
20/08/13 10:52:51 nihbEiNn.net
>>777
え?ODすらしないの? 

811:774ワット発電中さん
20/08/13 13:02:59 woY05jIv.net
こういう奴がいるから日本向けは舐められる
大変迷惑

812:774ワット発電中さん
20/08/15 21:52:40 +8PpU1Je.net
素人ですが質問させて下さい。
CH340シリーズのUSB変換モジュールで、USBからの5Vを給電しつつ信号レベルを3.3Vにするにはどうすればいいでしょうか?
少なくともCH340のVCCに3.3Vを入力する必要があるのですが、CH340の3V3端子とVCCをショートさせるみたいな話もありましたが、データシートを読んでも具体的にどうすればよいかわかりませんでした。

実際には↓のCH340Eが実装されたこのモジュールを使ってます。3.3Vという記載がありますが3.3Vで使う方法の記載はありません。
URLリンク(m.ja.aliexpress.com)

5V/3.3V切り替えができるモジュールもありますが、あれはチップのVCCへの入力前に5Vとは別に3.3Vへ降圧している?
そもそもCH340の3V3端子の使い方(用途)が不明です…

813:774ワット発電中さん
20/08/15 23:48:37 lJIHywWN.net
どのデータシートを読んだか知らんが
英語版
URLリンク(cdn.sparkfun.com)
V3端子は電源がVcc5Vで使う場合はデカップリング
Vcc3.3で使う場合はVCCに繋げってことらしい

FTDIのチッブなんかは内部で3.3Vを作ってる

814:774ワット発電中さん
20/08/16 00:46:27.37 TUSCKqbw.net
デカップリングってなに?

815:774ワット発電中さん
20/08/16 01:54:23.11 7teaR4JZ.net
>>781
ありがとう。私が見てたのはこちらですが内容的には同じですね。
URLリンク(www.mpja.com)
やっぱりUSBの5VをそのままCH340に使ってシグナルを3.3Vにするのは無理ぽいですね…
CH340のV3ピンは、5V給電時は3.3Vが出力されるので、チップ内で3.3V生成してるのだから、それなら5V動作時でも3.3Vで通信するモードがあってもいいのにと思ってしまった。
CH340積んでV5/V3.3切り替え付きのモジュールは、よく見ると別途レギュレターチップ積んでてそこで3.3V作ってるみたいでした。
素直に3.3V対応のUSBシリアルを買ってきます。
せっかくCH340単体で3.3V供給してるのになんか使い道無くてもったいないなぁ

816:774ワット発電中さん
20/08/16 02:00:15.42 9o/GovX2.net
USBシリアルなんて頻繁に買うものじゃないし
安さに釣られずおとなしくFTDIの買ったらええ
ワイは秋月で5V/3.3V切り替え可のやつ買った

817:774ワット発電中さん
20/08/16 02:32:48.53 cOqRpvih.net
>>783
その通り
CH340はIC内部でも3.3V作っているけど外部から3.3Vを供給しないと3.3VI/Oにはならない変態仕様
URLリンク(i.imgur.com)
CH340がいいのならボード上(モジュール上)に3.3Vレギュレータがあるやつを買うのがいい
URLリンク(www.aliexpress.com)とか
URLリンク(www.aliexpress.com)とか

818:774ワット発電中さん
20/08/16 03:58:53 NpkK4fjc.net
最悪だ
新しく買ったDUEに載ってるch340gにブートローダーが入ってないみたいだ
しかもこのボードicspピン付いてないし
Nativeポートは使えるけどProgrammingポートが全くデバイス認識されない
今度からicspピンついてる16U2が載ってるボードのみにしとこ

819:774ワット発電中さん
20/08/16 09:07:42 7teaR4JZ.net
>>785
ああ、なるほど!
CH340の3.3Vは自身のコア動かすためにあるのか!

>>784
はい、そうします(笑)

勉強になりました。

820:774ワット発電中さん
20/08/16 09:17:10.64 wvTH9f4z.net
>>786
CH340G自体にブートローダーって要る?

821:774ワット発電中さん
20/08/16 11:36:18 5lKcH6N8.net
aliで5vのprominiまとめて買ったんだけど、5v16mhzで書き込むと動作速度が半分になる。
3.3v8mhzで書き込むとオッケー。

間違えたんかなこれ?

ただ3.3v8mhzのやつでも、raw端子に繋げば5vで動かしてもいいんだよね?
確か12vくらいまで対応していると読んだことあるし。

822:774ワット発電中さん
20/08/16 12:20:19.74 9o/GovX2.net
中華クローンはすべて自己責任

823:774ワット発電中さん
20/08/16 12:54:45.54 y4+pmmSd.net
>>789
とりあえず OD しましょう。
耐圧はレギュレーターによるんじゃないのかな?
ヒューズリセットに12v使うので、チップ自体は壊れないだろうけど、
レギュレーターによっては、香ばしいことになるかも?
URLリンク(ht-deko.com)
ここの写真を見る限り、うちにある 5v版 だと思ってたものも全て 3.3v かも?
ずっと普通に 5v で使ってるわ。

824:774ワット発電中さん
20/08/16 13:37:01.84 43h4U1+R.net
モジュール上のクリスタルかレギュレータで判断

825:774ワット発電中さん
20/08/16 19:08:53 NpkK4fjc.net
>>788
要らんのか?良く解からんが
ch340gに原因がある事は確かだ

826:774ワット発電中さん
20/08/16 20:49:31.44 ToDaud7V.net
ブートローダーを何だと思ってんの?
CH340Gはマイコンじゃねえぞ

827:774ワット発電中さん
20/08/16 22:57:08.49 CXIwVcEz.net
CH552Gはマイコンです。
USBのほか、UART、ADC、アナログコンパレータ、タイマ、PWM を装備し、
CH340Gのように働くことができます。

828:774ワット発電中さん
20/08/17 01:08:25 z2plY6r8.net
>>794
止めたれ
勘違いして恥ずかしいのは、本人が1番分かってるのに、そういう傷口に塩を塗る様なことは

829:774ワット発電中さん
20/08/17 03:46:46.35 rDyAt7W1.net
では16U2は?

830:774ワット発電中さん
20/08/17 09:09:03 Oj0PccPL.net
>>797
16U2はマイコンとして売られているもの。
ユーザーがプログラムを書き込むかあるいは、メーカーにプログラムを書き込んで出荷するように要求されるもの。
CH340Gは、USB-シリアルのブリッジとして売られているものなので、16U2と同じようには考えられないと思う。
(MCP2200の中身がPIC16F1459でも、MCP2200をマイコンとは言わない。FT232もたぶん中身はマイコン)

CH340Gが動作しないなら、もしかしたら本当に中身がマイコンで、プログラムのミスなのかもしれないけれど
外面的には、部品としての不良とみなして考えるのが自然だと思う。


電子工作をする一般エンドユーザーから見れば、
16U2が動いてなさそう…
16U2用のプログラムを書き込んだら治るかも
ハード的に破壊されているなら、少なくとも 16U2を載せ替えて、その上で16U2用のプログラムを書き込む必要がある。

CH340Gが動いてなさそう…
パターンやほかの部品に問題がないなら、CH340Gを載せ替えれば動くはず。

なんにせよ、>>786を書いた人のの主旨は「CH340Gが不良らしい」ということなので「ブートローダー…」はもういいよね。

831:774ワット発電中さん
20/08/18 23:16:45 2ssJrpkT.net
数年前に書いたスケッチを、久しぶりに改造しようかと思ったら、
PROGME


832:M prog_uchar hehehe[] の宣言が通じなくて、 コンパイル通らなくてあせった。 こんな時代なのね。 const char hehehe[] PROGMEM プリプロセッサにしても意味不明な、、、



833:774ワット発電中さん
20/08/19 08:18:21 oUw0VpPB.net
PROGMEMの部分は__attribute__ ((progmem))だからね
だから宣言ではこうなってることになる
const char hehehe[] __attribute__ ((progmem))

するとprogmemというコンテキスト名で領域が確保される

834:774ワット発電中さん
20/08/19 08:26:50 oUw0VpPB.net
インラインアセンブラでこうしてやるとバイナリファイルをprogmemとして確保できるらしい

URLリンク(pastebin.com)

使い方はhogehoge.binがバイナリファイルでHOGE01がそのデータに割り当てたいシンボル名として
C言語で
IMPORT_BIN("hogehoge.bin", HOGE01);
extern const uint8_t HOGE01[];
とやればいいらしい

835:774ワット発電中さん
20/08/19 08:47:59 oUw0VpPB.net
間違えたコンテキスト名じゃなくてセクション名ね
progmemって要するにセクション名をprogmemにしてるだけっぽいよ

836:774ワット発電中さん
20/08/19 08:58:45 oUw0VpPB.net
一箇所ミスしてた
URLリンク(pastebin.com)

837:774ワット発電中さん
20/08/19 12:05:50 oUw0VpPB.net
実際にteensy4.0で試してRGB565の画像データファイル>>801でインポートして
LCDに表示できた
画像データはGIMPでCソース形式で保存するとRGB565に変換できるので
それをバイナリデータとして書き出す自作プログラムを作成
Arduino IDEではファイル名は絶対パスで指定しないとエラーが出たよ

838:774ワット発電中さん
20/08/19 12:59:20 xUkHyJPc.net
そういうのできちゃう人って
神様にしか思えないんだが
何がどうなってるんだろう

839:774ワット発電中さん
20/08/20 02:32:40.86 giZ5hrAX.net
ほんとに好きで勉強(・・・というか勉強しようと思ってやるんじゃなく好きで学ぶというか・・・勝手に調べる)してずっとやってりゃそのうちその神様とやらになれるよ

840:774ワット発電中さん
20/08/20 19:22:22 8qEcqUzL.net
pro microの3.3V/8MH版、USB/HIDなスケッチをテストしてて、ボード設定Leonardoで書き込んだら死亡しちゃった
これってbootloader焼きなおせば復旧するのかな? ちょっとすぐ試せないのでわかる人いたら教えてください

841:774ワット発電中さん
20/08/20 19:39:22.55 tTPb70mC.net
物理的に壊してなければ正しいスケッチとヒューズ設定にすればおk

842:774ワット発電中さん
20/08/21 04:48:16 lxCC6fzj.net
ヒューズ計算は、ここで
URLリンク(www.engbedded.com)

各種の説明やデフォルト値は検索

843:774ワット発電中さん
20/08/21 18:43:23 B4smGZm+.net
>>807
書き込みをWindows上で行っているならば、pro microをH/Wリセットした直後に
ハードウェアマネージャでBootLoader用のCOMポートがが見えるようならば
IDEでブートローダを書き込めば直るかも
BootLoaderが見えない場合にはICSP経由でBootLoaderを書き込む
それでもダメだとわかんない

844:774ワット発電中さん
20/08/21 18:57:12 gUV1usUn.net
一度書き込めて二度目から書き込めなくなったときはこれ試してみて

612 名前:774ワット発電中さん[sage] 投稿日:2019/12/06(金) 20:41:59.26 ID:9sDeXhF9
>>611
リセットの手順ちょっと違った
pro miniの場合だけどこんな感じ
参考にしたページのアドレス貼れないからコピペ

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

845:774ワット発電中さん
20/08/21 23:07:39.40 1pzV0KtY.net
俺のArduinoなんかブートローダ書き込み後1回目はスケッチ書き込めて
2回目からは書き込めない
そしてまたブートローダを書き込むとやはり次の書き込みは成功して
その次は失敗する
ゴミ

846:805
20/08/22 07:50:49.14 K//t8YpT.net
805です。コメントありがとうございます。Fuseビットは変わってなくbootloader書き込み直しだけでで復旧できました。
中華ProMicro2種(5V/16MHz、3.3V/8MHz)があって付け替えて試していたところボード設定を間違えました。
5V/16MHz⇒Leonardo、3.3V/8MHz⇒Liliypad USBと設定しておかないとおかしなことになっていたようです。
あとHIDなスケッチは曲者ですね。スケッチ書き込み後にCOMポート見失ったり、ポート番号が変わったりすることがあります。
環境はwin10ですがCOMポートがスゴイ勢いで増えていってます・・・いらないの消さないと・・・

847:774ワット発電中さん
20/08/23 07:17:56.26 sIJ7Fw4z.net
>>813
> あとHIDなスケッチは曲者ですね。スケッチ書き込み後にCOMポート見失ったり、ポート番号が変わったりすることがあります。
HID と COM が混在するのが難しいのですかね?
vUSB 関連を昔にいじったけど、結局、STM32 に落ち着いた。
STM32 も HIDデバイス にすると COMポート を見失うけど、
スケッチ書き込み時に、リセットを押すだけなので、そんなに困ってない。
micronucleus 搭載の Tiny85 も、それなりに癖はある。

848:774ワット発電中さん
20/08/23 16:38:49.67 rpPB0WUf.net
HIDでCOM見失うって良く見るけど、HIDモードが使えるやつはブートローダモードの
時しかスケッチ書き込めるCOMが見えないだけじゃないのかな
AT32U4(Pro Micro互換ボード)はH/Wリセットして8秒間だけスケッチが書き込める
COMポートが見えるようになる動作が普通みたいだけど
ブートローダー書きこんだ直後しかスケッチ書き込めないってやつも、IDEで書き
込むとき、書き込み開始してからタイムアウトするまでにH/Wリセットかければ
書き込めると思うけど

849:774ワット発電中さん
20/08/23 17:49:11 85oLwZpr.net
OTGと給電が共存出来ないAndroidタブレットを4Gモデム代わりに使ってArduinoに簡単な
信号を送る場合、イヤホンジャック経由で通信するのが簡単ですかね

850:774ワット発電中さん
20/08/24 03:00:41.63 TVDVmhG+.net
>>815
> HIDでCOM見失うって良く見るけど、HIDモードが使えるやつはブートローダモードの
> 時しかスケッチ書き込めるCOMが見えないだけじゃないのかな
それですよ。ただコンパイル終了時にタイミング良くリセットしないといけなかったり
シリアルモニタ開けなかったりするのが、見た目からすると不安定だったり、
COMポート が見失うという表現になる。

851:774ワット発電中さん
20/08/25 20:00:25.57 3ENwhmyY.net
Arduino nano every(ライターATSAMD11D14Aと分離したもの) をPCBAで作りたいと思っています。
URLリンク(www.avrfreaks.net)
よさげな情報がありました。
Nano every:
ATSAMD11D14A bootloader : help to reprogramme D11 firmware;
ATSAMD11D14A firmware : simulate USB device,write arduino sketch to ATMEGA4809.
4809 bootloader : needn't
4809 firmware : any sketch you burn to it through Arduino IDE
という事が書いてありましたが、これって、ATSAMD11D14Aを考えれば、
実装された生の4809にUPDI書込みが可能だという事ですよね。
それで、もしも先人で成功されている人がいらっしゃったら、
真似させてもらおうと思っています。
どなたか、いらっしゃいますか〜?

852:774ワット発電中さん
20/08/25 22:21:59 SeG+YEKB.net
マネするもなにもその下に手順書いてくれてるやん

853:774ワット発電中さん
20/08/26 13:32:54.32 2EreZomW.net
ぷろみにって「スケッチを書き込んでいます」が出た瞬間にリセット押して書き込むのが当たり前だと思ってた。
DTRのない4線のシリアルケーブルしか持ってないから…

854:774ワット発電中さん
20/08/26 23:28:37 U74fkIJ5.net
はんだごてが苦手なので、Seeeduino XIAO の
ピンを30セット分誰かに依頼したいです。。。

855:774ワット発電中さん
20/08/27 02:22:43.21 Vte6m47Q.net
>>821
お前電電板には向いてないな

856:774ワット発電中さん
20/08/27 06:49:19.00 e17oAGXU.net
やりはじめたら途中で苦手ではなくなると思う。
だから、何かで練習するのがおすすめ。
適性次第で練習してもできない人はいるけどね :-P

857:774ワット発電中さん
20/08/27 07:09:49.16 HVFQDfdx.net
>>821
最寄の工業高校前で人材募集

858:774ワット発電中さん
20/08/27 10:57:05.50 u5pWjfTe.net
そしてDQNっぽい奴に暴力で支配され金をせびられる毎日

859:774ワット発電中さん
20/08/27 12:24:32.06 rFA2i7rY.net
自分でピンヘッダを何度かやったけど、すっごく汚いんだわ。たまに接触していなかったり。youtube見てると感心するわ。ルーペ付き半田ごて台って初心者にいいかな?宙に浮かせての作業はむしろ難しくなりそうだけど。手先の器用さは普通だお。一応、安い温度設定コテは尼に注文した。
ほんと、誰かにやってほしい。。。

860:774ワット発電中さん
20/08/27 12:30:44 9e8ZgKws.net
趣味で20年以上安いコテを使っていて、最近温度調整コテ買ったら使いやすくて驚いた
濡らして温度下げて調整しなくていいのでホント楽
はんだ付けで悩んでいる人には救いの神だと思います

861:774ワット発電中さん
20/08/27 12:59:10.36 ThnPwTEo.net
ホムセンに売ってるような安い温調コテでも十分
適正温度にするだけで全然違うよ
温度はマジ大事

862:632
20/08/27 13:16:51.35 gTWGCzRg.net
ほうなん?
ハッコーのブースト付きのやつしか使ったことないけどそれとは違うよね。
どんな風に使いやすいん?

863:774ワット発電中さん
20/08/28 14:03:14.17 koz9K3VS.net
最近買ったMEGAの互換機の速度が遅いような気がしたので、
void loop() {
digitalWrite(2, HIGH);
digitalWrite(2, LOW);
}
の速度(周波数)を測ったら、UNO(純正)が112kHz, MEGA2560(互換機)が89kHzで、
やっぱりMEGAの方がUNOより遅いんだけど、これってそういうものなの?
それとも互換機なのがいけないの?
ちなみにTeensy 4.1だと9.8MHz出ました。

864:774ワット発電中さん
20/08/28 14:09:23.52 koz9K3VS.net
あ、loopのオーバーヘッドがあるから
void loop() {
while(1){
digitalWrite(2, HIGH);
digitalWrite(2, LOW);
}
}
とかにしないといけないのか。
それでもやっぱりMegaの方が遅い。

865:774ワット発電中さん
20/08/28 16:11:16 2gQhjGfF.net
>>831
タイマー使って出力ピンで計測しないと確かなことは言えないんでは?
例えばNanoの例
URLリンク(neo-sahara.com)

866:774ワット発電中さん
20/08/28 17:11:16.18 koz9K3VS.net
とりあえず今気にしているのはCPUそのものの速度ではなく、
digitalWrite()の速度
です。
で、いろいろググったら知りたかったことが書いてあるブログにたどり着きました。
URLリンク(blog.livedoor.jp)
やっぱりdigitalWrite()はMEGAの方が遅いということのようです。

867:774ワット発電中さん
20/08/28 18:28:45.05 a7sC8Yqz.net
>>833
あなたの>>8282,831からそれをエスパーするのは無理だろうね
その速度比べて何の意味があるの?という疑問は別にしても

868:774ワット発電中さん
20/08/28 18:31:27.93 dRo4r1qE.net
せっかくレスしてくれた人に礼の一言もなく
自分の言い分だけを書きなぐって去っていく
これが美しい国ニッポンのゆとりさんw

869:774ワット発電中さん
20/08/28 18:43:54.01 koz9K3VS.net
>>834
どう書けば通じたのでしょうか?
ポートを直に触らずにArduinoの標準のライブラリだけで
I/Oをアクセスするときの性能を知りたかったんだけど
それって意味無いのでしょうか?
Arduinoに関してはは全くの初心者なので、
初心者にわかるように説明していただけるとありがたいです。
(いわゆるコンピュータに関する経験はそれなりにあるので、
一般的な専門用語や概念は説明無しに使っていただいて構いません。)

870:774ワット発電中さん
20/08/28 18:53:37.77 koz9K3VS.net
>>835
え?そこまで言われるようなほどのことした?

871:774ワット発電中さん
20/08/28 18:53:50.56 4Mv13uHP.net
質問しておいて、本人の意図しない回答だったにしてもなんらかのレスを返すのが一般常識ってことなんでしょ。

872:774ワット発電中さん
20/08/28 18:56:28.26 koz9K3VS.net
>>838
了解しました。以後気をつけます(`・ω・´)

873:832
20/08/28 19:00:09 yWhSa4tP.net
>>836
あー、ごめん
君の相手は俺の能力では無理
他の人に聞いて

874:774ワット発電中さん
20/08/28 19:08:19.95 koz9K3VS.net
>>840
なんだよ、じゃあ最初から出て来んなよ
(意味:ありがとうございました)

875:774ワット発電中さん
20/08/28 19:51:44.76 QY+m5lZO.net
また釣りか
はい、次の方どうぞ

876:774ワット発電中さん
20/08/28 23:29:17.30 yHUzjTdD.net
どういたしまして

877:774ワット発電中さん
20/08/28 23:37:25.32 F4Cy4ERo.net
>>ID:koz9K3VS
最初質問を読んだときはただ頭が弱いだけかと思ったが
どうやらそれに加えて人間のクズでもあるようだな
相手しなくてよかったな

878:774ワット発電中さん
20/08/29 00:24:04.19 jhi/eTM1.net
Arduinoのビット数を可変にしたいです。
ArduinoIDEだとF_CPUが定義されてしまうことまでわかったのですが、
F_CPUを定義しないで書き込める方法があったら教えてください。
よろしくお願いいたします。

879:774ワット発電中さん
20/08/29 04:43:11.44 Owbe7hPa.net
bit数ってのはマイコンのアーキテクチャで決まってる(Arduinoに乗ってるAVRなら8bit)
そしてF_CPUはクロック周波数であって、今載ってるマイコンのクロック周波数(UNOやNanoなら16MHz)ソフトウェアに教えているだけでbit数とは全く関係ない
マイコンのクロック周波数は普通は決め打ちしておくもの
そもそも基板に搭載されている水晶発振子で物理的にクロックが決まっているので・・・
(UNOやNanoに載っているATmega328Pは分周器を持ってるから半分にしたり1/8にしたりはできるが、それもヒューズビットというプログラムとは違う所の書き換えが必要)
F_CPUは「クロックを設定している」のではなくて『ボードに載ってるマイコンのクロックを教えている』のでハードウェアを何も変更してないのに間違った値にすれば動作がおかしくなるよ

880:774ワット発電中さん
20/08/29 10:06:25.94 UpK3pxKw.net
>>845
あなたの言う「ビット数」、「可変」ってどういうもの?
壮大な勘違いにならないよう、もうちょっと

881:774ワット発電中さん
20/08/29 11:21:58.96 jhi/eTM1.net
>>847
クロックと書き間違えました

882:774ワット発電中さん
20/08/29 12:22:51.45 bFb4hpOH.net
パソコンみたいにオーバークロックしたいみたいな感じ?

883:774ワット発電中さん
20/08/29 12:51:47.36 jhi/eTM1.net
>>849
自由にクロックを変えられれば動作スピードとか電力とかいろいろ調整できるんじゃないかと思ったのです。

884:774ワット発電中さん
20/08/29 12:52:19.62 jhi/eTM1.net
>>849
オーバークロックみたい感じです

885:774ワット発電中さん
20/08/29 13:55:22.12 faoNT0MJ.net
>>845
こんなことかな?
URLリンク(neo-sahara.com)

886:774ワット発電中さん
20/08/29 13:56:42.55 FlhOGPB6.net
PCで使われるCPUみたいなことは出来ないかな
動作クロックっていうのは水晶発信器などのクロックジェネレータって部品で
作られた信号の周波数で、これが8MHzだったり16MHzだったりするけど、
基本的に固定値なので周波数を上げ下げできない
発信器の動作クロックは下げられないけど、そのままでは早すぎるって場合には
分周って処理でクロックを間引いたりする
逆に上げたいとき(PCのオーバークロックもこの一種)には、ていばいき(逓倍器)を
使って発信器の周波数を2倍とか3倍とかにして使用する
で、Arduinoは逓倍器を積んでいないので、取り出すデジタル信号の周波数を
下げること出来てもそのままで上げることは出来ないよ

887:774ワット発電中さん
20/08/29 14:47:21.05 YOQMSLIZ.net
serial通信速度もクロック依存、簡単ではないな

888:774ワット発電中さん
20/08/29 17:33:11 bFb4hpOH.net
省電力なら元々省電力を目的とした機器を選ぶようだと思う

889:774ワット発電中さん
20/08/30 01:16:22.26 SAneNFwO.net
横からだけどatmega328pは4MHzで動かすと1.8ボルトで動くようだが、そうなるとarduinoIDEの範囲外?ボード設定に触れたネット情報がうまく探せなかった
ニッ水二本で動くなんてすごいなあと思ったので試してみたい

890:774ワット発電中さん
20/08/30 01:23:47.17 PE4Y28UO.net
ATmega328PがいいならMiniCore使えば?
URLリンク(github.com)
ヒューズビットの設定とかわからん!でもICSPつないでブートローダ書き込みコマンドから内蔵RCで1MHz〜で設定できるでしょ
まぁ1.8Vで使いたいならATmega328Pなんてロートルじゃなくて最新のAVR128DB32とかのほうがいいと思うけどね
まだベータバージョンだけどArduinoCoreもあるし(DxCore)
URLリンク(github.com)
AVRDAシリーズは1.8V〜5Vまでの全てのVCC電圧で〜24MHzまで動作保障だよ

891:774ワット発電中さん
20/08/30 09:47:29.11 seV49HTY.net
とりあえず動かすだけなら昇圧させればエネループ1本で5V100mAぐらいまでならいけるんじゃねーの?

892:774ワット発電中さん
20/08/30 09:55:44.67 HaeeiEDT.net
思考実験
Arduino自身のI/Oで、チャージポンプ昇圧して
自分の電源をまかなう、なんていうソフトできるんかな?

893:774ワット発電中さん
20/08/30 10:10:15 PE4Y28UO.net
ATmega328Pをを電池2本で動かすとして・・・
内蔵8MHzのクロックを利用するとしてヒューズのCKDIV8は有効にしておく
これでPOR時はクロックプリスケーラが効いてて1MHzだからどんな電圧でも動作する
起動後はタイマーを使ったPWMでDCDCコンバータを駆動(昇圧チョッパーなりチャージポンプ+リニアレギュレータなり)
(バッテリーからの電源にはダイオードを順方向で入れておくこと)昇圧後の電圧は分圧しておいてADCかACで1.1Vの内部基準電圧でモニタ
必要な電圧にまで上昇したらクロックプリスケーラを解除と同時にDCDCコンバータ用のPWMに使ってるタイマーを8分周に変更してメインプログラムへ

で出来るんじゃないかな

894:774ワット発電中さん
20/08/30 10:22:27 SAneNFwO.net
>>857
こういうのがあったのか、ありがとう
arduino 4mhzで検索してもなかなか出てこなかったので
セラロックつけなくちゃと思っていたけれど内蔵RC発振でも使えるのか
部屋の照明のリモコンを増やしたかったんです。なので少ない電池で動かしたい

895:774ワット発電中さん
20/08/30 10:29:38.30 SAneNFwO.net
>>858
待機電力が問題になるかなと思ったけど、待機時はどこも導通してなくてスイッチオンで昇圧回路から起動してブートローダーなしのマイコンも起動すればリモコンとしていけるのかな

896:774ワット発電中さん
20/08/30 10:48:11.96 HaeeiEDT.net
>>860
すんません、、、
ナバホ語かピダハン語を聞いているような
難しさで理解できませんでした
ガンダムに例えて解説してくれませんかw

897:774ワット発電中さん
20/08/30 11:09:50 uHzHYO3q.net
>>861
内蔵RCは精度が悪くシリアルで文字化けする場合がある
固体毎にOSCCALで調整すると改善するが、
-10℃〜40℃など温度変化の激しい場所では調整し切れない
基本クロック精度が悪いと、タイマーを使うディレイも狂って
周波数カウンタ、IRリモコンなどの用途で問題が発生する場合がある

898:774ワット発電中さん
20/08/30 12:22:08 SAneNFwO.net
>>864
arduinoを一台arduinoISPとして,atmega328pに直接?書き込んでいるのでシリアル通信できない問題は影響なさそうです
簡易オシロスコープで確認したところ赤外線の38khz も少しずれていたんだけどアイリスオーヤマの LED 照明は認識してくれました
季節による温度変化で駄目になるかもしれないな

低電圧動作を目的に4メガヘルツで動かすならセラロックが必須であれば精度も上がるのかなと思っていました
内蔵 RC 発振でも4メガヘルツで動くようなので挑戦してみます
いろいろありがとう!

899:774ワット発電中さん
20/08/30 12:23:40 gSNhVxX+.net
>>864
そうなんだけど、>>857 のAVR128DB32だと、温度範囲は書いて無いが、ちゃんとキャリブレやってるから、UARTでも大丈夫って書いてあるな
URLリンク(github.com)

なんか面白そう

900:774ワット発電中さん
20/08/30 13:53:49.08 PE4Y28UO.net
>>865
16MHzのクリスタルがついてるとしたら外部水晶用の内部発振回路を全振幅発振器から低電力発信器に切り替えて
かつプリスケーラを4分周に設定すれば何もハードウェア的な改造しなくても水晶の精度で4MHzで動くぞ

901:774ワット発電中さん
20/08/30 13:54:57.51 PE4Y28UO.net
追記
内部発振回路を全振幅から低電力に切り替えるのは全振幅発信機がVCC=2.7V〜しか動作が保障されてないため
切り替えはヒューズビットでどうぞ

902:774ワット発電中さん
20/08/30 15:06:17.76 SAneNFwO.net
内部発振回路に種類があったのは知らなかった
どうもありがとう調べてみます

903:774ワット発電中さん
20/08/30 19:17:38.58 P7StJInc.net
みんな006P嫌いなの?

904:774ワット発電中さん
20/08/30 19:22:19.04 SAneNFwO.net
テスターで仕方なく使ってる程度

905:774ワット発電中さん
20/08/30 19:48:12.81 uG42dl0z.net
UNOのACアダプターって何ボルトがいいの?

906:774ワット発電中さん
20/08/30 20:22:52.08 gSNhVxX+.net
>>872
仕様上は7V〜12Vだけど、レギュレータICの発熱考えると、7Vに近い電圧がいい
自分は9Vのアダプタ使ってる

907:774ワット発電中さん
20/08/31 23:26:55.93 MuP4fU0P.net
安価な温湿度センサーであるところのDHT11で、気温と湿度を測りたいんですが、何度やってもnanになっちゃって困っています。
以前に使ったときは問題なく使用できたので、プログラムは間違ってないと思います。
VDDは5Vで動かしているのですが、シリアルプロッタで波形を観測したところ、一定の電圧(4V程度)を出力し続けているようです。
DHT11はデジタルのシリアル出力だったはずなので、この時点でおかしいと思うのですが、このような現象に心当たりはないでしょうか
Arduinoを変えたり、DHT11も複数試してみました。
回路が間違えてんじゃないかって思うのですが、データシート通りなのと、以前動いたのが気がかりです。
また、足りないところがあれば、補足するので教えて下さい。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

1310日前に更新/292 KB
担当:undef