Arduino

Arduinoと互換性のあるオープンソースのハードウェアおよびソフトウェアの開発者向けのQ&A

2
ArduinoでのOOPとインライン
私はかなり長い間プログラミングをしていますが、ArduinoとAVRプログラミングは初めてです。これらのマイクロコントローラーのプログラミングに関して私が持っている主な質問は、オブジェクト指向クラスでのコードの設計と多くの例で見た従来のインラインプログラミングでは大きな違いがあるということですか? 言い換えれば、Arduino / AVRコントローラーの世界では、クラスを利用してメモリとパフォーマンスを節約したり、その逆を行ったりしますか? たとえば、クラスがあるとします。 class SomeClass(){ private: int x; int y; public: void foo(); void bar(); } SomeClass thisClass; thisClass.foo(); thisClass.bar(); 次のように、よりインラインでプログラムを設計すると、パフォーマンスやメモリが向上しますか? int x; int y; void foo(){ /*** Do something ***/}; void bar(){ /*** Do more stuff ***/}; Stack ExchangeとGoogleでいくつか検索してみましたが、見つけることができた最も近いものを探している答えが見つかりませんでした。このStack Exchangeの質問でした。 私がこれについて尋ねている理由は、できるだけ軽量である必要があるプロジェクトがあり、この環境で自分のプログラムをどのように設計すればよいのかわからないためです。 編集する 答えてくれてありがとう、これは物事に光を当てています。はっきりしない点が1つあります。 次のようにu8glibを利用する設計中のクラスがあるとします。 class UserInterface{ private: …

1
Arduinoの電源自動選択ロジックは、調整された5VとUSB 5Vを短絡させますか?
Arduino UNO r3のリファレンスデザインから、Vinが6.6V未満の場合、USBVCCはmosfet T1を介して+ 5Vに接続されることがわかります。Vinが6.6V未満の場合、これは2つのソースを短絡させませんか?レギュレーターU1(NCP1117)のデータシートには、5Vバージョンの入力範囲が6.5Vと記載されています。 この質問は、ArduinoをUSBと5Vピンで同時に給電できるかどうかを研究しているときに頭に浮かびました。そうしないようにという多くの警告があり、とにかく大丈夫だと言う人もいます。Vin / PWRINが接続されていない場合、または6.6V /〜7.3V未満の場合、これによりUSB 5Vが外部5Vと短絡することを理解していますが、これが設計上とにかく発生する可能性があることを考えると、どれほど悪いか(上記の理論が正しい場合) )?

5
Arduinoのデジタルピンから直接リレーを接続することが望ましくない理由
Arduinoを介したリレーの制御に関するさまざまな回路図を調べた後、ほとんどの場合、リレーはIから5ボルトの出力を直接リレーに供給するのではなく、個別の電源をリレーコイルに切り替えるために使用されていることに気付きましたArduinoの/ Oピン。たとえば、5ボルトのDPDTリレーと小型のDCモーターがあります。Atmel328プロセッサを使用して、Arduino UNO(SMDクローン)から直接両方を駆動したいですか?続行することをお勧めしますか? そうでない場合(可能性が高い): 誰かが詳細な説明をすることはできますか?現在の制限などに関する重要な注意事項もあるでしょうか? Arduinoを危険にさらすことなく、そのようなコンポーネントをどのように制御できますか?これを達成するためのいくつかの一般的な手段は何ですか? 同様に、一般的にArduinoボード(または任意のマイクロコントローラーユニット)に損害を与える可能性のある他のデバイスは何ですか? 私は非常に慎重になりたい初心者です。ありがとう。


1
ウッドフェイスの7セグメントLED
これがこの質問に適切な場所かどうかはわかりませんが、このような製品のために7セグメントディスプレイをどのように投影または木材に埋め込むかについて誰かが知っていますか? http://www.amazon.com/Cube-Wood-LED-Alarm-Clock/dp/B00D6DI0LEの完全な製品情報 もう一つの例: 送信元:http : //www.selectism.com/2013/11/27/a-wooden-led-alarm-clock-and-wireless-bluetooth-speaker-from-gogroove/
8 led  display 

2
Arduinoシステムで8 MHzおよび3.3 VでATmega328Pを実行することの影響は何ですか?
私は3.3 Vで動作するカスタムarduinoに取り組んでいます。レギュレーターやUSBチップはありません(電力消費用)。チップを16 MHz / 3.3 Vでオーバークロックすることは一般的に問題ないと聞いていますが、とにかく仕様の範囲内に保ちたいと思います。 まず、8 MHzで実行するには、水晶を交換する必要があるだけですか?または、他に何かしなければならないことはありますか? 次に、新しい速度を反映するためにコードを変更する必要がありますか?このプロジェクトでは、NilRTOSオペレーティングシステムとミリ/遅延機能と共に、シリアル、SPI、およびI2C接続を使用しています。これらのいずれかが壊れますか?コードの実行は著しく遅くなりますか? 第三に:どのようにチップをプログラムできますか?Arduino Unoで16 MHzでプログラムしてから、カスタムarduinoに移植しても大丈夫ですか? 4番目:消費電力は8 MHzで変化しますか? ありがとう!
8 atmega328 

4
SoftwareSerialはATTiny85 / 84の対象外ですか?
ATTiny85でSoftwareSerialを使用したいのですが、Googleでグーグルすると、いくつかのプロジェクトがそれを使用していると主張しています... https://code.google.com/p/arduino-tiny/からハードウェアをダウンロードしましたが、 SoftwareSerialを追加してコンパイルするには、次のようにします。 fatal error: SoftwareSerial.h: No such file or directory ボードをUNOに切り替えると問題が解決するので、そのままにしておきましたか?どうすれば修正できますか?

