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

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

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

ESP8266-CORE-R Copyrig


講習会 Arduino

Arduino UNO IS Report No. Report Medical Information System Laboratory

スライド 1

スライド 1

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

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

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

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

Arduinoで組込み制御

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

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

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

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

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

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

ETCB Manual

8ビットデータバスでアクセスする場合は、16ビットレジスタを上位バイト、下位バイトに分けてアクセスします

<4D F736F F F696E74202D F4B87555F A838B B F5F91E63189F12E >

Prog1_10th

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

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

DiMAGE Scan Multi PRO

<4D F736F F F696E74202D F4B87555F A838B B F5F91E63389F12E >

1 1 TA, ,9 1. ( 2. TM TM GUI TM 1. P7-13 TM Notepad, Meadow, ( P109 ). 2. (shisaku01/sys test)

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

DCモータの制御

Microsoft Word - 中間試験 その1_解答例.doc

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

情報処理Ⅰ演習

回路図 部品表 部品番号 型番 個数 U PIC6F823 I/ST (TSSOP 4pin) R 00Ω (/0W, 608) R2 - R9 360Ω (/0W, 608) 8 C μf (25V, 608) LED LN56RA CN ロープロファイルピンソケット CN2 ロープロファイルピン

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

PowerPoint プレゼンテーション

PowerPoint Presentation

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

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

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

PowerPoint プレゼンテーション

1 装置構成 1.1 実験装置 下記写真が検証用に組み上げた装置外観です マスター 1 台とスレーブ 6 台で構成してあります Figure 1: Boards configuration master:msp-ts430rgz48c+fr5969 中央の黒いボード slave :MSP-EXP43

ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL

Microsoft Word - T-ADA16S.doc

Microsoft Word - SU1201MotorDriverSheildManual.doc

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

MPL115A

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

PowerPoint プレゼンテーション

スライド 1

Microsoft Word - T-AD16P.doc

Microsoft PowerPoint - 11.pptx

スライド 1

MSP430 CCSv5 を使い Flash Memory 内容と version 情報を確認する方法 ( テクニック編 ) Rev: PIC Trout 今回は 下記の2 件について説明します 1) CCSv5 を使用して MSP430 の Flash Memory 内容を

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

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

// USB_CNC_Machine リモート PIO 端末プログラムのメイン関数およびユーザアプリ部 // 編集作成 by Takehiko Inoue /*********** メイン関数 ***************************/ #pragma code

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

Taro-テキスト.jtd

Nios II - PIO を使用した I2C-Bus (2ワイヤ)マスタの実装

Untitled

スライド 1

CommCheckerManual_Ver.1.0_.doc

3. スイッチ設定 ( 表 3) モジュール SW4 SW5 C1 OFF 下 (GND) C2 OFF 下 (GND) C3 OFF 下 (GND) C4 OFF 下 (GND) C5 OFF 上 (R/-W) C6 ON 下 (GND) 使用するモジュールに応じて, スイッチを切り換えて下さい.

< F2D837C E95CF CF68A4A94C5816A2E6A>

割り込み 今までのプログラムは 順番にそって命令を実行していくのみ それはそれで良いが 不便な場合もある 例えば 時間のかかる周辺機器を使う場合 その周辺機器が動作を終了するまで CPU は待たなければいけない 方法 1( ポーリング ) 一定時間毎に 周辺機器の動作が終了したか調べる 終了していれ

-2 外からみたプロセッサ GND VCC CLK A0 A1 A2 A3 A4 A A6 A7 A8 A9 A10 A11 A12 A13 A14 A1 A16 A17 A18 A19 D0 D1 D2 D3 D4 D D6 D7 D8 D9 D10 D11 D12 D13 D14 D1 MEMR

