電光掲示板式の名札
部品:adafruit trinket 3V, adafruit 8×8 mini matrix, adafruit pro trinket battery module
sparkfun RPI-1031 4方向傾きセンサー(これは販売終了だが安いチルトスイッチで充分), Lipo-battery
ビニールの名札入れに入れて使います。左下にオレンジのジャンパーピンが付いていますが、左下に付けると電源がon。消すときには右上に付けて紛失を防ぎます。
傾けるとmatrix にローマ字表記で私の名前が流れて表示されます。
下記はarduino のIDEに入れて使います。事前にadafruit のHPにアクセスしてinclude する3つのファイルを指示に従って組み込んでおく必要があります。
/* 電光掲示板方式の名前を表示する。
2016年1月6日breadboardで配線に成功 2月13日にマイコンをTrinket に変更
そのためtilt をAnalogにするためのprogram を変更。
2月15日 傾けると動作するように設定。
長文表示でTrinketが誤作動する。for文から始まる部分を2重にして表示する文章を分割することで解決。
書き込みはtool USBtinyAspでboard はAdafruitTrinket8mHz */
2016年1月6日breadboardで配線に成功 2月13日にマイコンをTrinket に変更
そのためtilt をAnalogにするためのprogram を変更。
2月15日 傾けると動作するように設定。
長文表示でTrinketが誤作動する。for文から始まる部分を2重にして表示する文章を分割することで解決。
書き込みはtool USBtinyAspでboard はAdafruitTrinket8mHz */
#include <TinyWireM.h>
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
#include "Adafruit_LEDBackpack.h"
#include "Adafruit_GFX.h"
Adafruit_8x8matrix matrix = Adafruit_8x8matrix();
int val_s1=0;
int val_s2=0;
boolean position_s1= false;
boolean position_s2= false;
int val_s2=0;
boolean position_s1= false;
boolean position_s2= false;
void setup() {
matrix.begin(0x70);
}
void loop(){
val_s1=analogRead(2);
val_s2=analogRead(3);
if (val_s1>340) {
position_s1 =true;
}else {
position_s1 =false;
}
val_s1=analogRead(2);
val_s2=analogRead(3);
if (val_s1>340) {
position_s1 =true;
}else {
position_s1 =false;
}
if (val_s2>340) {
position_s2 =true;
} else {
position_s2= false;
}
if (position_s1 == position_s2)
{
matrix.setTextSize(1);
matrix.setTextWrap(false); //
matrix.setTextColor(LED_ON);
for (int8_t x=10; x>=-48; x--) {
matrix.clear();
matrix.setCursor(x,0);
matrix.print("T.Endoh");
matrix.writeDisplay();
delay(100);
}
for (int8_t x=14; x>=-90; x--) {
matrix.clear();
matrix.setCursor(x,0);
matrix.print("Takata Company");
matrix.writeDisplay();
delay(100);
}
}
else {
matrix.clear();
matrix.writeDisplay();
delay (500);
}
}
position_s2 =true;
} else {
position_s2= false;
}
if (position_s1 == position_s2)
{
matrix.setTextSize(1);
matrix.setTextWrap(false); //
matrix.setTextColor(LED_ON);
for (int8_t x=10; x>=-48; x--) {
matrix.clear();
matrix.setCursor(x,0);
matrix.print("T.Endoh");
matrix.writeDisplay();
delay(100);
}
for (int8_t x=14; x>=-90; x--) {
matrix.clear();
matrix.setCursor(x,0);
matrix.print("Takata Company");
matrix.writeDisplay();
delay(100);
}
}
else {
matrix.clear();
matrix.writeDisplay();
delay (500);
}
}