분류 전체보기
-
시리얼 통신의 활용 - LED와 센서Arduino/Serial 통신 2020. 10. 19. 19:00
10k저항과 조도 센서를 연결하고 시리얼 모니터가 아닌 시리얼 플로터로 결과를 보자. 연결은 다음과 같이 한다. 시리얼 플로터는 툴 탭을 클릭하면 나온다. 조도 센서를 어둡게하면서 밝게하면 그 그래프를 볼 수 있다. 소스 코드 // 10k저항과 조도 센서를 설치하고 // 시리얼 모니터가 아닌 시리얼 플로터로 결과를 보자. // 조도 센서를 어둡게하면서 밝게하면 그 그래프를 볼 수 있다. void setup() { // put your setup code here, to run once: Serial.begin(9600); // 바운드 레이트 정의 } void loop() { // put your main code here, to run repeatedly: Serial.println(analogRead(..
-
시리얼 통신 기초Arduino/Serial 통신 2020. 10. 19. 18:28
나중에 자바와 시리얼 통신을 할 것이므로 이 부분은 중요하다. Serial(직렬)통신은 연속적으로 통신 채널이나 컴퓨터 버스를 거쳐 한 번에 하나의 비트 단위로 데이터를 전송하는 과정 Arduino에서 시리얼 통신하는 방법 setup함수에서 Serial.begin(9600)을 호출한다. Serial.begin함수에서는 초당 전송할 비트수 정의한다. 이 숫자가 클수록 많이 보낸다. 근데 불안정하다. Serial.println함수 혹은 Serial.write함수를 사용하여 '시리얼 모니터'에 출력한다. Serial.read함수를 사용하여 시리얼로 들어오는 1Byte 내용을 입력한다. Serial.read함수는 입력되는 값을 바이트 단위로 읽는다. 소스 코드 void setup() { // put your s..
-
포텐시오미터의 값을 읽어 LED밝기 조절하기Arduino/LED 제어 하기 2020. 10. 18. 22:36
부품의 설명 신호는 아두이노의 A0핀으로 읽는다. 저항의 크기를 가변으로 조절하는 장치이며, 가변저항은 극성이 없으므로 VCC와 GND가 바뀌어도 된다.입출력 형태는 아두이노의 값을 입력한다. 포텐시오미터의 특징은 다음과 같다. 1. 저항을 변경하면 전압이 변함 2. 출력된 전압 값은 아두이노에 아날로그 형태로 입력 (아두이노는 저항의 값에 따라 입력값을 0~1023의 값의 형태로 변환하여 입력) 포텐시오미터와 아두이노를 다음과 같이 연결하자. LED에는 모두 220옴의 저향을 달았다. 입력핀은 A0를 쓸 것이다. 포텐시오미터의 값을 읽어 한 개의 LED의 밝기를 조절하는 예제. 아두이노를 다음과 같이 연결해보자. LED의 핀은 3번핀으로 쓸 것이다. 입력핀은 A0를 쓸 것이다. 소스 코드 #define..
-
제네릭 변수의 참조와 상속의 관계JAVA/Generic 2020. 10. 18. 22:12
아래와 같은 프로그램이 있다고 하자. 위의 OhMethod함수의 인자로 전달될 수 있는 참조 값의 자료형은 두 가지이다. 1. FruitBox의 인스턴스 참조 값 2. FruitBox를 상속하는 인스턴스의 참조 값 위의 클래스 Fruit와 Apple 클래스의 상속 구조에서 FruitBox 클래스는 OhMethod의 인자가 될 수 없다. 반드시 키워드 extends를 이용해서 상속이 명시된 대상만 인자로 전달 될 수 있다. ... extends FruitBox 다음과 같은 구조이다. 일단 보고 넘기자. 아래에 이 내용이 나온다. 와일드 카드와 제네릭 변수의 선언 와일드 카드란, 이름 또는 문자열에 제한을 가하지 않음을 명시하는 용도로 사용하는 특별한 기호이다. 위의
-
제네릭 메소드와 배열JAVA/Generic 2020. 10. 18. 21:09
배열도 인스턴스이므로 제네릭 매개변수에 전달이 가능하다. 하지만, 다음과 같은 문장을 쓸 수 없다. 아래와 같이 ShowArrayData함수의 매개변수로 배열 인스턴스를 선언하면, 매개변수에 전달되는 참조 값을 배열 인스턴스의 참조 값으로 제한할 수 있다. 그리고 이렇게 되면 참조 값은 배열 인스턴스의 참조 값임이 보장되므로 []연산을 허용한다. 아래와 같이 []연산이 필요하면 매개변수의 선언을 통해서 전달되는 참조 값을 배열의 참조 값으로 제한해야 한다. 예제 프로그램 실행결과 소스 코드 더보기 public class Exam1 { public static void main(String[] args) { String[] stArr = new String[] { "Hi", "I am so happy", ..
-
매개변수의 자료형 제한JAVA/Generic 2020. 10. 18. 20:52
개념 매개변수의 자료형 제한 예제1 프로그램 실행결과 소스 코드 더보기 interface SimpleInterface { public void ShowYourName();//추상 메소드 } class UpperClass { public void ShowYourAncestor(){System.out.println("UpperClass");} } class AAA extends UpperClass implements SimpleInterface { @Override public void ShowYourName()//메소드 정의 { System.out.println("AAA"); } } class BBB extends UpperClass implements SimpleInterface { @Override p..
-
제네릭 메소드JAVA/Generic 2020. 10. 18. 18:30
1. 제네릭 메솓의 정의와 호출 자바는 클래스 전부가 아닌 특정 메소드에 대해서만 제네릭 선언하는 것을 허용한다. 프로그램 실행결과 제네릭 메소드의 호출 과정에서 전달되는 인자를 통해서 제네릭 자료형을 결정할 수 있으므로 자료형의 표현은 생략 가능하다. 소스 코드 더보기 class AAA { @Override //toString함수는 Object 클래스의 메소드 public String toString() {return "Class A";} } class BBB { @Override //toString함수는 Object 클래스의 메소드 public String toString() {return "Class B";} } class InstanceTypeShower { int showCnt = 0; //제네..
-
제네릭 클래스의 이해와 설계JAVA/Generic 2020. 10. 18. 18:17
1. 제네릭 클래스가 필요한 이유 아래와 같이 클래스가 있다고 하자. 위의 클래스에서 구현의 편의만 놓고 보면, FruitBox 클래스가 더 좋아 보인다. 그런데, FruitBox 클래스는 자료형에 안전하지 못하다는 단점이 있다. AppleBox와 OrangeBox는 구현의 불편함이 따르는 단점이 있다. 그러나 자료형에 안전하다는 장점이 있다. AppleBox, OrangeBox의 장점인 자료형의 안전성과 FruitBox의 장점인 구현의 편의성을 한데 모은 것이 바로 제네릭이다. 자료형의 안전성에 대한 예제1 프로그램 실행 및 에러 발생 문구 위에서 실행 중간에 Class Casting Exception이 발생하는데 위와 같이 실행 중간에 발생하는 예외는 컴파일 과정에서 발견되는 오류 상황보다 발견 및 ..