So-net無料ブログ作成

Arduinoで7セグLEDを使ってみる [Arduino]

秋月電子の,「ダイナミック接続4桁高輝度赤色7セグメントLED表示器 カソードコモン カソード共通接続」OSL40562-LRを入手したので,Arduinoで動かしてみる.

今回は,ArduinoのIOピンで直接制御してみる.高輝度で点灯させるにはトランジスタを併用してLEDへの電流を確保する必要があるが,ひとまずIOピンから出力できる電流量で点灯させてみる.

Arduino Unoでは,IOピンの定格電流は40mAのようなので,これを前提に考えると...

OSL40562-LRの順方向電圧はtyp2Vだが,Minが1.8Vなのでそれで計算する.
ArduinoのIOは5Vなので,
5V - 1.8 V = 3.2V
小数点も含めると8個のLEDがあるので,Totalで30mAぐらいに収めるとすると,1LEDあたり,
30mA / 8 = 3.75mA
3.2V / 3.75mA = 0.85KΩ
ということになる.

というわけで,手元にある抵抗から近いものを探して820Ωを採用.
実際に点灯させてみれば分かるが,室内で見ている限りこれで十分な視認性が得られる.

こんな感じで接続する.
7segLed_回路図.png

あとは,Arduino側のスケッチだが,今回は,Adafruitが公開しているLibraryを参考に改変して,出力する桁数を指定可能な7セグLED点灯用ライブラリを作ってみた.

表示テスト用のスケッチとあわせて示そう.

まず,ライブラリだが,以下の3つのファイルからなる.
Led7segment.h
Led7segment.cpp
keywords.txt
で,適当なディレクトリに,Led7segmentディレクトリを作成し,上記3つのファイルを保存してやればよい.

順にコードを示そう.

まず,Led7segment.h
/*
 * 数値を7セグLED用向けビットマップ値に変換する
 */

#ifndef LED_7SEGMENT_H
#define LED_7SEGMENT_H

class Led7segment
{
public:
    void print(unsigned char *buff, double value,
               unsigned int numeric_digits, unsigned int frac_digits = 1); 
    /*
     * buff           : 格納先バッファ(呼び出し元で必要なサイズ分を用意すること)
     * value          : 変換する値
     * numeric_digits : 出力する桁数(-符号含む桁数."."は含まない).例えば出力が"12.34"なら4.
     * frac_digits    : 出力する小数点以下桁数(桁数不足で表示できない場合は丸められる)
     */

private:
    void write(unsigned char *buff, unsigned int x, unsigned int num, bool is_dot = false);
    void write_minus(unsigned char *buff, int display_index);
    void write_space(unsigned char *buff, int display_index);
    void write_error(unsigned char *buff, int display_index);
};

#endif // LED_7SEGMENT_H


次に,Led7segment.cpp
/*
 * This is a library for 7segment LED OSL40562-LR.
 * 
 * function Led7segment::print were copied and modified from
 * Adafruit-LED-Backpack-Library(original function: Adafruit_7segment::printFloat).
 * https://github.com/adafruit/Adafruit-LED-Backpack-Library
 */
/*************************************************** 
  This is a library for our I2C LED Backpacks
  Designed specifically to work with the Adafruit LED Matrix backpacks 
  ----> http://www.adafruit.com/products/
  ----> http://www.adafruit.com/products/
  These displays use I2C to communicate, 2 pins are required to 
  interface. There are multiple selectable I2C addresses. For backpacks
  with 2 Address Select pins: 0x70, 0x71, 0x72 or 0x73. For backpacks
  with 3 Address Select pins: 0x70 thru 0x77
  Adafruit invests time and resources providing this open source code, 
  please support Adafruit and open-source hardware by purchasing 
  products from Adafruit!
  Written by Limor Fried/Ladyada for Adafruit Industries.  
  MIT license, all text above must be included in any redistribution
  
  https://github.com/adafruit/Adafruit-LED-Backpack-Library/blob/master/license.txt
 ****************************************************/

#include <math.h>
#include "Led7segment.h"

