PowerPoint プレゼンテーション

Similar documents
arduino プログラミング課題集 ( Ver /06/01 ) arduino と各種ボードを組み合わせ 制御するためのプログラミングを学 ぼう! 1 入出力ポートの設定と利用方法 (1) 制御( コントロール ) する とは 外部装置( ペリフェラル ) が必要とする信号をマイ

スライド 1

スライド 1

Microsoft Word - SU1204教本(Driver)原稿.docx

<4D F736F F F696E74202D F4B87555F A838B B F5F91E63389F12E >


Taro-テキスト.jtd

講習会 Arduino

Arduino の勉強会 平成 23 年 1 月 5 日於 : 鳥取大学

<4D F736F F F696E74202D F4B87555F A838B B F5F91E63189F12E >

1 1 Arduino とは Arduino アルドゥイーノ は ワンボードマイコンの一種で オープンソースハードウェアであ り 組み立て済みの基板を購入することもできるほか 誰でも自分の手で Arduino を組み立てる ことができます USBコネクタでPCと接続して利用します デジタルポートとア

Microsoft Word - SU1203教本(Sens)原稿.docx

Arduino UNO IS Report No. Report Medical Information System Laboratory

GR-SAKURA-SAのサンプルソフト説明

PowerPoint Presentation

訂正 _ 第 1 回 1 Arduino Arduino を用意する 入力 アナログ Analog 入出力 任意の電圧を扱える 電源系 外部入力 7 12V デジタル digital 入出力 リセットボタン Low High いわゆる 01 が入出力される 通常は Low 0V GND High 5

DCモータの制御

目次 1 I2Cとは 13 結線写真 2 センサの多くがI2Cに対応 14 WHO_AM_I 3 マイコンでのI2C通信例 15 I2C読込みプログラム 4 とは 16 I2C読込みスクリプト概要① 5 タイミングパラメータ 17 I2C読込みスクリプト概要② 6 書込み 18 センサ読込みプログラ

Arduinoで組込み制御

86Duino EduCake Analog I/O ピン機能応用編 1. Analog I/O 紹介 アナログ vs デジタル : 前篇では 86Duino EduCake の基本仕様と IDE の簡単な使い方やデジタル IO を説明しました この章では アナログ

Taro-テキスト.jtd

まず,13 行目の HardwareTimer Timer(1); は,HardwareTimer というクラスを利用するという宣言である. この宣言によって Timer というインスタンスが生成される.Timer(1) の 1 は,OpenCM に 4 個用意されているタイマのうち,1 番のタイマ

Microsoft Word - SU1202教本(Disp)原稿.docx

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

す Alt メニューのファイル スケッチから開かせます 動作確認もしておきます 最初に接続した際に音が鳴らないよう 空のスケッチを最後に入れておきます 実施手順の詳細 導入部分 概要を説明し 以下の用語説明をします Arduino とは今日使う小さなコンピュータである スケッチ とは Arduino

Microsoft Word - SU1201MotorDriverSheildManual.doc

Arduinoで計る,測る,量る

Arduino をはじめよう オープンソースハードウェア入門 ~ Arduino( アルドゥイーノ ) 始めてみませんか?

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

Mathematica で Arduino を利用する (2012 年度 ) はじめに情報工学部では全学科で Arduino を導入して フィジカルコンピューティングに関連した教育を行ってきている 電子情報工学科ではいくつかの実験演習を通じて Arduino を取り入れてきている ここでは 電子情報

講習会 Arduino

ETCB Manual

図 1 で示すように割り込み作業に対応していない間は CPU が他の作業を行えま す 割り込みが発生した時に作業中の仕事を一時停止し 割り込みハンドラに 入ってタスクを実行します 割り込み作業が終わった後停止した作業を再開し ます 割り込み対応コードが停止したプロセスに影響ありますので なるべく 最

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

