본문 바로가기

분류 전체보기199

Arduino - 버튼 (Led.h, Button.h) 버튼 버튼 택트(Tact) 스위치 풀업 방식 스위치 on, off 상태 풀업 저항 전압 소스와 회로 내에 있는 입력 핀 사이에 배치 - 디폴트 HIGH 버튼/스위치는 입력 핀과 접지(GND) 사이에 배치 - 스위치를 누르면 LOW 풀다운 방식 스위치 on, off 상태 풀다운 저항 접지와 회로 내에 있는 입력 핀 사이에 배치 - 디폴트 LOW 버튼/스위치는 전원 소스와 핀 사이에 배치 - 스위치를 누르면 HIGH 디지털 입력 읽기 digitalRead(핀번호) 해당 핀 번호의 값 읽기 HIGH/LOW 리턴 풀다운 버튼 버튼 연결 저항 : 10K옴 디폴트 : LOW 누른 경우: HIGH 버튼으로 LED 켜고 끄기(풀다운) int LED = 4; int BUTTON = 11; void setup() { pi.. 2020. 10. 15.
Arduino - 피에조 부저 피에조 부저 피에조 부저 부저 Active Buzzer 회로 내장형 전원만 인가되면 단일음 Passive Buzzer 회로 내장하지 않음 필요한 음역대의 주파수(펄스)를 제공하여 멜로디 연주 가능 PWM 이용 회로구성 능동 부저 int buzzerPin = 5; void setup() { pinMode(buzzerPin, OUTPUT); } void loop() { digitalWrite(buzzerPin,HIGH); delay(50); digitalWrite(buzzerPin,LOW); delay(400); } 수동 부저 Passive Buzzer 주파수 HIGH/LOW 신호의 비율 신호음의 음 또는 음높이 결정 Hz 단위 제어 함수 tone(핀번호, 주파수 [, 기간]) 피에조 스피커에 특정 주파수를.. 2020. 10. 15.
Arduino - 16x2 LCD 16x2 LCD 16x2 LCD 1602 Character LCD (16×2, LiquidCrystalDisplay 1602 V1) 1줄에 16개의 문자씩 2줄을 보여주는 LCD 모듈 백라이트는 5V, 가변 저항으로 폰트의 명암을 조절 LCD Interface Converter I2C 인터페이스를 사용해서 LCD를 제어 단 4개 선으로 LCD 조작 공급전압 : DC 2.5-6V 점퍼 스위치 : LCD 백라이트 ON/OFF 제어 가변저항 : LCD 명암 조절 I2C 주소 초기값 : 0x27 또는 0x3F 실수값을 문자열로 변경하기 char * dtostrf(double __val, signed char __width, unsigned char \__prec, char * __s); __val : 변환할 실.. 2020. 10. 15.
Arduino - 3색 LED 3색 LED 3색 LED 3색 LED R, G, B 핀에 0~255 사이의 값을 analogWrite() 함수로 출력 3색의 조합으로 색상 결정 자동으로 랜덤하게 색 바꾸기 const int redPin = 7; // RED const int greenPin = 5; // GREEN const int bluePin = 3; // BLUE void setup() { randomSeed(analogRead(A0)); // 랜덤한 숫자가 필요하다, 아두이노 A0 핀에 아무것도 꽂혀있지 않으면 랜덤값을 뿌려주기 때문에 이용 analogWrite(redPin, 255); // 0~255 random delay(1000); analogWrite(redPin, 0); analogWrite(greenPin, 255);.. 2020. 10. 15.
Arduino - LED (TrafficLight.h) LED LED 브레드 보드(Bread board, 빵팡) 남땜이 필요없는 프로토타입용 보드 ① VCC (빨간색) ② GND (검은색) ③ 부품 연결선 점퍼선 브레드 보드에 부품들을 서로 연결할 때 이용 LED 발광 다이오드 전류가 흐르면서 빛을 발하는 반도체 다이오드 : 전류를 한쪽 방향으로만 흐르게 함 과다 전류가 흐를 경우 파손 LED에 저항을 배치 저항 전기의 흐름을 제한 기본 구성 pinMode() 디지털 핀의 모드를 출력 또는 입력으로 설정하는 함수 pinMode(핀 번호, 모드) 매개변수 핀 번호 : 모드를 설정하고자 하는 핀 번호 모드: 출력인 경우 OUTPUT, 입력인 경우 INPUT 반환값 : 없음 사용 예 piMode(13, OUTPUT); //13번 핀을 출력 모드로 설정 pinMod.. 2020. 10. 15.
Arduino - 개발환경 구축 개발환경 구축 개발 환경 구축 Arduino IDE https://www.arduino.cc/ Software > DOWNLOADS 드라이버 모두 설치 Arduino IDE 디폴트로 설치 진행 C:\Program Files (x86)\Arduino 개발환경 구축 - VSCode Vscode를 위한 설정 아두이노 설치 폴더 arduino_debug.l4j.ini, arduino.l4j.ini java 머신의 설정파일 arduino_debug.l4j.ini -Xms128M -Xmx512M -DDEBUG=false -Dfile.encoding=UTF8 -Djava.net.preferIPv4Stack=true Arduino IDE 보드 선택 툴 > 보드 > Arduino Uno 포트 선택 툴 > 포트 > COM.. 2020. 10. 15.
Arduino - 아두이노 소개 아두이노 소개 아두이노? 2005년 이탈리아 이브레아에서 예술가와 디자이너를 위한 마이크로 컨트롤러 프로젝트로 시작 아두이노 하드웨어(아트멜의 AVR 시리즈 마이크로컨트롤러)와 소프트웨어(프로그램 개발을 위한 전용 라이브러리를 포함하는 개발 환경)를 함께 지칭 아두이노 하드웨어는 마이크로컨트롤러 보드의 일종임 아두이노 보드라고도 함 마이크로컨트롤러(AVR uC) + 커넥터 + α 아두이노의 하드웨어와 소프트웨어는 모두 오픈 소스 정책에 따라 공개되어 있음 아두이노 우노 특수 목적용 아두이노 보드 아두이노 나노 아두이노 프로 미니 크기 비교 특수 목적용 아두이노 보드 릴리패드: 웨어러블 제작 에스플로라: 센서 및 입력 장치 포함 로봇: 주행장치 개발 아두이노 우노와 아두이노 메가2560 쉴드 (Shield.. 2020. 10. 15.
C++ - 상속 상속 상속 상속의 필요성 코드 중복 상속 계층 구조도 상속에서의 생성자, 소멸자 Python은 생성자 1개, C++은 여러개 Why? 오버로드 기능! 부모 클래스의 생성자를 지정하는 방법 : 멤버 초기화 리스트 #include #include using namespace std; class Shape { int x, y; public: Shape() { cout 2020. 10. 12.
C++ - 복사생성자와 정적멤버 복사생성자와 정적멤버 함수로 객체 전달하기 객체를 함수로 전달하기 함수 호출 시 객체를 매개변수로 전달하면 객체의 복사가 일어남 객체의 주소를 함수로 전달하기 함수 호출시 객체의 주소를 전달하면 객체의 복사가 일어나지 않음 참조자 매개변수 사용하기 효과는 포인터를 넘기는 것과 동일하나 포인터 보다 가독성이 좋아짐 함수가 객체를 반환 객체를 함수의 매개변수로 전달할 때와 같이 객체의 복사가 일어남 Pizza pizza = createPizza(); // 이런 함수를 팩토리 함수라고 한다. 복사 생성자가 사용되는 시점 함수의 매개변수로 객체를 전달할 때 객체를 대입할 때 복사 생성자 MyClass(const MyClass & other){ // 복사생성자의 매개변수타입은 지정되어있다. // 객체 초기화 //.. 2020. 10. 12.
C++ - 객체의 동적 생성 객체의 동적 생성 객체의 동적 생성 객체에 대해서도 동일한 원칙 적용 멤버 접근에 대한 표현이 다름 포인터_변수->멤버 Dog *pDog = new Dog; pDog->age = 10; : delete pDog; #include #include #include using namespace std; class Dog { public: int age; string name; Dog() { cout width; } }; int main(int argc, char const *argv[]) { Rectangle rect; cout 2020. 10. 12.
C++ - 동적 할당 메모리 동적 할당 메모리 프로그램에서의 메모리 스택(Stack) 지역 변수 할당 (정적할당) 시스템에 의해 관리 힙(Heap) 동적 메모리 할당 개발자에 의해 관리 new, delete new 동적으로 힙에 메모리를 할당 delete 동적으로 힙에 할당된 메모리를 회수 파괴자가 호출됨 동적 메모리를 회수 하지않으면 가비지(garbage) 증가 -- 메모리 누수 class T {}; T *p = new T; T *p = new T[N]; T *p = new T[N] { initializer1, ... , initializeerN}; int *p; p = new int[5]; int *p = new int[5] {0, 1, 2, 3, 4}; int *p = new int; : delete p; // 단일 데이터 삭.. 2020. 10. 12.
C++ - 포인터 포인터와 동적 객체 생성 포인터 포인터(pointer) 메모리의 주소값을 저장하는 변수 변수 선언시 타입 뒤에 *를 지정 int *p; // 정수를 가리키는 포인터 선언 주소 연산자 & 기존 변수의 주소 값을 획득하여 포인터 변수에 저장할 때 사용 int number = 10; int *p; // 정수를 가리키는 포인터 선언 p = &number; 간접 참조 연산자 * 포인터 변수에는 주소가 저장되어있음 그 주소에 저장되어 있는 데이터를 얻을 때 사용 #include using namespace std; int main() { int number = 0; double d = 20.2; int *p = &number; // p = &d; // 에러 double *pd = &d; cout 2020. 10. 12.