namespace {
const unsigned char digits_table[] = {
   /*   _____
    *  |  A  |
    * F|     |B
    *  |_____|
    *  |  G  |
    * E|     |C
    *  |_____|  o DP
    *     D
    */
            /*    DP G F E D C B A */
    0x3F,   /* 0 : 0 0 1 1 1 1 1 1 */
    0x06,   /* 1 : 0 0 0 0 0 1 1 0 */
    0x5B,   /* 2 : 0 1 0 1 1 0 1 1 */
    0x4F,   /* 3 : 0 1 0 0 1 1 1 1 */
    0x66,   /* 4 : 0 1 1 0 0 1 1 0 */
    0x6D,   /* 5 : 0 1 1 0 1 1 0 1 */
    0x7D,   /* 6 : 0 1 1 1 1 1 0 1 */
    0x07,   /* 7 : 0 0 1 0 0 1 1 1 */
    0x7F,   /* 8 : 0 1 1 1 1 1 1 1 */
    0x6F,   /* 9 : 0 1 1 0 1 1 1 1 */
    0x00,   /*   : 0 0 0 0 0 0 0 0 */
    0x40,   /* - : 0 1 0 0 0 0 0 0 */
    0x80,   /* . : 1 0 0 0 0 0 0 0 */
};

const int SPACE_INDEX = 10;
const int MINUS_INDEX = 11;
const int DOT_INDEX   = 12;

} // namespace

void Led7segment::print(unsigned char *buff, double value,
                        unsigned int numeric_digits, unsigned int frac_digits) 
{ 
    const unsigned int base = 10;
    bool is_minus = false;

    int display_index = numeric_digits - 1;

    if (value < 0) {
        is_minus = true;
        numeric_digits--;
        value *= -1;
    }

    if (numeric_digits <= frac_digits) {
        frac_digits = numeric_digits - 1;
    }

    unsigned long to_int_factor = pow(base, frac_digits) + 0.5;
    unsigned long display_value = value * to_int_factor + 0.5;
    unsigned long max_limit = pow(base, numeric_digits) + 0.5;

    while (display_value >= max_limit) {
        to_int_factor /= base;
        display_value = value * to_int_factor + 0.5;
        frac_digits--;
    }

    if (to_int_factor != 0) {
        if (display_value != 0) {
            for (int i = 0; (display_value != 0) || (i <= frac_digits); i++) {
                const bool is_dot = (frac_digits != 0) && (i == frac_digits);
                write(buff, display_index--, display_value % base, is_dot);

                display_value /= base;
            }
        }
        else {
            for (int i = 0; i <= frac_digits; i++) {
                const bool is_dot = (frac_digits != 0) && (i == frac_digits);
                write(buff, display_index--, 0, is_dot);
            }
        }

        if (is_minus == true) {
            write_minus(buff, display_index--);
        }

        while (display_index >= 0) {
            write_space(buff, display_index--);
        }
    }
    else {
        while (display_index >= 0) {
            write_error(buff, display_index--);
        }
    }
}

void Led7segment::write(unsigned char *buff, unsigned int i, unsigned int num, bool is_dot)
{
    if (is_dot == true) {
        buff[i] = digits_table[num] | digits_table[DOT_INDEX];
    }
    else {
        buff[i] = digits_table[num];
    }
}

void Led7segment::write_minus(unsigned char *buff, int display_index)
{
    write(buff, display_index, MINUS_INDEX);
}

void Led7segment::write_space(unsigned char *buff, int display_index)
{
    write(buff, display_index, SPACE_INDEX);
}

void Led7segment::write_error(unsigned char *buff, int display_index)
{
    write(buff, display_index, MINUS_INDEX);
}


最後に,keywords.txt
Led7segment	KEYWORD1
print	KEYWORD2


ダウンロードするなら,こちらから.
Led7segment.zip.jpg
ただし,So-netのブログでは,zip圧縮ファイルのアップロードができないため,zip圧縮してから拡張子に.jpgをつけて無理矢理アップロードしている.
なので.ダウンロードしたら.jpgを消してzipファイルとして展開してやってください.

また,ライブラリの追加方法は,「arduino ライブラリ 追加」等で検索してみてください.

で,表示テスト用のスケッチは,Led_7seg.ino.
Led7segmentライブラリの使い方は,Led7segment.hと,これを見れば分かると思う.
なお,このスケッチではMsTimer2ライブラリを使用しているので,別途追加してやってください.
#include <MsTimer2.h>
#include <Led7segment.h>

