cbi(TWSR, TWPS1); // TWSRレジスタのTWPS1をクリア(0), (記述例) 1:ACK中 0:非ACK中, PCIE (Stop Condition Interrupt Enable)  fSCL = fMCU / ( 16 + 2 * TWBR * N )

本記事はArduinoで使用するmap関数についてです。数値をある範囲から別の範囲に変換する関数。Arduinoは10bitのADコンバータ(アナログーデジタル変換)を搭載しています。これにより0V~5Vが入力されると0~1023の数値に変... 今回は、「Arduino 入門 番外編 08 UART通信 とは」です。arduino 入門 番外編はarduino自身の基本的な内容を記事にする予定です。今回は、arduinoの「UART通信」について解説していきます。Arduinoデ... 本記事は、「Arduino 入門 番外編 13 【スリープモードによる消費電力の低減】」です。Arduinoには終了という概念がありません。このままではバッテリー駆動している場合など困ります。そんなきは、スリープモード機能を利用するという手... Arduinoへの電源供給は一般的に、USBと外部電源の2通りの給電方式があります。本記事では、Arduinoの給電方式について解説しています。使用する電子部品の電力を確認して、Arduinoから供給する電力で足りているか確認するようにしま... 本日は、スケッチ(コード、プログラム)の関数化についてです。Arduinoに複雑なことをさせようとするとスケッチ(コード、プログラム)がどんどん複雑になっていきますよね。そんなときはスケッチ(コード、プログラム)の関数化で解決です。ぜひ、ス... 本日は、番外編02 Arduino UNO R3 外観とピン配置です。arduinoの入門編を書いていて、arduino自体の説明をしたいと考えていました。やはり、arduino自身のことを理解しておいた方が良いですよね。ということで番外編... お世話になります。 本記事を大変興味深く読ませていただきました。 (Arduino 入門 Lesson 39 【タッチセンサ その1】) センサモジュールとなっている回路図まで載せていただいて大... 写真とブレッドボード図の違いが初心者で分りづらかったので、DHT11モジュールの3本端子で左が8、中5V、右GND。.

Wire.setClock(40000); // fSCL = 40kHz, I2Cのクロック周波数をもっと下げてみよう 返信するACK設定

Wire.begin(); ネット上にこれらを直接説明する情報を検索できなかったため、考察を備忘録として以下にまとめる。, I2Cのクロック周波数を設定してみよう I2C通信には 7-bitモードと 10-bitモードがあるのですが、一般的に使われるのは 7-bitモードの方なので、今回はそちらで説明していきます。 また、クロックの周波数は規格化されていて 100 kHz か 400 kHz で通信を行います。 1:送信中 0:レディ, UA (Update Adress) Wire.setClock(10000); // fSCL = 10kHz, 使用したMCUはATmega328P(3.3V、8MHz)であった。 今回は 100 kHzで使いますので、, WCOL (Write Collision Detect) I2C name(sda, scl); name: 名前 sda: SDAピン名(p9, p28) scl: SCLピン名(p10, p27) クロックレート.         (1,1)の場合、N = 64。, デフォルトの100kHzは、fMCU = 8MHz、TWBR = 32、N = 1の時の値である。 TWBR = 136としてfSCLを計算してみると、27.8kHzとなる。これは、測定結果と一致する。

1:Stop割り込み許可 0:禁止, SCIE (Start Condition Interrupt Enable)

1:ストレッチオフ 0:オン, SSPM (SSP Mode Select) SSPEN:1、SSPM:1000 とすれば良いので、, ACKSTAT (Acknowledge Status) はプログラマーの定番ですよね?この部分の解説はしませんが、もしも私と同様に上手くいかない場合は試してみてください。, i2c.c と i2c.h をプロジェクトにインポートして、i2c.h をインクルードすればライブラリが使えるようになります。よく分からない場合は i2c.c の関数を main.c にコピペしても問題ありません。, 変更前のライブラリにも書いてありましたが、SDA と SCL はデジタルで”入力”にしないといけません。, 次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。, 前回プログラムが完成したので、あとはプログラムを書き込んで、回路を組み立ててついにLチカです! あともう少しでゴールなので頑張りましょう。 前回の記事はこちら PIC超入門!ゼロからLチカまでの道【そ …, 前回の記事で I2C通信を制御するライブラリを作成したので、今回はそれを使って LCD に文字を表示させてみたいと思います。 前回の記事はこちら↓ 【PIC】I2C通信のやり方 目次1 LCD2 接続 …, 電子工作を始めてみたいけど、何から手を付けていいか分からない…。そんな方のためのゼロからLEDを点滅させる(通称Lチカ)ところまでの超入門講座です。 目次1 PICとは2 必要なもの3 MPLAB X …, 電子工作といえば色々なセンサーを使ってみたいですよね。 温度・湿度センサーや加速度センサー、ジェスチャーセンサーなんてものもあります。多くのセンサーは I2C 通信で扱えるので一つやり方を覚えてしまえ …, PIC超入門!ゼロからLチカまでの道【その3:コンフィギュレーション~プログラミング】, 前回プロジェクトを作成して設定まで終わったのでいよいよプログラミングに入ります。PIC の第一の関門であるコンフィギュレーションも順を追ってやっていけば簡単にできます。 前回の記事はこちら PIC超入 …. 1:ACK未受信 0:受信済み, ACKDT (Acknowledge Data)

