Skip to content

Instantly share code, notes, and snippets.

@chalkpe
Last active June 8, 2018 07:12
Show Gist options
  • Select an option

  • Save chalkpe/f8e8cc2bd67eeb7590df59bcf4f34da1 to your computer and use it in GitHub Desktop.

Select an option

Save chalkpe/f8e8cc2bd67eeb7590df59bcf4f34da1 to your computer and use it in GitHub Desktop.
마프 수행

모터 특징

  • DC 모터: 압력 전류 방향으로 방향 제어, 고회전에 유리, RC카 등
  • 서보 모터: PWM 신호로 0-180도 위치 설정 가능, 제한적 범위; 정확한 위치 제어, 로봇 관절 등 회전각 제어
  • 스텝 모터: 방향 속도 + 회전각 정밀 제어. 제어 복잡. 고회전보단 정밀 제어. 3D 프린터 등

8*8 매트릭스

Rx에 high를 주었을 때 Cy에서 high가 읽히면 버튼x y가 눌린 것

byte R[4] = { ?, ?, ?, ? };
byte C[4] = { ?, ?, ?, ? };

bool button[4][4] = {
  {false, false, false, false},
  {false, false, false, false},
  {false, false, false, false},
  {false, false, false, false}
};

void setup() {
  for(int i = 1; i <= 4; i++) {
    pinMode(C[i], INPUT);
    pinMode(R[i], OUTPUT);
    digitalWrite(R[r], LOW);
  }
}

void loop() {
  for(int r = 1; r <= 4; r++) {
    digitalWrite(R[r], HIGH);
  
    for(int c = 1; c <= 4; c++) {
      button[r][c] = digitalRead(C[c]);
    }

    digitalWrite(R[r], LOW);
  }
}

후면감지

#define ECHO ?
#define TRIG ??
#define BUZZ ???

void setup() {
  pinMode(ECHO, INPUT);
  pinMode(TRIG, OUTPUT);
  pinMode(BUZZ, OUTPUT);
}

void loop() {
  digitalWrite(TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG, LOW);

  long d = pulseIn(ECHO, HIGH) * 0.034 / 2;
  if (d > 300) return;

  tone(BUZZ, 440); delay(d * 2);
  noTone(); delay(30);
}

I2C 특)

  • 데이터 송수신 선 (SDA) + 송수신 타이밍 동기화를 위한 클럭 선 (SCL)
  • 하나의 마스터와 1-127개의 슬레이브로 이루어짐
  • SDA SCL 모두 High -> bus 상태가 busy가 아님 -> 데이터 전송 시작 가능
  • 동기화 통신 방식: 시리얼 통신과 달리 (SCL로 어찌어찌 잘 해서) 통신 속도 따로 정할 필요 없음
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment