• ベストアンサー

Arduinoのピン被り

Arduino LeonardoにEthernetシールドを挿しています。 そこで、取説を見ると、SDカードの通信で10~13ピンを使うとのことですが、シールドには10~13ピンにもさらに入力できる形状になっていますが、SDカードとの通信を使用しつつ、10~13ピンも入力に使うことはできるのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • koujikuu
  • ベストアンサー率43% (428/992)
回答No.1

Ethernetシールド は、中央 6P-ICSP (MOSI,MISO,SCK) と D10 (SS), D4 (SD_CS) を使用します UNO では、D11(MOSI) , D12(MOSI) , D13(SCK) が割り当てられていた為使えませんでしたが、Leonardo では、D11,D12,D13 が別I/Oピンに割り当てられたので使用可能です ( D10 ,D4 は不可) Leonardo 説明抜粋 (google翻訳) SPI:ICSPヘッダーに表示されます。これらのピンは、SPIライブラリを使用したSPI通信をサポートし ます。SPIピンは、Uno上にあるデジタルI / Oピンのいずれにも接続されていないことに注意してください。これらは、ICSPコネクタでのみ使用できます。つまり、SPIを使用するシールドがあり、Leonardoの6ピンICSPヘッダーに接続する6ピンICSPコネクタがない場合、シールドは機能しません https://store.arduino.cc/usa/arduino-leonardo-with-headers