Arduino Nanoは、元々、小型なArduino Micoroと比較して、さらに小さいArduinoボードです。ブレッドボードに直接差し込んで利用できるようになっています。, なお、Arduino Nanoと同じ形状・フットプリントで、高性能・低価格になった「Arduino Nano Every」が発売されていますが、現在日本では入手性が悪く、購入できたとしても価格が高い状態が続いています。, そのため、Arduino Nano Everyは、日本での入手性が問題なくなった時に別記事にて紹介する予定です。, Arduino Nanoo以外のArduinoボードの仕様については、以下の記事をご覧ください。, Arduino Nanoのマイコン(プロセッサ)はMicrochip Technology社(アメリカ)の「ATmega328P」が使用されています。, マイコンとは、マイクロコントローラ(またはマイクロコンピュータ)の略称で、人間で言えば「頭脳」に相当する電子機器を制御する上では大変重要な部品です。, また、SRAM、Flashメモリ、EEPROMなどの各種メモリもマイコン内部に組み込まれています。, USBケーブルで、Arduino NanoとPCのUSBポートに接続することで、Arduino Nano-PC間で、通信をすることができます。, PCで作成したプログラム(スケッチ)を、Arduino Nanoに書き込んだり、シリアル通信によって、PCからArduino Nanoを制御することができます。, また、Arduino Unoのような電源ジャックがないため、USBによってArduino Nanoに給電する役割もあります。, ただし、USBポートが、あまり使われなくなりつつある「Mini USB Type-B」になっているので、ご注意下さい。, リセットボタンを押すことで、Arduino Nanoを再起動することができます。プログラムを最初からやり直したい場合やArduino Nanoの動作がおかしい場合などに利用します。, PWMとシリアル通信はデジタル入出力と共用です。プログラムでどちらを使うか指定できます。, Arduino Nanoには4つのLED(チップ部品)が搭載されています。「L」のLEDについてもう少し詳しく説明すると、デジタル入出力の13番に接続されており、プログラムで13番ピンをHIGH(5V)にすると、点灯させることができます。, 以下の記事では、統合開発環境のArduino IDEを使用して、Arduino Unoのプログラム書き込み方法を紹介しているのですが、サンプルプログラムとして、Arduino Nanoと同様に13番ピンに接続されている「L」のLEDを点滅させるプログラムを作成しています。, ICSP対応のライタ(プログラム書き込み装置)を接続することで、Arduino Nanoのマイコン(プロセッサ)である「ATmega328P」に、スケッチ(プログラム)を直接、書き込むことができます。, ただ、通常はUSBポートを経由してスケッチ(プログラム)を書き込めるので、書き込み用途として使用することは、ほとんどないと思います。, Arduino Nanoは、回路図などの各種技術資料をArduino公式WEBサイトから入手できます。, それぞれのアイコンをクリックすると、EAGLEファイル、回路図がダウンロードできます。, Arduino Nanoの購入は、一般的な店頭では扱っていないので、Amazonなどのネット通販がおすすめです。, また、Arduino Unoがメインになってしまいますが、ボードと電子部品を組み合わせたキットも存在します。, これらのキットもネット通販で購入できるので、Arduino Nanoと一緒に購入することで、一通りの実験用に使える電子部品をまとめて揃えることが可能です。, 以下の記事で電子工作初心者でもわかりやすいように、ランキング形式で紹介しています。ぜひご覧ください。, 当記事では、様々な種類のArduinoボードを比較して、どれが自分にとって最適なのかわかりやすく解説します。また、他サイトの記事では生産中止または日本で入手困難なArduinoボードまで掲載している事が多いですが、当記事では日本で入手しやすい7種類に絞って紹介し…, 当記事では、Arduino IDEでArduinoボードにプログラムを書き込む方法について詳しく解説します。プログラム書き込みまでの準備ArduinoボードをUSBケーブルで、Arduino IDEを使用するPCに接続します。当記事では、Arduino Unoを使用して説明していきます。以下の記事…, 当記事は、Arduinoボードの電源供給方法について詳しく解説します。Arduinoボードに電源を給電する方法として、入手性や手軽さから特にUSBケーブルを使った給電がおすすめです。Arduinoボードの電源仕様Arduinoボードに供給できる電流は最大で約0.9~1Aとなっていま…, 当記事では、ArduinoのDigital I/O関数(デジタル入出力関数)の使い方について詳しく解説します。Digital I/O関数を使うことによって、Arduinoボードのデジタル信号の出力や入力を行うことができます。なお、その他のArduino関数・ライブラリについては、以下の記事を…, 当記事では、ArduinoのAnalog I/O関数(アナログ入出力関数)の使い方について詳しく解説します。Analog I/O関数を使うことによって、Arduinoボードのアナログ信号の出力や入力を行うことができます。なお、その他のArduino関数・ライブラリについては、以下の記事をご…, 当記事では、Communication関数(シリアル通信)の使い方について詳しく解説します。Arduinoではシリアル通信の標準関数が用意されており、簡単にシリアル通信をすることができます。なお、その他のArduino関数・ライブラリについては、以下の記事をご覧ください。Comm…, 当記事では、ArduinoのWire(I2C)ライブラリの使い方について詳しく解説します。ArduinoのI2C制御用ライブラリ「Wire」を使ったプログラムで、各種I2Cデバイスを動作させます。なお、その他のArduino関数・ライブラリについては、以下の記事をご覧ください。Wire(I2C)…, 当記事では、ArduinoのSPIライブラリの使い方について詳しく解説します。ArduinoのSPI制御用ライブラリ「SPI」を使ったプログラムで、各種I2Cデバイスを動作させます。なお、その他のArduino関数・ライブラリについては、以下の記事をご覧ください。SPIライブラリbeg….