const int anode_pins[] = {
    12, // A
    8,  // B
    5,  // C
    3,  // D
    2,  // E
    11, // F
    6,  // G
    4,  // DP
};

const int cathode_pins[] = {
    13, // DIG.1
    10, // DIG.2
    9,  // DIG.3
    7,  // DIG.4
};

const int ANODE_PINS_NUM   = sizeof(anode_pins)   / sizeof(anode_pins[0]);
const int CATHODE_PINS_NUM = sizeof(cathode_pins) / sizeof(cathode_pins[0]);

unsigned int display_buffer[CATHODE_PINS_NUM] = {0};

void write_1digit(const unsigned char bitmap)
{
    for (int i = 0; i < ANODE_PINS_NUM; i++) {
        digitalWrite(anode_pins[i], bitmap & (1 << i) ? HIGH : LOW);
    }
}

void clear()
{
    for (int i = 0; i < ANODE_PINS_NUM; i++) {
        digitalWrite(anode_pins[i], LOW);
    }
}

void write()
{
    for (int i = 0; i < CATHODE_PINS_NUM; i++) {
        digitalWrite(cathode_pins[i], LOW);
        write_1digit(display_buffer[i]);
        delayMicroseconds(100);
        clear();
        digitalWrite(cathode_pins[i], HIGH);
    }
}

void print_7seg(unsigned char *buff)
{
    noInterrupts();
    for (int i = 0; i < CATHODE_PINS_NUM; i++) {
        display_buffer[i] = buff[i];
    }
    interrupts();
}

void setup()
{
    for (int i = 0; i < ANODE_PINS_NUM; i++) {
        pinMode(anode_pins[i], OUTPUT);
    }

    for (int i = 0; i < CATHODE_PINS_NUM; i++) {
        pinMode(cathode_pins[i], OUTPUT);
        digitalWrite(cathode_pins[i], HIGH);
    }
    
    MsTimer2::set(1, write);
    MsTimer2::start();
}

void loop()
{
    unsigned char buff[CATHODE_PINS_NUM] = {0};
    const unsigned int numeric_digits = CATHODE_PINS_NUM;
    const unsigned int frac_digits = 3;

    Led7segment led;

    for (long i = -1000; i <= 10000; i++) {
        double d = i;
        led.print(buff, d, numeric_digits, frac_digits);
        print_7seg(buff);
        delay(100);
    }
    
    for (long i = -1000; i <= 10000; i++) {
        double d = i / 10.0;
        led.print(buff, d, numeric_digits, frac_digits);
        print_7seg(buff);
        delay(100);
    }
    
    for (long i = -1000; i <= 10000; i++) {
        double d = i / 100.0;
        led.print(buff, d, numeric_digits, frac_digits);
        print_7seg(buff);
        delay(100);
    }
    
    for (long i = -1000; i <= 10000; i++) {
        double d = i / 1000.0;
        led.print(buff, d, numeric_digits, frac_digits);
        print_7seg(buff);
        delay(100);
    }
}


この表示テスト用スケッチでは,
・-1000  〜 10000  まで,1    ずつ
・-100.0 〜 1000.0 まで,0.1  ずつ
・-10.00 〜 100.00 まで,0.01 ずつ
・-1.000 〜 10.000 まで,0.001ずつ
順に表示する動作になっていて,桁数が足りなくて表示できない値は「----」と表示されます.

それでは,お試しあれ.

タグ:7セグLED
nice!(0)  コメント(58)  トラックバック(0) 
共通テーマ:日記・雑感

nice! 0

コメント 58

CrbnuttefsGF

quick cash loan - http://personalnerloan.org/ loan interest calculator <a href=http://personalnerloan.org/>small personal loans online</a> ’
by CrbnuttefsGF (2017-09-21 11:59) 

お名前(必須)

cialis for sale in uk
<a href="http://cialisofkl.com/">buy cialis</a>
free cialis coupon
<a href=http://cialisofkl.com/>generic cialis</a> ’
by お名前(必須) (2017-09-23 10:27) 

お名前(必須)

generic soft tabs cialis
<a href="http://cialisovnas.com/">generic cialis</a>
women cialis
<a href=http://cialisovnas.com/>cialis online</a> ’
by お名前(必須) (2017-09-23 20:00) 

VqvqKeyncEA