1. 使用する信号 1.1. UART 信号 UART 通信に使用する信号と接続相手との接続は以下の通りです UART 信号表 番号 CPU 機能名 CPU 信号名 基板コネクタピン番号 方向 接続相手の信号名 1 USART1_TX PA9 CN > RxD 2 USART1_R

SpeC記述のC記述への変換 (SpecCによるソフトウェア記述の実装記述への変換)

CoIDE 用 STM32F4_UART2 の説明 V /03/30 STM32F4 Discovery の非同期シリアル通信ポート UART2 の送受信を行うプログラムです Free の開発ツール CoIDE で作成したプロジェクトサンプルです プログラムの開始番地は 0x08000

ESP8266-CORE-R Copyrig

HDLトレーナーサンプルプログラム説明書

みんなの Arduino 入門 課題と演習 本資料は みんなの Arduino 入門 を使っている方々への課題 ( 演習含む ) を参考としてま とめたものです 本書の理解度の確認と今後のステップアップのためにご利用下さい ( 最終更新日 :2014 年 4 月 25 日 ) 株式会社タブレイン T

パーツリスト 組み立て前にすべてのパーツがそろっているかご確認ください 種類 品番 数 種類 品番 数 基板 I2C LCD 1 コンデンサ 0.1uF (104) 積層セラミック 1 IC ATtiny コンデンサ 10uF 電解 1 半固定抵抗 10~50kΩ 1 コネクタ IC ソ

PowerPoint プレゼンテーション

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

商品番号 : UTS-422 USB-RS422( シリアル ) 変換ケーブル (USB1.1 規格対応 ) 概要 UTS-422 は RS-422 インターフェースを持つ外部周辺機器をパソコンの USB ポートを介してコントロールするための USB-RS422 変換ケーブルです 最大 3Mbps

Microsoft Word - PIC-USBマイコンボード_v1-02@WEB公開用資料.docx

ESP32-KEY-KIT-R1 (ESP-WROOM-32 ) Copyright c 2

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

INDEX 1 必要なものを準備しよう 各部の名称を確認しよう 電源を入れよう スイッチで LED を光らせよう BiZduino で Wi-Fi 通信しよう RTC を使ってみよう 参考資料 7 困ったら... 21

講習会 Arduino

次に プログラム中の定数について解説する PINNO は圧電スピーカーと接続されたピンの番号に対応している FL,FR,BL,BR はそれぞれ 前面左, 前面右, 背面左, 背面右に設置されたスイッチに接続されているピンの番号に対応している スイッチ回路のプルアップ抵抗は Arduino 内部のもの

GR-SAKURA-SAのサンプルソフト説明

Taro-82ADAカ.jtd

Microsoft Word - 実験4_FPGA実験2_2015

1. はじめにローテータをパソコンでコントロールする仕掛けを作りました もともと ローテータのコントローラ自体がリモコンな訳ですから リモコンのリモコンということになります 最近は 無線機をパソコンに接続してリモートシャックから運用されている方もかなりいらっしゃるようです となると 無線機だけではな

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

Microsoft Word - axies

slide5.pptx

GR-SAKURA-SAのサンプルソフト説明

3 5 動作試験 変調せず超音波を出し続ける (DC 出力) と, 最初の 15 秒程度は ピーーー という高周波音が聞こえ, そ れから ブブブブ というノイズが混ざり始めた. DC 出力の超音波焦点を電子秤に照射したところ, 最初は 0.60 g と表示されるものの, ノイズが混ざり始めると 0

第二回ArdProc講習会2013年10月波背景.pptx

自作デバイスボード製作 データ作成 データ登録方法 Rev.A 2017/07/29 Mille-feuille のプロジェクトに自作のデバイスを追加して自分で販売したい方向けの情報です 誰でも参加可能なコミュニティにしていきたいと思っています 大まかな流れは以下の通りです 基本的には回路設計がわか

Studuinoプログラミング環境