関連するQ&A

  • arduinoとDCモーターとポテンショメーターな

    arduinoとDCモーターとポテンショメーターなどを使って、DCモーターのフィードバック制御をしようと思っています。DCモーターのモータードライバーとして、モーターシールド( https://www.amazon.co.jp/Arduino-A000079-モータシールド-Rev3/dp/B00THGHNEE )を使う場合、モーターシールドがarduinoを全て覆ってしまうので(arduinoのピンがモーターシールドによって塞がれてしまうので)、ポテンショメーターの出力信号などはarduinoに取り込めないのでしょうか? よろしくお願い致します。

  • 機器のI/OをArduinoでSDに記録したい

    皆様、お世話になります。 Arduinoでデーターロガーのスケッチを作成しています。 スケッチしてみましたが動くかどうか確認とこう直した方が良いなど改善点が有れば、お願い致します。 2番ピンに変化が有った時(ONかOFF)に時間と2番ピンの状態をSDカードに記録したいのです。 これが、うまくいけば系統を増やしていきたいです。 書いたスケッチ #include <SD.h> // この値は使用しているシールドや基板に合わせて変更すること。たとえば、 // イーサーネットシールドは 4 // Adafruit のSDシールドは 10 // Sparkfun のSDシールドは 8 const int chipSelect = 4; void setup() { // シリアルポート初期化 Serial.begin(9600); while (!Serial) { ; // USBケーブルが接続されるのを待つ。この待ちループは Leonardo のみ必要。 pinMode(2,INPUT) ; //スイッチに接続ピンをデジタル入力に設定A } Serial.print(F("Initializing SD card...")); // SSピン(Unoは10番、Megaは53番)は使わない場合でも出力にする必要があります。 // そうしないと、SPIがスレーブモードに移行し、SDライブラリが動作しなくなります。 pinMode(SS, OUTPUT); // SDライブラリを初期化 if (!SD.begin(chipSelect)) { Serial.println(F("Card failed, or not present")); // 失敗、何もしない while(1); } Serial.println(F("ok.")); // 日付と時刻を返す関数を登録 SdFile::dateTimeCallback( &dateTime ); } void loop() { // ファイルを開く File dataFile = SD.open("datalog.txt", FILE_WRITE); // もし2番ピンに変化が有れば書き込む if (digitalRead(2)==HIGH) { int value = digitalRead(2); dataFile.println(value); dataFile.close(); // シリアルポートにも出力 Serial.println(value); } if (digitalRead(2)==LOW) { int value = digitalRead(2); dataFile.println(value); dataFile.close(); // シリアルポートにも出力 Serial.println(value); } // ファイルが開けなかったらエラーを出力 else { Serial.println(F("error opening datalog.txt")); } } void dateTime(uint16_t* date, uint16_t* time) { uint16_t year = 2014; uint8_t month = 7, day = 22, hour = 14, minute = 0, second = 0; // GPSやRTCから日付と時間を取得 // FAT_DATEマクロでフィールドを埋めて日付を返す *date = FAT_DATE(year, month, day); // FAT_TIMEマクロでフィールドを埋めて時間を返す *time = FAT_TIME(hour, minute, second); } よろしくお願い致します。

  • arduino SDカードスロット

    arduinoを使って、GPSや温度などをSDカードに記録しようとしています。 秋月電子でSDカードdip化モジュール(製品番号K-05818)を購入したのですが、いかんせん初心者な者で、仕組みが全く分かりません。 インターネットをさまよって、回路を作ることだけならできるようになったのですが、この仕組みが知りたいです。 SDIとかCLSなどの名前のピンがありますが、これは何のことなのでしょうか。 (ちなみにピンは上から、5.0V、3.3V、GND、SDI、SDO、CLK、CS、CDとなっています。) インターネットだと専門用語が多くて、何から手を付けていいのかが分かりません。 これを勉強すれば分かるよ、というアドバイスでもかまいません。 よろしくお願いします。

  • Arduino UNO R3とモーターシールド

    Arduino UNO R3とモーターシールドL298を使用して制御を行おうとしています. シールドはArduinoだけでは電流値が足りず, 外部電源(単三乾電池4本)を用いるために導入したのですが, このシールドを用いるとテスターで確認してもプログラム通りに電圧を出力してくれません. プログラムは,Arduino単体で動かした時には正常に動いたものを モーターシールドを動かすために改変したもので,間違いは無いと思われます. モーターシールドはこれを使っています. http://www.elecfreaks.com/wiki/index.php?title=L298_Motor_Shield 電圧が供出力されない原因はなにか,まったくわかりません. 回答の程よろしくお願い致します.

  • Arduinoのプログラムに付いて

    お世話になります。 海外のサイトでスケッチが公開されているのですが、コピーして検証すると「RTC_DS1307 RTC; 」の所ががno neme a typeとエラーになってしまいます。 どこを修正すれば良いか、教えて戴けないでしょうか。 また、このスケッチを実行するには、どのようなシールドが必要ですか。 SDスロットとRTC(電池付き)を搭載しているデータロギングシールドが必要かと考えているのですが。 参考にしたサイトです。 http://jobs.arduinoexperts.com/2013/03/02/simple-data-logging-using-arduino/ よろしくお願いします。

  • Arduinoを介してソフトを起動・操作する方法?

    Arduino Unoのinputピンからきた信号をトリガーにして,twitterを起動したりTL更新したいのですが,できますか? Arduino Unoのinputピンから入力信号をシリアルモニタに表示するところまではできたのですが, その後,どうやってtwitterを起動したり操作すればいいのかわかりません. どうか,宜しくお願い致します.

  • Arduinoのスケッチでエラーがでてしまいます。

    【電子工作関連】Arduinoでボタンを押すとランダムに3つのモーターのうち一つが回転するというスケッチを書きたいのですが、エラーが出てしまいます。どこが間違っているのでしょう? Arduinoで、ボタンを押すとランダムに3つのモーターのうち一つが回転するというスケッチを書きたいのですが、コンパイル使用とすると、 「error: expected unqualified-id before numeric constant」 というエラーが出てしまいます。 どこが間違っているのでしょう? 下がそのスケッチです。 なお、モータードライバにはTA7291Pを使用。 信号ピンである5番6番ピンをArduino5~10番ピンに振り分けて、それぞれにモーターを接続、 電源やGNDは共有してます。 なお、ボタンを使わず、単純に3つのモーターのうち一つが回転するというというスケッチは出来ていて、実際にその通り動いています。 ------------------------------ //3つのモーターをランダムに動かす int val = 0 //入力ピンの状態がこの変数に記憶される void setup(){ pinMode(2,INPUT); //ボタンを入力に設定 pinMode(5,OUTPUT); //モーター(1)のドライバー5番ピンを出力に設定 pinMode(6,OUTPUT); //モーター(2)のドライバー5番ピンを出力に設定 pinMode(7,OUTPUT); //モーター(3)のドライバー5番ピンを出力に設定 pinMode(8,OUTPUT); //モーター(1)のドライバー6番ピンを出力に設定 pinMode(9,OUTPUT); //モーター(2)のドライバー6番ピンを出力に設定 pinMode(10,OUTPUT); //モーター(3)のドライバー6番ピンを出力に設定 } void loop(){ val = digitalRead(2); //入力を読み取りvalに格納 if (val == HIGH){ digitalWrite(random(5,8),HIGH);//ランダムにモーターを正回転させる } else { digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,LOW);//モータを止める } }

  • Arduino Leonardoについて

    Arduino Leonardoで入力されっぱなしでもゆっくりとキーを入力させるには、どうすればいいでしょうか? current = AccX; if (current >= up && before[7] < up) { Keyboard.press( key[7] ); before[7] = current; } else if (current < up && before[7] >= up) { Keyboard.release( key[7] ); before[7] = current; } if (current <= down && before[8] > down) { Keyboard.press( key[8] ); before[8] = current; } else if (current > down && before[8] <= down) { Keyboard.release( key[8] ); before[8] = current; } 『入力されっぱなし』⇒press関数とrelease関数の間隔=長押し状態の事です。 押しっぱなし状態の時は決めた間隔(例えば2秒毎とか)で文字を送りたいです。

  • arduinoでバックスラッシュを入力したい。

    arduinoの初心者です。WINDOWS 7を使用しています。 arduinoのスケッチにバックスラッシュを入力したいのですが,方法が分かりません。 どなたかご存知の方がいましたら,よろしくお願いいたします。

  • Arduinoのコンパイルエラー 複数の~について

    私用で、初めてArduinoを購入しました。 Arduino Leonardo (ATmega32u4チップ搭載)へ任天堂switcコントローラーへの操作命令を出すプログラムを書きもうとしたのですが、以下のエラーが出てしまい、書き込めませんでした。 プログラム自体は、別の方が使用しているものをそのまま写させていただいたので、間違っていないと思います。エラー内容をPCで調べ、他の方の事例を見て試行錯誤してみましたが、原因が分かりません。環境設定でコンパイラの警告は「全て」に設定済みです。 また、No such file or directoryとあるので、「SwitchControlLibrary.h」フォルダの場所が悪いのかと思い確認してみましたが、表示されているアドレスに既定のファイルはありました。ボード、シリアルボード名も一致しています。 下記のエラーコードから何か分かる方、詳しい方居れば、ご助言をいただきたく願います…💦 // 以下 エラーコード // 「SwitchControlLibrary.h」に対して複数のライブラリが見つかりました In file included from C:\Users\ユーザー名\AppData\Local\Temp\arduino_modified_sketch_55341\Blink.ino:1:0: 使用済:C:\Users\ユーザー名\Documents\Arduino\libraries\SwitchControlLibrary-master C:\Users\�͂񂴂�\Documents\Arduino\libraries\SwitchControlLibrary-master\src/SwitchControlLibrary.h:1:10: fatal error: ArduinoSTL.h: No such file or directory #include <ArduinoSTL.h> ^~~~~~~~~~~~~~ compilation terminated. exit status 1 ボードArduino Leonardoに対するコンパイル時にエラーが発生しました。 このようなエラー内容から、解決方法などご教示頂きますようよろしくお願い致します。