cialis where to buy
<a href="http://gawcialis.com/">generic cialis</a>
cialis pill splitting
<a href=http://gawcialis.com/>cialis online</a> ’
by VqvqKeyncEA (2017-09-24 18:46) 

FfvgUsepleIM

price of cialis
<a href="http://veucialis.com/">buy cialis</a>
generic soft cialis
<a href=http://veucialis.com/>buy cialis</a> ’
by FfvgUsepleIM (2017-09-24 18:46) 

お名前(必須)

cialis everyday india
<a href="http://cialiseimah.com/">cheap cialis</a>
cialis online prescription
<a href=http://cialiseimah.com/>cialis</a>
by お名前(必須) (2017-09-25 21:54) 

お名前(必須)

order cialis online
<a href="http://cialisoakdm.com/">generic cialis</a>
cialis daily
<a href=http://cialisoakdm.com/>cheap cialis</a> ’
by お名前(必須) (2017-09-25 22:20) 

お名前(必須)

cialis 100 mg
<a href="http://cialisjrncd.com/">cialis online</a>
generic cialis 10mg
<a href=http://cialisjrncd.com/>cialis online</a> ’
by お名前(必須) (2017-09-25 22:30) 

お名前(必須)

cialis soft pills
<a href="http://cialiseiand.com/">cheap cialis</a>
no prescription cialis
<a href=http://cialiseiand.com/>cheap cialis</a> ’
by お名前(必須) (2017-09-26 06:18) 

KrtpbarcomDE

overnight cialis delivery - http://haycialis.com/
cialis 5mg online <a href=http://haycialis.com/>cialis online</a> ’
by KrtpbarcomDE (2017-09-26 23:40) 

VtnoFeeRSY

cialis overnight - https://jrucialis.com
safe cialis <a href=https://jrucialis.com>cheap cialis</a> ’
by VtnoFeeRSY (2017-09-26 23:40) 

お名前(必須)

buy cialis online - http://cialiskanr.com
generic cialis 10mg <a href=http://cialiskanr.com>buy cialis</a> ’
by お名前(必須) (2017-09-27 10:00) 

お名前(必須)

free cialis sample pack - https://cialisonlin.com
generic cialis soft tabs <a href=https://cialisonlin.com>cialis online</a> ’
by お名前(必須) (2017-09-27 10:29) 

PamefloanoYJ

payday loans 1 hour
<a href="https://installmentsvfacr.com/">online installment loans</a>
small loans for bad credit
<a href=https://installmentsvfacr.com/>installments loans</a> ’
by PamefloanoYJ (2017-09-29 03:06) 

LmazJidilsOU

guaranteed bad credit personal loans
<a href="https://paydayrvyaf.com/">payday loans no credit check</a>
internet payday loans
<a href=https://paydayrvyaf.com/>best online payday loans</a> ’
by LmazJidilsOU (2017-09-29 03:08) 

お名前(必須)

quick low interest payday loan
<a href="https://loansbtxsa.org/">fast payday loans</a>
personal loans people bad credit
<a href=https://loansbtxsa.org/>online payday loan</a> ’
by お名前(必須) (2017-09-29 06:18) 

お名前(必須)

no fax no teletrack payday loans
<a href="https://paydayvynk.org/">online payday loans</a>
payday loans online
<a href=https://paydayvynk.org/>online loans</a> ’
by お名前(必須) (2017-09-29 07:06) 

お名前(必須)

bad credit loan payday loans payday lender bad credit loan
<a href="https://paydaytbukl.org/">cash advance</a>
easy get payday loans
<a href=https://paydaytbukl.org/>cash advance</a> ’
by お名前(必須) (2017-09-29 08:39) 

お名前(必須)

can payday loan companies garnish your wages
<a href="https://paydaaexc.com/">payday loans online direct lenders only</a>
cash advance near me
<a href=https://paydaaexc.com/>payday loans no credit check</a> ’
by お名前(必須) (2017-09-29 19:13) 

お名前(必須)

bank accounts
<a href="https://nowpayday1.com">payday loans</a>
personal loans with bad credit
<a href=https://nowpayday1.com>payday loans</a> ’
by お名前(必須) (2017-10-01 15:29) 

お名前(必須)

online bank account
<a href="https://cashadvanceamericavatn.org">payday loans online</a>
loan cash
<a href=https://cashadvanceamericavatn.org>cash advance</a> ’
by お名前(必須) (2017-10-01 15:56) 