2
内部抵抗と外部抵抗のパフォーマンス
内部と外部のプルアップ/ダウン抵抗で配線されたボタン間に、パフォーマンス上の大きなトレードオフはありますか?これとこれのような単純なボタンを配線するときに、外部抵抗の使用を説明するチュートリアルがたくさんあります。ただし、Arduino / AVRには内部プルアップ抵抗が含まれているため、ここに示すように、外部抵抗なしでボタンを配線できます。 抵抗を追加して設計を複雑にする理由はありますか?

6
無線アップグレード?
デバイスに物理的に触れたりケーブルを張ったりせずに、arduinoのソフトウェアをアップグレードできるようにしたいのですが。できますか? それを最も簡単にする無線プロトコルを選びます。
8 wifi  bluetooth 

2
オブジェクトをパラメーターとして関数に渡すにはどうすればよいですか?
小さなゲームを作っていて、ハイスコアを保存したい。次のように、スケッチファイルの先頭にHighscoreクラスを作成しました。 class Highscore { public: String name; int score; String toString() { return this->name + " - " + (String)score; } Highscore(String name, int score) { this->name = name; this->score = score; } }; setup() { // etc 今。スケッチの下部近くに、Highscoreオブジェクトをパラメーターとして取りたい関数がありますが、コンパイラーでは許可されません。例: void writeHighscore(Highscore hs) { File f = SD.open("high.txt", FILE_WRITE); // Do …
8 c++ 

2
タイマーを使用してISRの変数を更新する方法
Timer3の周波数をカウンターで確認しようとしています。揮発性として宣言されたカウンターの値はISRでインクリメントされ、毎秒合計がメインループに表示され、値はゼロにリセットされます。 タイマーは正しく設定されています。(3Hzタイマーを選択すると、LEDが点滅します) 問題 カウンターはインクリメントされません。出力は次のとおりです。 Setup Completed tick: 1 tick: 0 tick: 0 tick: 0 コード volatile int cont = 0; void setup() { Serial.begin(9600); pinMode(13, OUTPUT); // Initialize Timer cli(); // disable global interrupts TCCR3A = 0; // set entire TCCR3A register to 0 TCCR3B = 0; // same for …

2
電源電圧の混乱
私はこの記事に出くわしました:Arduino:どのアダプターですか?。 それは、外部電源が9-12Vであるべきだと言います。私のArduino Unoは5VのUSBからも電力を供給できるので、それは私を本当に驚かせます。 後で彼は9Vピンについて話します。しかし、私の場合は5Vと3.3Vのピンしか見えません。彼はArduinoの別のバージョンについて話しているのですか? 写真から判断すると、彼のArduinoは私のArduino Uno R3とは少し違って見えますが、写真にどのバージョンがあるのか​​わかりません。

2
I2Cによる書き込みスケッチ
純粋なArduinoの質問ではありません。私は実際にはスタンドアロンのATmega168を使用しています。これまでのところ、AVR-ISPプログラマー(AVR Studioから作業中)を使用してチップをプログラミングしています。すべてが完了すると、チップはカバーされ、I2Cピンにしかアクセスできなくなります。MISO、MOSIなどのピンは到達不能になります。 I2Cピンを使用して、チップに焼き付けられたプログラムを更新する方法があるのか​​と思っていました。ブートローダーを再度書き込む必要はありませんが、必要に応じてプログラムを更新するだけです。

4
Leonardo(32u4):プログラムでそれをブリックする方法
Leonardoが導入されたとき、私はいくつかのことをするのに注意することについていくつかの記事を読んだので、新しいスケッチをロードできなくなる可能性があるため、ブートローダーを書き直す必要があります。USBポートなどの未使用のハードウェアコンポーネントを無効にするなど、省電力オプションを使用する予定なので、何か間違ったことを恐れています。 これまでに見つけたレオナルドの珍味の1つ: 割り込みが無効になっている場合、Arduino IDEに「Uploading ...」と表示されてすぐにリセットボタンを押さない限り、新しいスケッチのアップロードは失敗します。 どのようなもの(出力構成されたピンを固定電位に接続するような通常のハードウェア関連の考えを除いて)は、コントローラーを損傷したり、新しいブートローダーでLeonardoを再フラッシュしたりする必要がありますか?

4
ATtiny85。ブートローダーを書き込むにはどうすればよいですか?プロセスは何ですか?
ATtiny85の6つのI / Oピンすべてを使用したい、つまりリセットピンをI / Oピンとして使用したいのですが、RESETピンを無効にすると、ATtinyを使用してATtinyをプログラムできなくなることがわかりましたISPプログラマ。 しかし、私が理解している限り、RESETピンを必要とせずにUSBを介してATtinyをプログラムすることができるATtinyのブートローダーがあることを知りました。 私の質問は、そのようなブートローダー(たとえば、小核など)をATtiny85 に書き込むにはどうすればよいですか?その後、ATtinyをUSBに接続するにはどうすればよいですか(このように?)?その後、どのようにプログラムしますか?ブートローダーの書き込みとヒューズの変更に関しては、私はまったくの初心者です。 また、私は実際のISPプログラマーがいないため、ISPプログラマーとしてArduinoISPスケッチを使用していますが、私が読んだ限り、それは問題にはなりません。 編集:私はこれをeBayで数ドルで購入しましたが、それをどのように使用する必要があるのか​​わかりません:

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.