SDC_SDIO_STM32F4 の説明 2013/09/17 SDIO インターフェースで SD カードをアクセスするプログラムのプロジェクトサンプルです FAT でファイルアクセスするために FatFs( 汎用 FAT ファイルシステム モジュール ) を使用しています VCP(USB 仮想 C

スライド 1

untitled

電磁流量計 WZ-C Modbus RTU 通信仕様書 ver.8.225

TCP_BP3591 の説明 V /03/28 ROHM 社製 WIFi モジュール BP3591 を使用して 無線 LAN により TCP/IP 通信を行うプログラムです 簡単な文字列によるコマンド ( 例 : LED0 ON ) を受信して LED の ON/OFF を行います 受

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

inst.c

SuperH RISC engine C/C++ コンパイラ Ver.7 不具合内容 - 過去のお知らせ SuperH RISC engine C/C++ コンパイラ Ver.7 台における不具合内容を以下に示します のチェックツールをルネサスエレクトロニクス株式会社のホームページ

Microsoft PowerPoint pptx

CM-3G 周辺モジュール拡張技術文書 MS5607センサ(温度、気圧)

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

Microsoft Word - 実験4_FPGA実験2_2015

スライド 1

Microsoft PowerPoint - RL78G14_動画マニュアル_タイマRD.ppt [互換モード]

プログラミング実習I

2.RL78 での割り込み処理 ( 割り込み受け付け ) マスクが解除された (xxmk ビットが 0 の ) 割り込み要求信号は 2 つの用途で使用されます 一つ目は,CPU のスタンバイ状態の解除です この動作は, 割り込み優先順位とは全く無関係で, マスクされていない (xxmk=0 の )

スライド 1

第2回

SP-1221 LIN I/F 基板 ユーザーズマニュアル 作成日 :2017 年 10 月 17 日

スライド 1

Microsoft PowerPoint - KHPCSS pptx

HW-Slides-04.ppt

スライド 1

PowerPoint Presentation

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

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

データ収集用 NIM/CAMAC モジュールマニュアル 2006/5/23 目次 クレート コントローラ CC/ NIM ADC 1821 (Seiko EG&G)...3 ADC インターフェイス U デッドタイム

AquesTalk プログラミングガイド

Microsoft Word - 海岸紹介new.doc

Microsoft Word - プログラムをRAM.doc

AN424 Modbus/TCP クイックスタートガイド CIE-H14

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

講習会 Arduino

Transcription:

フルカラーシリアル LED テープ (1m) を GR-KURUMI で使ってみる 2014/2/25 がじぇっとるねさす鈴木 Rev. 1.00

フルカラーシリアル LED の特徴 http://www.switch-science.com/catalog/1399/ 3570 円 1m で 60 個の LED がついている 電源と信号線 1 本で制御する x 24 この信号を 24 個送信して 1 個の LED を点灯させる 60 個を点灯するには 24x60=1440 個データ送信が必要 現在販売されている LED のタイミング この LED を制御するための信号 0.4us は 400 ナノ秒で相当に早い 400 ナノ秒は 0.00000004 秒なので 1 秒間に 30 万 Km 進む光でも 0.00000004 秒は 120m しか進めない 2

配線図 動作概要 配線図 フルカラーシリアル LED GND VDD D2 A0 LEDがいくつも接続されていても配線はこれだけ GR- KURUMIは端子 D2 ( マイコンポートのP30),A0を使用 動作概要 GR-KURUMI 半固定抵抗をまわすとそれに応じて LED の色が変化する 最初の LED の色を次の LED へコピーしていくように流れる 表示を行うプログラム

プログラム #include <RLduino78.h> #define DI() asm("di") #define EI() asm("ei") // Pin 22,23,24 has an LED connected on most Arduino boards #define LED_R 22 #define LED_G 23 #define LED_B 24 // 端子マイコンリソース // D2 P3 テープ LED の制御 0xFFF03 アドレス #define TAPELED 2 #define VOLUME A0 下記の時間待ちを確保するために ダミーで簡単な演算を行っている // テープLEDの信号を制御 #define TAPELED_ON (*(volatile unsigned char *)0xFFF03) = 1 #define TAPELED_OFF (*(volatile unsigned char *)0xFFF03) = 0 // テープLEDの時間待ち処理 #define TAPELED_ON_WAIT1 dummy2++; dummy++ #define TAPELED_ON_WAIT0 for ( dummy = 0; dummy<0; dummy++ ) ; ; dummy1++ #define TAPELED_OFF_WAIT1 for ( dummy = 0; dummy<0; dummy++ ) ; ; dummy1++ #define TAPELED_OFF_WAIT0 for ( dummy = 0; dummy<1; dummy++ ) ; ; dummy1++ #define TAPELED_WAIT for ( dummy2 = 0; dummy2<100; dummy2++ ) ; #define LEDMAX 60 // テープLEDに接続されているLEDの数 #define LEDDATAMAX 160 // テープLEDのカラーデータ数 // テープ LED にデータを送る関数 void SetLed( void ); LED にデータを転送する関数 int gad0value; // A0 の値を保存する変数 // テープ LED LEDMAX 分のバッファ uint8_t gtleddata[ LEDMAX ][ 3 ] = 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 省略 60 個分 LED の色データ (R, G, B) を領域確保

プログラム // テープLED 色を変化させるためのデータテーブル 160 色分 uint8_t gtledcolordata[ LEDDATAMAX ][ 3 ] = // G R B 0x00, 0x10, 0x00, // 1 0x00, 0x20, 0x00, 0x00, 0x30, 0x00, 0x00, 0x40, 0x00, 0x00, 0x50, 0x00, 0x00, 0x60, 0x00, 0x00, 0x70, 0x00, 0x08, 0x80, 0x00, 0x00, 0x90, 0x00, 0x08, 0xa0, 0x00, 0x00, 0xb0, 0x00, 0x08, 0xc0, 0x00, 0x00, 0xd0, 0x00, 0x08, 0xe0, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x20, 省略 0x00, 0x00, 0x00 ; LED の色データ (R, G, B) を計算で なく データとして登録しておく const 宣言でもよいのだが 参照 速度が遅くなるので RAM に配置 // the loop routine runs over and over again forever: void loop() uint8_t datg, datr, datb; uint16_t datadrs; // ポテンションメータの直値を gadval へ代入 gad0value = analogread( VOLUME ) / 6; datadrs = gad0value; if ( datadrs > ( LEDDATAMAX - 1 ) ) datadrs = LEDDATAMAX - 1; datg = gtledcolordata[ datadrs ][ 0 ]; gtleddata[ 0 ][ 0 ] = datg; datr = gtledcolordata[ datadrs ][ 1 ]; gtleddata[ 0 ][ 1 ] = datr; datb = gtledcolordata[ datadrs ][ 2 ]; gtleddata[ 0 ][ 2 ] = datb; ボリュームの値によって LED の色データを決める 160 色までになるように 調整する LED 色データ (G, R, B) を LED データバッファ先頭に のみ代入 // the setup routine runs once when you press reset: void setup() pinmode( LED_R, OUTPUT ); pinmode( LED_G, OUTPUT ); pinmode( LED_B, OUTPUT ); pinmode( TAPELED, OUTPUT ); SetLed(); delay( 10 ); LEDデータバッファから実際の LED60 個にデータを転送する LEDデータバッファをひとつづつずらし 流れるような表示にする 実際に出力するのは TAPELED(D2) 端子

プログラム // テープ LED にデータを送る void SetLed( void ) uint8_t datg, datr, datb, ledloop; volatile uint8_t dummy; volatile uint16_t dummy1; volatile uint32_t dummy2; // 割り込みを禁止して データ送信がずれないようにする DI(); for ( ledloop = 0; ledloop < LEDMAX; ledloop++ ) datg = gtleddata[ ledloop ][ 0 ]; datr = gtleddata[ ledloop ][ 1 ]; datb = gtleddata[ ledloop ][ 2 ]; // 緑 LED if ( datg & 0x80 ) // on data send // off data send if ( datg & 0x40 ) // on data send 緑 LED の 7bit 目の処理 緑 LED の 6bit 目の処理 // off data send if ( datg & 0x20 ) // on data send // off data send if ( datg & 0x10 ) // on data send // off data send 緑 LED の 5bit 目の処理 緑 LED の 4bit 目の処理 if ( datg & 0x08 ) // on data send // off data send if ( datg & 0x04 ) // on data send // off data send if ( datg & 0x02 ) // on data send 緑 LED の 3bit 目 の処理 緑 LED の 2bit 目 の処理 緑 LED の 1bit 目 の処理

プログラム // off data send if ( datg & 0x01 ) // on data send // off data send 緑 LED の 0bit 目の処理 // テープ LED のバッファをずらして 流れる表示にする for ( ledloop = LEDMAX - 1; ledloop > 0; ledloop-- ) datg = gtleddata[ ledloop - 1 ][ 0 ]; gtleddata[ ledloop ][ 0 ] = datg; datr = gtleddata[ ledloop - 1 ][ 1 ]; gtleddata[ ledloop ][ 1 ] = datr; datb = gtleddata[ ledloop - 1 ][ 2 ]; gtleddata[ ledloop ][ 2 ] = datb; EI(); LED のデータバッファを流れる表示にするためにデータコピーする gtleddata[0][1] // 赤 LED 省略 // 青 LED 省略 赤 LED の 7~0bit 目の処理 青 LED の 7~0bit 目の処理 gtleddata[0][0] gtleddata[0][2] ここまでの処理に for 文を使わないのは データの 転送を一定時間に保つため 1 つの LED にデータを 送る為の処理 これを 60 回繰り返す

実行結果 D2 端子の波形 電源は 5V を使うこと 半固定抵抗をグルグル回して色を変えているところ

以上です ご不明な点は質問をお願いします