2個併せても900円程度なので文句は言えないが、やはりUSBシリル変換チップがヘン。
Lチカがリセットされている。この症状は中華版マイクロに同じですわ。
2個を重ねてLCDの表示テスト。評価記事通り明るさ調整の可変抵抗はかなりの回数、時計回りに回さないと表示が出ませんでした。
でも、このタイプの可変抵抗は安いのだ。
私も昔安いのでこれを買ってしくじったことがあるのでよくわかります。みんなビンボが悪いんや
コネクタのはんだ付けがいい加減なので、ソケットが歪みすべてを一発で差し込むことが難しい。
しかし標準的な4Bit接続でちゃんと動きました。ソースはこちらで。
少々反応が遅いようですが無問題。
こちらに、Pinアサインが掲示されています。助かるな。
キーボードのテストもばっちり。ソースはこちらでゲット(下記)
リセットキーがなんか変だが、900円でこれなら文句は言えません。
Arduino開発が進みそうです。
{ キー入力と表示テスト }
#include
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
const int NUM_KEYS = 5;
char msgs[NUM_KEYS][17] = // 16 桁だが NULL 終端のため 17
{"Right Key OK ",
"Up Key OK ",
"Down Key OK ",
"Left Key OK ",
"Select Key OK " };
int adc_key_val[NUM_KEYS] ={70, 240, 420, 620, 880}; // キーの閾値 (個体によって値は異なる)
int adc_key_in;
int key = -1;
int oldkey = -1;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.clear();
lcd.print("KEYPAD testing... pressing");
}
void loop() {
adc_key_in = analogRead(0);
Serial.println(adc_key_in); // アナログ値
key = get_key(adc_key_in);
if (key != oldkey)
{
delay(50);
adc_key_in = analogRead(0);
key = get_key(adc_key_in);
if (key != oldkey)
{
oldkey = key;
if (key >= 0){
lcd.setCursor(0, 1);
lcd.print(msgs[key]);
}
}
}
}
int get_key(unsigned int input)
{
int k;
for (k = 0; k < NUM_KEYS; k++)
if (input < adc_key_val[k])
return k;
if (k >= NUM_KEYS)
k = -1;
return k;
}