2021.11.03 ~ 2021.11.08

진행사항
1. 시리얼 소프트 버튼 제작 및 테스트
2. 외부전력 사용하여 열선 패드 작동
3. 회로도 작성

구매한 부품
1. 전도성 천, 스펀지5T, 린넨천
2. 열선패드, 트랜지스터(Tip120), 9V 건전지, 저항(10k옴)

시리얼 소프트 버튼 제작
1. 전도성 천을 둥글게 배치하여 소프트 버튼 제작
2. 6개 천을 디지털핀에 각각 연결

문지를 때마다 린넨 천이 조금씩 찢어진다…

시리얼 소프트 버튼 테스트

//코드 1_시리얼 소프트 버튼에 해당하는 디지털 입력 프린트
#define buttonsNum 6
int buttons[buttonsNum]={2,3,4,5,6,7};

void setup() {
  Serial.begin(9600); 
  for(int i=0;i<buttonsNum;i++){ 
    pinMode(buttons[i],OUTPUT);
    digitalWrite(buttons[i],HIGH);
  }  
}

void loop() { 
  for(int i=0;i<buttonsNum;i++){
    if(digitalRead(buttons[i])==LOW){
      Serial.println(i+1);
    }
  } 
}
//코드2_시리얼 소프트 버튼 값과 이전 값을 비교하여 시계방향 or 반시계방향 프린트
//프린트_현재 값, 이전 값, 현재값-이전값, 1 또는 -1, 시계방향 or 반시계방향
#define buttonsNum 6
int buttons[buttonsNum]={2,3,4,5,6,7};
int val=0;
int preVal=0;
int dir=0; 

void setup() {
  Serial.begin(9600); 
  for(int i=0;i<buttonsNum;i++){ 
    pinMode(buttons[i],OUTPUT);
    digitalWrite(buttons[i],HIGH);
  }  
}

void loop() { 
  for(int i=0;i<buttonsNum;i++){
    if(digitalRead(buttons[i])==LOW){
      val=i+1;
    }
  } 

  dir=check(val-preVal); 

  Serial.print(val);
  Serial.print("\t");
  Serial.print(preVal);
  Serial.print("\t");
  Serial.print(val-preVal); 
  Serial.print("\t");
  Serial.print(dir); 
  Serial.print("\t");
  
  if(dir==1){
    Serial.println("clockWise");
  }else if(dir==-1){
    Serial.println("counterClockWise");
  }
  preVal=val; 
  
  delay(500);
}

int check(int val){
  if(val<0){  
    return 1;
  }else if(val>0){
    return -1;
  }
} 

열선패드 작동 (외부전력사용x)
1. 체온보다 조금 더 따뜻한 정도의 온도
(열선패드: 최대 600mA 소비 / 디지털 핀에서 나올 수 있는 최대 전류: 400mA)
2. 열선패드을 천으로 덮어두지 않으면 금방 식어버림

열선패드 작동 (외부전력 사용o)
1. 정확한 온도는 모르지만, 아두이노만 사용했을 때보다 따뜻함
2. 마찬가지로열선패드을 천으로 덮어두지 않으면 금방 식어버림
3. 버튼 필요할까?

회로도