IOT 라즈베리파이 GPIO 제어

강준호·2024년 5월 7일
0

IOT

목록 보기
12/13

GPIO

전체 40개 핀중 26개만 GPIO(general purpose input output) 포트로 사용할 수 있음.

  • 14개 핀은 3.3V GND 등 사전 지정된 핀임.

  • GPIO 14(UART_TXD) 이런건 둘다 기능이 가능한것.

브레드보드

  • 시작은 3.3을 그라운드에 연결하는것

저항 구하기

  • 22 * 100 = 2200 옴
  • 첫째수둘째수 * 곱하는수

GPIO 18번과 저항하고 연결해야함.

GPIO 제어방법

#include<stdio.h>
#include<fcntl.h>
#include<string.h>
#include <stdlib.h>
#include <unistd.h>
int ledControl(int gpio)
{
  int fd;
  char buf[BUFSIZ];
  fd = open("/sys/class/gpio/export", O_WRONLY);
  sprintf(buf, "%d", gpio);
  write(fd, buf, strlen(buf));
  close(fd);

  sprintf(buf,/sys/class/gpio/ gpio%d/direction”, gpio);
  fd = open(buf, O_WRONLY);
  write(fd, “out”, 3);
  close(fd);
  sprintf(buf, "/sys/class/gpio/gpio%d/value", gpio);
  fd = open(buf, O_WRONLY);
  write(fd, "1", 1);
  close(fd);
  getchar();
  fd = open("/sys/class/gpio/unexport", O_WRONLY); //GPIO 18
  sprintf(buf, "%d", gpio);
  write(fd, buf, strlen(buf));
  close(fd);
  return 0;
}

int main(int argc, char **argv[])
{
  int gno;
  if(argc < 2)
  {
  printf(“input error \n”);
  return -1;
  }
  gno = atoi(argv[1]);
  ledControl(gno);
  return 0;
}

p32,33 4.1 GPIO 제어- pigpio <- 이것 안봐도돼

스위치

  • 우리는 39가 아니라 pigpio 사용해서 p40 이야.
  • 스위치가 눌러져있으면 0

PWM

  • 듀티 사이클을 사용함.

  • 한 주기 내에서 ON/OFF

  • 13번 핀 주기는 0.5초 dutycycle 은 50%


10-2 R3 라즈베리파이 센서 제어 및 원격제어

시리얼 통신 = 한번에 한비트만 보내는.

  • 파란색이 ground
  • PC와 프린터 데이터가 송수신

UART

  • 시리얼 통신
  • Minicom 이 라즈베리파일 에뮬레이터 터미널 = putty 같은거

SPI

  • 아날로그 신호를 ADC 칩으로 디지털로 변환해서 라즈베리 파이로 보내줌.

  • SPI


26 번에서 초기화 29 번에서 핀세팅

77~80 이 추가된것. 나머지는 채팅서버와 동일.

0개의 댓글

관련 채용 정보