본문 바로가기

프로그래밍

버튼스위치를 사용하여 3색 LED 색 바꾸기 준비물 - 10㏀ 저항 3개 - 버튼스위치 3개 - 3색 LED 1개 코드 // LED 출력 값(0~255) int redVal = 0; int greenVal = 0; int blueVal = 0; // 값 입력 핀 const int inputRedPin = 2; const int inputGreenPin = 3; const int inputBluePin = 4; // LED 출력 핀 const int ledRedPin = 11; const int ledGreenPin = 10; const int ledBluePin = 9; void setup() { // 핀 모드 설정 pinMode(inputRedPin, INPUT); pinMode(inputGreenPin, INPUT); pinMode(inputB.. 더보기
버튼스위치를 사용하여 LED 켜기 준비물 - 1㏀ 저항 1개 - 220Ω 저항 1개 - 버튼스위치 1개 - LED 1개(색 상관없음) 코드 const int ledPin = 13; // 출력핀(LED 연결) const int inputPin = 8; // 입력핀(스위치연결) void setup() { // 핀 모드 설정 pinMode(ledPin, OUTPUT); pinMode(inputPin, INPUT); } void loop() { // 입력핀의 값을 읽음 int readVal = digitalRead(inputPin); // 조건에 따라 LED on/off if(readVal == HIGH) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); } } 시연 영상 - .. 더보기
LED 밝기 조절하기 준비물 - 220Ω 저항 1개 - LED 1개(색 상관없음) 코드 // ledPin 값 설정 const int ledPin = 9; void setup() { } void loop() { // 0~255까지 analog값 출력 for(int i=0 ; i=0 ; i—) { analogWrite(ledPin, i); delay(10); } } 영상 알게된 점 - analogWrite 할 경우 pinMode 설정은 필요없음 - analogWrite의 범위는 0(0V) ~ 255(5V) 이다 더보기
nil, Nil, null, NSNull의 차이 nil - Objective-c object의 부재를 나타낼 때 사용. NSString * strObject = nil; Nil - Objective-c class의 부재를 나타낼 때 사용. - Objective-c class: 자신이 속한 클래스의 정보를 가진 구조체. Class myClass = Nil NULL - c-pointer의 부재(주소가 0) 및 C나 C++의 변수 및 객체에 사용 int *intPtr = NULL; NSNull - NSObject를 상속받는 객체로 collection item을 null로 설정할 필요가 있을때 사용 [myArray addObject:[NSNull null]]; if ([myArray objectAtIndex:0] == [NSNull null]) Swift에서.. 더보기
아두이노 시작하기!! 전류의 흐름 - 전류는 전압이 높은 곳에서 낮을 곳으로 흐름(물의 흐름과 같이) - (+)에서 시작해서 (-)에서 끝난다고 생각하면 됨. - 아두이노에서 (+)는 전원 입력 부분, (-)는 GND로 연결 아두이노 핀 설명 - DIGITAL 1) 디지털 통신을 하기 위한 핀으로 필요에 따라 필요한 만큼만 전원 공급 가능(HIGH, LOW) 2) INPUT, OUTPUT 모두 사용 가능.(~로 시작하는 3, 5, 6, 9, 10, 11 핀은 ANALOG OUT 가능) - POWER 1) 지속적 전원 공급을 위한 핀 2) 5V, 3.3V(3V3)에서 전원이 공급되고 GND에서 끝나야 함. - ANALOG IN : 1) HIGH와 LOW가 아닌 복잡한 데이터(온도, 거리 등)을 위해 사용되는 핀 2) 범위는 0.. 더보기
new VS alloc init new - alloc init의 단축 명령으로 객체를 메모리에 할당하고 초기화 하는 메소드까지 한번에 호출 - 인자를 사용하는 초기화 메소드(initWith-)의 사용이 필요한 경우에는 대체 불가 // 같은 역할을 함. NSObject *object = [NSObject new]; NSObject *object = [[NSObject alloc] init]; // initWithFrame은 new가 대체할 수 없음. UIView *myView = [UIView alloc] initWithFrame:CGRectZero]; alloc init - alloc은 객체를 메모리에 할당하는 역할 - init은 메모리에 할당한 객체를 초기화 하는 역할 - (init-) 메소드는 메모리가 할당된 자기 자신을 없애고 새.. 더보기
frame VS bounds 위치과 크기를 표현하는 구조체 - CGPoint : 위치를 나타내는 구조체 - CGSize : 크기를 나타내는 구조체 - CGRect : 위치와 크기를 모두 나타내는 구조체 구조체 종류 구성 값 CGPoint CGFloat x; CGFloat y; CGSize CGFloat width; CGFloat height; CGRect CGPoint origin; CGSize size; frame - 부모 view를 기준으로 하는 자기 자신(view)의 좌표 - frame을 변경할 경우 뷰의 위치와 크기를 모두 변경할 수 있음 bounds - 자기 자신(view)를 기준으로 한 자기 자신(view)의 좌표 - bounds를 변경할 경우 뷰의 크기만 변경할 수 있음< 그림1. image에 대한 frame과 boun.. 더보기