# memo

>> code javascript
#include <LCD_ST7032.h>
LCD_ST7032 lcd;

#define Y1 A0
#define X1 A1
#define Y2 A2
#define X2 A3
#define SPEAKER 9

int buttonTrig;
int xavg, yavg;

char charMap[3][10] = {
    {'\n', ' ', ',', 'M', 'N', 'B', 'V', 'C', 'X', 'Z'},
    {';', 'L', 'K', 'J', 'H', 'G', 'F', 'D', 'S', 'A'},
    {'P', 'O', 'I', 'U', 'Y', 'T', 'R', 'E', 'W', 'Q'}
  };

void reset(){
  pinMode(A0, OUTPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, OUTPUT);
  pinMode(A3, OUTPUT);

  digitalWrite(A0, LOW);
  digitalWrite(A1, LOW);
  digitalWrite(A2, LOW);
  digitalWrite(A3, LOW);
}

void setup() {
  buttonTrig = 0;
  xavg = yavg = 0;
  reset();
  pinMode(SPEAKER, OUTPUT);
  
  lcd.begin();
  lcd.setcontrast(24);

  lcd.setCursor(0, 0);  //LINE 1, ADDRESS 0
  lcd.cursor();
  lcd.print("Hello World");
}


void loop() {
  int x, y;
  reset();
  // x sensor
  digitalWrite(X1, HIGH);
  pinMode(Y1, INPUT);
  pinMode(Y2, INPUT);
  delay(1);
  x = analogRead(Y1);

  reset();
  
  // y sensor
  digitalWrite(Y1, HIGH);
  pinMode(X1, INPUT);
  pinMode(X2, INPUT);
  delay(1);
  y = analogRead(X1);

    
  if(x != 0 && y != 0){
    if(buttonTrig > 4){  // delay 4 frame to wait stable 
      xavg = ((xavg + x) >> 1);
      yavg = ((yavg + y) >> 1);
    }else{
      xavg = x;
      yavg = y;
    }

    if(buttonTrig == 8){
      tone(SPEAKER, 440 + x);
      
      byte yrow = 0;
      if(yavg > 100) yrow = 1;
      if(yavg > 300) yrow = 2;
      if(yavg > 500) yrow = 3;

      byte xrow = 0; // 
      if(xavg > 100) xrow = 1;
      if(xavg > 150) xrow = 2;
      if(xavg > 220) xrow = 3;
      if(xavg > 300) xrow = 4;
      if(xavg > 380) xrow = 5;
      if(xavg > 430) xrow = 6;
      if(xavg > 480) xrow = 7;
      if(xavg > 550) xrow = 8;
      if(xavg > 630) xrow = 9;
      if(xavg > 690) xrow = 10;

      if(charMap[yrow - 1][xrow - 1] == '\n'){
        lcd.clear();
        lcd.setCursor(0, 0);
      }else{
        lcd.write(charMap[yrow-1][xrow-1]);
      }
    }

    buttonTrig ++;
    
  }else{
    noTone(SPEAKER);
    buttonTrig = 0;
    xavg = 0;
    yavg = 0;
  }
}
<<
5643382
wiki
1516201581