공부중
[Arduino] 입출력 실습 본문
728x90
아두이노 실습.
0. 기본 스크립트
// 전처리
void setup() {
// put your setup code here, to run once:
// 초기화
}
void loop() {
// put your main code here, to run repeatedly:
// 데이터 처리
}
setup에는 초기화 문을 넣고,
loop 부분에 데이터 처리 문을 넣는다.
1.보드 연결
툴 -> 보드 -> Arduino AVR Boards -> 본인 보드 선택
포트도 설정
포트를 설정하지 않을 경우 아래와 같은 오류 메시지 발생한다.
Using Port : COM5 Using Programmer : arduino Overriding Baud Rate : 115200 avrdude: ser_open(): can't open device "\\.\COM5": ������ ������ ã�� �� �����ϴ�. |
코드 작성 후 업로드
2. 연결 및 기본 예제
프린트문 계속 출력
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("hello, Arduino ");
Serial.println("안녕, 아두이노 ");
}
시리얼 모니터 확인
한국말 출력도 문제 없다.
3. 이진수, 십진수, 십육진수 출력
int n = 123; // 예시 정수
float f = 123.456; // 예시 부동소수점
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("\n\n여기부터 시작");
Serial.println(n, BIN); // 이진수 출력
Serial.println(n, DEC); // 십진수 출력, 디폴트라면 DEC는 생략 가능
Serial.println(n, HEX); // 십육진수 출력
Serial.println(); // 빈 줄 출력
Serial.println(f); // 부동소수점 수 출력
Serial.println(f, 5); // 소수점 이하 다섯 자리 출력
}
4. Serial.available()
Serial.available()은 시리얼 수신 버퍼에 있는, 아직 읽혀지지 않은 데이터의 바이트 수를 반환합니다.
반환값은 int 타입으로, 사용 가능한 데이터의 바이트 수를 나타냅니다. 만약 사용 가능한 데이터가 없다면 0을 반환합니다.
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if (Serial.available() > 0) {
byte data = Serial.read();
Serial.print("Echo back : ");
Serial.print(" ");
Serial.print("ASCII : ");
Serial.print(data);
Serial.print(" , char : ");
Serial.println((char)data);
}
}
데이터를 전송하면, 아스키코드(data)와 문자로 변환하여 출력
만약 'hello'라는 여러 문자를 보낸다고 해도, 문자 하나씩 전송되므로 위의 예시처럼 하나하나 나오게 된다.
char 부분이 내가 전송한 값이다. 즉, 1을 보내면 'Echo back : ASCII : 49 , char : 1'이 출력된다.
728x90
'프로그래밍 > Arduino' 카테고리의 다른 글
[Arduino] 조도센서 CDS 실습 (0) | 2025.01.23 |
---|---|
[Arduino] error 해결 'ledcAttachPin' was not declared in this scope; did you mean 'ledcAttach? (0) | 2025.01.23 |
[Arduino] 가변저항 실습 (0) | 2025.01.22 |
[Arduino] 푸시 버튼 실습 (0) | 2025.01.22 |
[Arduino] PIN 출력 실습 (0) | 2025.01.22 |