お名前(必須)

small payday loans online
<a href="https://paydayllae.com/">online payday loans</a>
fast payday loan online
<a href=https://paydayllae.com/>pay day loans</a> ’
by お名前(必須) (2017-10-03 23:03) 

JtnbJidilsRF

approval payday loan
<a href="https://paydayloamec.com/">loans online</a>
poor credit home loans
<a href=https://paydayloamec.com/>payday loans</a> ’
by JtnbJidilsRF (2017-10-04 02:08) 

お名前(必須)

200 cash payday loan
<a href="https://cashnowemr.com">best payday loans</a>
best payday loan on line
<a href=https://cashnowemr.com>payday loans online</a> ’
by お名前(必須) (2017-10-04 05:40) 

お名前(必須)

are online payday loans
<a href="https://cashadmme.com/">payday loans near me</a>
quick low interest payday loan
<a href=https://cashadmme.com/>payday loans online</a> ’
by お名前(必須) (2017-10-04 08:00) 

お名前(必須)

credit card debt
<a href="https://paydayloanswwe.com/">loans payday</a>
1 hr payday loans
<a href=https://paydayloanswwe.com/>get payday loan</a> ’
by お名前(必須) (2017-10-04 17:45) 

お名前(必須)

best payday loan on line - https://paydayllae.com/
payday loan cash advance <a href=https://paydayllae.com/>online payday loans</a> ’
by お名前(必須) (2017-10-05 06:53) 

FnrxmoiptAR

payday loans no faxing no credit checks - https://paydayloamec.com/
quick and easy payday loan <a href=https://paydayloamec.com/>best payday loans</a> ’
by FnrxmoiptAR (2017-10-05 10:08) 

お名前(必須)

bad credit car loan - https://cashnowemr.com
instant loans <a href=https://cashnowemr.com>payday loans online</a> ’
by お名前(必須) (2017-10-05 13:11) 

お名前(必須)

get a payday loan - https://cashadmme.com/
payday loans no faxing no credit checks <a href=https://cashadmme.com/>payday loan online</a> ’
by お名前(必須) (2017-10-05 15:30) 

FnveemoiptJU

federal student loans - https://paydaybdrfs.com/
payday advance <a href=https://paydaybdrfs.com/>payday loans online</a> ’
by FnveemoiptJU (2017-10-07 02:00) 

VtvzvdFeeRVW

buy cialis pills - https://genonlinecialis.com
cialis dosage instructions <a href=https://genonlinecialis.com>generic cialis</a> ’
by VtvzvdFeeRVW (2017-10-07 02:03) 

お名前(必須)

quick loan online - https://cashcevth.com
get payday loan <a href=https://cashcevth.com>payday loan</a> ’
by お名前(必須) (2017-10-07 05:24) 

お名前(必須)

cialis daily dose - https://cheapcheapcialis.com/
cialis pill identifier <a href=https://cheapcheapcialis.com/>generic cialis</a> ’
by お名前(必須) (2017-10-07 06:10) 

お名前(必須)

car loans bad credit - https://paydayloansrvhj.com/
3 month payday loans <a href=https://paydayloansrvhj.com/>payday loans</a> ’
by お名前(必須) (2017-10-07 07:31) 

お名前(必須)

cialis 5 mg
<a href="https://onlineonlinecialis.com/">cheap cialis</a>
cialis tadalafil 20mg
<a href=https://onlineonlinecialis.com/>cheap cialis</a> ’
by お名前(必須) (2017-10-08 06:13) 

お名前(必須)

same day money loans
<a href="https://paydayloawdcr.com/">pay day loan</a>
cash advances
<a href="https://paydayloawdcr.com/">3 month payday loans</a> ’
by お名前(必須) (2017-10-08 06:13) 

お名前(必須)

buy cialis online in usa
<a href="https://buybuybuycialis.com/">cialis buy</a>
cialis tablets side effects
<a href=https://buybuybuycialis.com/>online cialis</a> ’
by お名前(必須) (2017-10-08 09:12) 

お名前(必須)

cialis soft tabs uk - http://buycialis-menedpil.com/
cialis next day delivery <a href="http://buycialis-menedpil.com/">buy cialis online</a> ’
by お名前(必須) (2017-10-11 04:03) 