内容 MD00Manager とは?... MD00Manager をインストールする.... ソフトのインストール... MD00Manager の使い方.... 起動をする... 機能説明...7 機能説明 ( メニューバー )...8 機能説明 ( ステータスバー )...8 機能説明 ( コ

iCLR

接続例 ピンアサイン ポート端子台 配線可能電線太さ : AWG 16~AWG 28 端子番号信号名 1 Data + 2 Data GND Data (=TxD + RxD) : 送受信データ ( 入出力 ) - は 無接続です ご注意 : 無接続端子の

デジタル表現論・第4回

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

Microsoft Word - no15.docx

RS-422/485 ボード取扱説明書 RS-422/485 ボード取扱説明書 Revision 0.3 コアスタッフ株式会社技術部エンジニアリング課 Copyright 2009 Core Staff Co.,Ltd. All Rights Reserved - 1 of 17

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

2CH DC (PU-2709) DC DC Arduino 製作に必要な部品などを表にまとめてみましょう 用意するもの 型番など 必要数 メモ Arduino Arduino UNO R3 1 パルスを作るマイコンボード 28BYJ-48 1 ACアダプター DC5V 1 DCジャック

Microsoft Word - USB60F_Raspi_ doc

商品番号 : UTS-485 USB-RS485( シリアル ) 変換ケーブル (USB1.1 規格対応 ) 概要 UTS-485 は RS-485 インターフェースを持つ外部周辺機器をパソコンの USB ポートを介してコントロールするための USB-RS485 変換ケーブルです 最大 1.2km

Microsoft PowerPoint - CproNt02.ppt [互換モード]

User's Manual

PIC

Arduino Processing and ) Fig1. Arduino Homepage : h;p://

アスラテック株式会社 会社案内

デジモード ソフト設定例 RigExpert TI-8 USB トランシーバインターフェース 取説もご熟読の上 TI-8 をご活用ください 日本語版作成 :JA1SCW 日下覚 第 1 版

Arduino 2016/03/26 京都大学学術情報メディアセンター 喜多一 1

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

赤外線レーザー 360 距離センサ XV-11 LIDAR Sensor 取り扱い説明書 もくじ お使いになるまえに 各部のなまえと扱い方 2 使い方 (Processing GUI で使う ) 必要なソフトのインストール 3 接続方法 3 GUI の操作方法 4 使い方 ( ロボットに組み込む )

デジタル表現論・第6回

第 1 章 : はじめに RogueWave Visualization for C++ の Views5.7 に付属している Views Studio を使い 簡単な GUI アプリケーションの開発手順を紹介します この文書では Windows 8 x64 上で Visual Studio2010

HW-Slides-04.ppt

プロジェクト実施要領

PowerPoint プレゼンテーション

内容 1. 仕様 動作確認条件 ハードウェア説明 使用端子一覧 ソフトウェア説明 動作概要 ファイル構成 オプション設定メモリ 定数一覧 変数一

Microsoft Word - Training10_プリプロセッサ.docx

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

Microsoft Word - 4章.doc

ReferSTAR 78K/Kx2(CT-781) Applilet EZ PLプログラム集

Ver.1-5 Date レゾルバ変換器 (R/D 変換器 ) R D 1416 取扱説明書 レゾルバデジタル変換器 (RD1416) サーボテクノ株式会社 神奈川県相模原市中央区相模原 TEL: FAX:

Microsoft Word - Arduino K3NG CW ã‡�ㅼㅤㅼ çµ—ã†¿ç«‰ã†¦èª¬æŸ”æł¸_ docx

ファイル入出力

User's Manual

目次 Arduino で始めるソフトウェア開発 1 はじめてみよう Arduino 準備編 Arduino の購入 開発環境の準備 体験編 Arduino IDE の起動 Ar

MODLINK-2 Arduino&IoT 組立式開発ボード Manual モジュリンク 2 取扱説明書

Transcription:

Arduino 入門勉強会 #2 センサによる入出力 平成 27 年 7 月 7 日 ソフトピアジャパンドリーム コア 1F ネクストコア

