つくったブログ

ぼくがつくったもの。

シュレーディンガーの猫回路をつくった。

https://instagram.com/p/-pDlXSrLq_/
#arduino Schrödinger's cat

明かりがあれば生死のどちらかがわかる。

つなぎかた

だいたい前とおなじ。あとで追記する。

http://akizukidenshi.com/download/SC2004CSLB.pdf

ピン番号 つなぐところ
1: Vss GND
2: Vdd 5V
3: Vlc 抵抗を介してGND
4: Rs Digital 4
5: R/W GND
6: E Digital 7
7: DB0 非接続
8: DB1 非接続
9: DB2 非接続
10: DB3 非接続
11: DB4 Digital 8
12: DB5 Digital 9
13: DB6 Dgital 10
14: DB7 Digital 11

コード

#define RS_PIN 4
#define E_PIN 7
#define DB0_PIN 2
#define DB1_PIN 3
#define DB2_PIN 5
#define DB3_PIN 12
#define DB4_PIN 8
#define DB5_PIN 9
#define DB6_PIN 10
#define DB7_PIN 11

#include <LiquidCrystal.h>;
int val = 0;
int s = 1;
int state = 0;
long randNumber;
LiquidCrystal lcd(RS_PIN, E_PIN,DB0_PIN, DB1_PIN, DB2_PIN, DB3_PIN,
  DB4_PIN, DB5_PIN, DB6_PIN, DB7_PIN);
/*  LiquidCrystal lcd(RS_PIN, E_PIN,
  DB4_PIN, DB5_PIN, DB6_PIN, DB7_PIN);*/

void setup() {
  lcd.begin(20,4);
  lcd.print("Schrodinger's NEKO");
  delay(3000);
}

void loop() {
  val = analogRead(0); //センサから値を取得します
  randomSeed(analogRead(1)); // 未接続ピンのノイズを利用
  //lcd.setCursor(0, 1);
  //lcd.print(millis()/1000);
  
  //lcd.setCursor(0, 2);
  //lcd.print(val);
  if (val <400){
    lcd.setCursor(0, 3);
    lcd.print("                    ");
    lcd.setCursor(0, 3);
    lcd.print("DEAD OR ALIVE....");
    s=1;
  }else{
    if(s==1){
      randNumber = random(300);
      if(randNumber % 2 == 0){
        lcd.setCursor(0, 3);
        lcd.print("                    ");
        lcd.setCursor(0, 3);
        lcd.print("NEKO IS DEAD.. ");
      }else{
        lcd.setCursor(0, 3);
        lcd.print("                    ");
        lcd.setCursor(0, 3);
        lcd.print("NEKO IS ALIVE!");
      }
      s=2;
    }
  }
  delay(300);
}
  • CdSセルを使って、明るさを検出。一定値以下なら「DEAD OR ALIVE」を表示し、それ以上なら「DEAD」か「ALIVE」を半々の確率で表示する。
  • valの値は様子を見ながら変える。
  • 半角カナを表示させたかったけど、やりかたが分からなかった。

うごく。

#arduino

またくだらないものをつくってしまった。


シュレディンガーの哲学する猫 (中公文庫)

シュレディンガーの哲学する猫 (中公文庫)