AqrhdAccurlDI

cialis pills for sale - http://genericcialis-viaed.com/
cialis 2.5mg <a href=http://genericcialis-viaed.com/>buy cialis</a> ’
by AqrhdAccurlDI (2017-10-11 07:50) 

お名前(必須)

how much does cialis cost - http://onlinecialis-cialisvip.com
cialis 50mg <a href=http://onlinecialis-cialisvip.com>generic cialis</a> ’
by お名前(必須) (2017-10-11 11:09) 

お名前(必須)

canadian pharmacy online cialis - http://cialisonline-pricepil.com/
effects of cialis on women <a href=http://cialisonline-pricepil.com/>cialis</a>
by お名前(必須) (2017-10-11 12:11) 

お名前(必須)

cialis soft tablets - http://cialisonline-vipmej.com/
cialis for sale in uk <a href=http://cialisonline-vipmej.com/>cheap cialis</a> ’
by お名前(必須) (2017-10-11 21:18) 

お名前(必須)

cialis generic tadalafil
<a href="http://onlinecialis-cialisvip.com">cialis price</a>
buy cialis cheap
<a href=http://onlinecialis-cialisvip.com>cialis</a>
by お名前(必須) (2017-10-12 13:40) 

???(??)

military loans - https://paydayceinf.org/
payday loans no faxing no credit checks [url=https://paydayceinf.org/]payday loans[/url] ’
by ???(??) (2017-10-18 00:54) 

KmrcnmoiptDE

car payday loans - https://paydaycnrs.net/
personal loans with bad credit <a href=https://paydaycnrs.net/>payday loans</a> ’
by KmrcnmoiptDE (2017-10-18 05:53) 

SecvvelenueZO

www paydayloan com - https://loansczne.com/
1st payday loan free <a href=https://loansczne.com/>payday loan online</a> ’
by SecvvelenueZO (2017-10-18 05:59) 

お名前(必須)

approval no fax payday loans - https://loans7foal.com/
payday loans without teletrack <a href=https://loans7foal.com/>online payday loans</a> ’
by お名前(必須) (2017-10-18 15:38) 

お名前(必須)

backers for payday loan opperations - https://loansnzyr.com/
small loans <a href=https://loansnzyr.com/>payday loans</a> ’
by お名前(必須) (2017-10-18 19:02) 

お名前(必須)

online payday loans - https://loans24rjn.com/
finance payday <a href=https://loans24rjn.com/>cash advance loans</a> ’
by お名前(必須) (2017-10-18 19:12) 

お名前(必須)

american advance payday loans - https://loanscerj.com/
payday loan with <a href=https://loanscerj.com/>cash advance near me</a> ’
by お名前(必須) (2017-10-18 19:44) 

お名前(必須)

best payday loan sites
<a href="https://paydayceinf.org/">payday cash loan</a>
bad credit loans
<a href=https://paydayceinf.org/>loans payday</a> ’
by お名前(必須) (2017-10-19 06:03) 

お名前(必須)

loan interest calculator
<a href="https://paydayobns.com/">payday loans online</a>
quick loans for bad credit
<a href="https://paydayobns.com/">payday loans online</a> ’
by お名前(必須) (2017-10-19 06:03) 

お名前(必須)

quick personal loans online
<a href="https://loanenav.net/">payday loans</a>
quick cash
<a href=https://loanenav.net/>payday loan</a> ’
by お名前(必須) (2017-10-20 11:27) 

お名前(必須)

bad credit absolutely no faxing payday loan
<a href="https://loansnerc.org/">loans payday</a>
bank accounts online
<a href=https://loansnerc.org/>payday loan</a> ’
by お名前(必須) (2017-10-20 11:49) 

お名前(必須)

free samples of cialis - http://pillsme.com/
buy cialis from canada <a href="http://pillsme.com/">tadalafil</a>
by お名前(必須) (2017-10-21 00:49) 

???(??)

cialis canada free sample - http://doverpharma.com/
cialis online order [url=http://doverpharma.com/]cialis[/url] ’
by ???(??) (2017-10-21 03:43) 

お名前(必須)

cialis daily - http://509pharma.com
online generic cialis <a href=http://509pharma.com>Cialis Reviews</a> ’
by お名前(必須) (2017-10-21 07:28) 

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。