センサ入出力 Arduino にセンサなど様々な入出力部品を取り付け動作させてみます 今回の勉強会で扱うのは以下の部品です 入力 : タクトスイッチ ボリューム抵抗 ( 半固定抵抗 ) 光センサ (CDS) 温度センサ 出力 :LED( 単色 ) ピエゾスピーカー サーボ フルカラー LED タクトスイッチ ボリューム抵抗 ( 半固定抵抗 ) 光センサ (CDS) 温度センサ LED( 単色 ) ピエゾスピーカーサーボフルカラー LED

デジタル入力 デジタル入力ピンでは digitalread 関数を用いて 5V 電圧の ON/OFF 状態を読み取ることができます デジタル入出力ピン (pin0 13)

サンプル Button タクトスイッチのボタンを押すと LED が点灯するサンプルスケッチです メニューから ファイル スケッチの例 02.digital Button と選択します

サンプル Button : 回路 10 分 スイッチの ON/OFF 状態を判断するための回路と LED を点灯するための回路の組み合わせです LED LED タクトスイッチ 抵抗 10KΩ アノード + タクトスイッチ 脚の長い方が + です カソード 抵抗 330Ω Pin13 Pin2 抵抗 10KΩ 茶黒橙金 抵抗 330Ω 橙橙茶金 5V GND

サンプル Button : コード 定数の宣言 変数の宣言 初期化 // constants won't change. They're used here to // set pin numbers: const int buttonpin = 2; // the number of the pushbutton pin const int ledpin = 13; // the number of the LED pin // variables will change: int buttonstate = 0; // variable for reading the pushbutton status void setup() { // initialize the LED pin as an output: pinmode(ledpin, OUTPUT); LED 用のピンを出力に設定 // initialize the pushbutton pin as an input: pinmode(buttonpin, INPUT); ボタン用のピンを入力に設定 ボタン ( スイッチ ) に使用するピン番号の定義 LED に使うデジタルピンの番号の定義 ボタンの状態を表す変数 void loop() { // read the state of the pushbutton value: buttonstate = digitalread(buttonpin); ボタン用ピンにかかっている電圧が ON(HIGH) か OFF(LOW) か読み取り メイン処理の記述 // check if the pushbutton is pressed. // if it is, the buttonstate is HIGH: if (buttonstate == HIGH) { // turn LED on: digitalwrite(ledpin, HIGH); LEDを点ける (LEDピンの電圧をHIGHにする) else { // turn LED off: digitalwrite(ledpin, LOW); LEDを消す (LEDピンの電圧をLOWにする) 条件分岐 : もしも ボタン用ピンの電圧が ON(HIGH) ならば ボタンが ON(HIGH) の場合 ボタンが OFF(LOW) の場合

シリアルモニタを使ってみよう Arduino と PC は USB ケーブルを通じてシリアル通信をすることができます PC と Arduino を USB ケーブルで接続した後 ウィンドウ右上のシリアルモニタアイコンをクリックします シリアルモニタアイコン メニューからの場合 ツール シリアルモニタ と選択します PC(Windows,Mac,Linux) USB Arduino ボード

シリアルモニタ シリアルモニタを使用すると Aruduino からシリアル通信で送信された情報を表示させることが出来ます 送信文字列の記入 送信ボタン 受信内容の表示 改行コードの設定 通信速度の設定

シリアルモニタ 以下のプログラムを書き込み シリアルモニタで表示してみましょう 5 分

シリアルモニタ Arduino から送信された文字列 Hello, world! が表示されます

コード解説 Arduino ではシリアル通信の処理が予め用意されており Serial.begin() 関数を呼び出せば 以後シリアル通信が可能になります 初期化 メイン処理 void setup() { // put your setup code here, to run once: Serial.begin(9600); シリアル通信の開始 ( 通信速度 9600bps) void loop() { // put your main code here, to run repeatedly: Serial.println("Hello, world!"); delay(300); 300 ミリ秒待機する シリアルに文字列 Hello, world! を書き出す シリアルへの書き出しにはいくつかの関数が用意されており 文字列出力の場合は 改行有りと改行なしの 2 つが用意されています 改行有り :Serial.println( Hello, world! ); 改行無し :Serial.print( Hello, world! );

アナログ入力 アナログ入力ピンでは analogread 関数を用いて 0 から 5V までの電圧を 0 から 1023 までの値としてを読み取ることができます アナログ入力ピン (A0~A5)

サンプル AnalogInOutSerial センサからのアナログ入力値に応じて LED の明るさが変化するサンプルスケッチです PC でセンサの入力値をチェックできるようシリアル通信も行います メニューから ファイル スケッチの例 AnalogInOutSerial と選択します 03.Analog

AnalogInOutSerial : 回路 10 分 センサの状態を読み取る回路と LED を点灯するための回路の組み合わせです LED LED 脚の長い方が + です ボリューム抵抗 10KΩ アノード + カソード 抵抗 330Ω ボリューム抵抗 10KΩ Pin 9 2 1 3 キット収容品 ピン 1 を電源 (5V ) ピン 2 をアナログ入力ピン ピン 3 を GND へ繋ぎます 抵抗 330Ω 5V GND Pin A0 橙橙茶金

AnalogInOutSerial : コード 定数の宣言 変数の宣言 初期化 // These constants won't change. They're used to give names アナログ入力に使用するピン番号の定義 // to the pins used: const int analoginpin = A0; // Analog input pin that the potentiometer is attached to const int analogoutpin = 9; // Analog output pin that the LED is attached to LEDに使うピンの番号の定義 int sensorvalue = 0; int outputvalue = 0; // value read from the pot // value output to the PWM (analog out) void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); シリアル通信の開始 ( 通信速度 9600bps) センサー入力値 LED 用出力値 void loop() { // read the analog in value: アナログ入力値を読み取る (0 1023) sensorvalue = analogread(analoginpin); // map it to the range of the analog out: 値の調整 :0 1023のsensorValueを0 255に割り振ってoutputValueへ outputvalue = map(sensorvalue, 0, 1023, 0, 255); // change the analog out value: アナログ出力ピンから出力 analogwrite(analogoutpin, outputvalue); メイン処理の記述 // print the results to the serial monitor: 文字列 sensor = をシリアルポートに書き出す Serial.print("sensor = " ); Serial.print(sensorValue); センサ読み取り値をシリアルポートに書き出す Serial.print(" t output = "); Serial.println(outputValue); 文字列 t output = をシリアルポートに書き出す // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2); 2ミリ秒待機 LED 用出力値をシリアルポートに書き出す

入力センサを変えてみよう 5 分 入力に用いるセンサをボリューム抵抗から光センサ (CSD) に変更します LED LED 光センサ (CDS) 抵抗 10KΩ アノード + 脚の長い方が + です カソード 抵抗 330Ω 光センサ (CDS) Pin 9 極性はありません 抵抗 10KΩ 茶黒橙金 抵抗 330Ω Pin A0 橙橙茶金 5V GND

定数の宣言 反応を良くしてみよう シリアルモニタの情報を基にセンサの値をより有効に使用しよう // These constants won't change. They're used to give names // to the pins used: const int analoginpin = A0; // Analog input pin that the potentiometer is attached to const int analogoutpin = 9; // Analog output pin that the LED is attached to 5 分 変数の宣言 int sensorvalue = 0; int outputvalue = 0; // value read from the pot // value output to the PWM (analog out) 初期化 void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); void loop() { // read the analog in value: sensorvalue = analogread(analoginpin); // map it to the range of the analog out: outputvalue = map(sensorvalue, 150, 700, 0, 255); // change the analog out value: analogwrite(analogoutpin, outputvalue); 光センサからの入力値が 150 から 700 までなのでそこを有効な値として使用する メイン処理の記述 // print the results to the serial monitor: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print(" t output = "); Serial.println(outputValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2);

出力装置を変えてみよう 1 LED をピエゾスピーカーと変えてみましょう 5 分 ピエゾスピーカ 光センサ (CDS) ピエゾスピーカ 抵抗 10KΩ Pin 9 光センサ (CDS) 極性はありません 抵抗 10KΩ Pin A0 茶黒橙金 5V GND

tone() 関数 tone(pin, frequency) tone(pin, frequency, duration) 指定した周波数の矩形波を生成します 時間 (duration) を指定しなかった場合 notone() を実行するまで動作を続けます 出力ピンに圧電ブザーやスピーカに接続することで 一定ピッチの音を再生できます パラメータ pin: トーンを出力するピン frequency: 周波数 (Hz) duration: 出力する時間をミリ秒で指定できます ( オプション )

スピーカー用にコード書き換え 5 分 定数の宣言 // These constants won't change. They're used to give names // to the pins used: const int analoginpin = A0; // Analog input pin that the potentiometer is attached to const int analogoutpin = 9; // Analog output pin that the LED is attached to 変数の宣言 int sensorvalue = 0; int outputvalue = 0; // value read from the pot // value output to the PWM (analog out) 初期化 void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); void loop() { // read the analog in value: sensorvalue = analogread(analoginpin); // map it to the range of the analog out: 値の調整 :150 700のsensorValueを20 1000に割り振ってoutputValueへ outputvalue = map(sensorvalue, 150, 700, 20, 1000); // change the analog out value: tone(analogoutpin, outputvalue); アナログ出力ピンから指定の周波数の波形出力する関数 メイン処理の記述 // print the results to the serial monitor: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print(" t output = "); Serial.println(outputValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2);

出力装置を変えてみよう 2 ピエゾスピーカーをサーボに変えてみましょう 5 分 サーボ 光センサ (CDS) サーボ 抵抗 10KΩ 黄 : 信号赤 : 電源 (5V) 茶 :GND Pin 9 光センサ (CDS) 極性はありません 抵抗 10KΩ 茶黒橙金 Pin A0 5V GND

Servo クラス このライブラリは RC サーボモータのコントロールに用います 標準的なサーボでは 0 から 180 度の範囲でシャフトの位置 ( 角度 ) を指定します コーディング例 : ピン 9 に接続されたサーボを 90 度にセットする #include <Servo.h> Servo myservo; void setup(){ myservo.attach(9); myservo.write(90); Servoクラスのヘッダファイルを読み込むする Servoクラスのインスタンスをmyservoとして宣言デジタル9 番ピンをサーボ制御に指定サーボのシャフトを90 度にセットする void loop() {

サーボ用にコード書き換え 10 分 ヘッダの宣言定数の宣言変数の宣言初期化 #include <Servo.h> サーボクラスのヘッダファイルを読み込み // These constants won't change. They're used to give names // to the pins used: const int analoginpin = A0; // Analog input pin that the potentiometer is attached to const int analogoutpin = 9; // Analog output pin that the LED is attached to int sensorvalue = 0; int outputvalue = 0; Servo myservo; // value read from the pot // value output to the PWM (analog out) サーボの変数名の宣言 void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); myservo.attach(analogoutpin); サーボ制御ピンを割り当て void loop() { // read the analog in value: sensorvalue = analogread(analoginpin); 値の調整 :150 700のsensorValueを0 180に割り振ってoutputValueへ // map it to the range of the analog out: outputvalue = map(sensorvalue, 0, 1023, 0, 255); // change the analog out value: myservo.write(outputvalue); サーボの回転角度を指示 メイン処理の記述 // print the results to the serial monitor: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print(" t output = "); Serial.println(outputValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(100); 待機を100ミリ秒に増加

発展 : フルカラー LED で表示 10 分 光センサの入力量に応じてフルカラー LED を発光させてみます フルカラー LED フルカラー LED 抵抗 330KΩ x 3 光センサ (CDS) 抵抗 10KΩ カソードG( ー ) カソードR( ー ) カソードB( ー ) アノード (+) 光センサ (CDS) Pin 9 11 極性はありません 抵抗 10KΩ 茶黒橙金 抵抗 330Ω 5V GND Pin A0 橙橙茶金

フルカラー LED 用にコード書き換え 1 サンプル AnalogInOutSerial を読み込み以下の下線の箇所を書き換えます 15 分 定数の宣言 変数の宣言 初期化 // These constants won't change. They're used to give names // to the pins used: const int analoginpin = A0; // Analog input pin that the potentiometer is attached to const int analogoutpinr = 9; // Analog output pin that the LED is attached to const int analogoutping = 11; // Analog output pin that the LED is attached to const int analogoutpinb = 10; // Analog output pin that the LED is attached to int sensorvalue = 0; int outputvalue = 0; // value read from the pot // value output to the PWM (analog out) void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); RGB 三色分のピンを宣言する つづく

フルカラー LED 用にコード書き換え 2 メイン処理の記述 つづき void loop() { // read the analog in value: sensorvalue = analogread(analoginpin); // map it to the range of the analog out: 値の調整 :150 700のsensorValueを0 511に割り振ってoutputValueへ outputvalue = map(sensorvalue, 150, 700, 0, 511); outputvalueが以下かどうかで条件分岐 // change the analog out value: if(outputvalue <= 255){ analogwrite(analogoutpinr, 255); 赤成分は消灯 analogwrite(analogoutping, 255 - outputvalue); 青 緑の色変化緑成分は徐々に明るく analogwrite(analogoutpinb, outputvalue); 青成分は徐々に暗く else{ outputvalue = outputvalue - 256; 赤成分は徐々に明るく analogwrite(analogoutpinr, 255 - outputvalue); analogwrite(analogoutping, outputvalue); 緑 赤の色変化緑成分は徐々に暗く analogwrite(analogoutpinb, 255); // print the results to the serial monitor: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print(" t output = "); Serial.println(outputValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2);

入力センサを変えてみよう 5 分 光センサ (CDS) を温度センサに変えてみましょう フルカラー LED フルカラー LED 温度センサ カソード G( ー ) カソード R( ー ) カソード B( ー ) アノード (+) 抵抗 330KΩ x 3 温度センサ LM35 Pin 9 11 1 2 3 1: 電源 (5V) 2: 信号 3:GND 抵抗 330Ω Pin A0 橙橙茶金 5V GND

温度センサ用にコード書き換え 1 温度センサ用にコードを一部書き換えます 5 分 定数の宣言 変数の宣言 初期化 // These constants won't change. They're used to give names // to the pins used: const int analoginpin = A0; // Analog input pin that the potentiometer is attached to const int analogoutpinr = 9; // Analog output pin that the LED is attached to const int analogoutping = 11; // Analog output pin that the LED is attached to const int analogoutpinb = 10; // Analog output pin that the LED is attached to int sensorvalue = 0; int outputvalue = 0; // value read from the pot // value output to the PWM (analog out) void setup() { // initialize serial communications at 9600 bps: Serial.begin(9600); 変更なし つづく

温度センサ用にコード書き換え 2 メイン処理の記述 つづき void loop() { // read the analog in value: sensorvalue = analogread(analoginpin); sensorvalue = sensorvalue * 0.48; センサ読み取り値に係数 0.48をかけて温度に変換 // map it to the range of the analog out: outputvalue = map(sensorvalue, 25, 30, 0, 511); // change the analog out value: if(outputvalue <= 255){ 値の調整 :25 30のsensorValueを0 511に割り振ってoutputValueへ analogwrite(analogoutpinr, 255); analogwrite(analogoutping, 255 - outputvalue); analogwrite(analogoutpinb, outputvalue); else{ outputvalue = outputvalue - 256; analogwrite(analogoutpinr, 255 - outputvalue); analogwrite(analogoutping, outputvalue); analogwrite(analogoutpinb, 255); // print the results to the serial monitor: Serial.print("sensor = " ); Serial.print(sensorValue); Serial.print(" t output = "); Serial.println(outputValue); // wait 2 milliseconds before the next loop // for the analog-to-digital converter to settle // after the last reading: delay(2);