Arduino (49) 썸네일형 리스트형 [Arduino] 스위치 실습: 풀업(Pull-up) 저항 이해하기 풀업(Pull-up) 저항 이해하기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 스위치 모듈 저항 점퍼 케이블 (회로 연결) int switch_pin = 8; void setup(){ Serial.begin(9600); // 시리얼 통신 오픈 pinMode(switch_pin, INPUT); // 8번 핀 입력 설정 } void loop(){ int read_switch = digitalRead(switch_pin); // switch 값(HIGH or LOW) 저장 Serial.println(read_switch); // switch 값(HIGH or LOW) 출력 delay(100); } 8번 핀은 기본적으로 VCC와 연결되어 있다. 따라서 스위치가 눌러지지 않았을 때는 HIGH인.. [Arduino] 스위치 실습: 플로팅(Floating) 현상 이해하기 플로팅(Floating) 현상 이해하기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 스위치 모듈 점퍼 케이블 (회로 연결) int switch_pin = 8; void setup(){ Serial.begin(9600); pinMode(switch_pin, INPUT); // 입력핀 설정 } void loop(){ int read_switch = digitalRead(switch_pin); // switch_pin 데이터를 읽고 read_switch 변수에 저장 Serial.println(read_switch); // read_switch 값 출력 delay(100); } 위와 같이 회로를 구성하고 코드를 작성하면, 이론적으로는 스위치를 눌렀을 때 8번 핀은 VCC와 연결되어 1(HIGH.. [Arduino] 스위치 실습: 풀업(Pull-up) 및 풀다운(Pull-down) 저항 풀업 및 풀다운 저항은 플로팅 현상을 방지하기 위해 사용된다. 풀업(Pull-up) 저항 풀업 저항은 아래와 같이 회로를 구성할 수 있다. 아래와 같이 저항을 VCC에 연결해 준다. 풀업 저항에서 스위치가 눌러지지 않았을 때(스위치 열린 상태) 핀은 HIGH 값을 출력한다. 즉, VCC와 GND가 연결되지 않아 전류는 흐르지 않게 되고, VCC와 핀은 일체화가 된다. 그리고 스위치가 눌러졌을 때(스위치 닫힌 상태) 전류는 GND로 흐르며 핀은 LOW 값을 출력한다. 풀다운(Pull-down) 저항 풀다운 저항은 풀업과 달리 저항을 GND에 연결해 준다. 풀다운 저항에서 스위치를 누르지 않았을 때(스위치 열린 상태) 핀은 LOW 값을 출력한다. 그리고 스위치를 눌렀을 때(스위치 닫힌 상태) 핀은 VCC와 .. [Arduino] 스위치 모듈이란? 대표적인 입력 신호인 스위치 모듈은 보통 네 개의 핀으로 구성되어 있다. 네 개의 핀으로 구성된 스위치 모듈은 1과 3, 2와 4핀이 서로 연결되어 있다. 평소에는 두 개의 그룹(1과 3, 2와 4)으로 나누어져 있으나, 스위치를 누르게 되면 네 개의 핀이 모두 연결되면서 전류가 흐르게 된다. (보통 간단한 회로를 구성할 때는 1과 2, 2개의 핀을 이용해서 회로를 구성해도 된다.) 스위치 회로를 설계하다 보면, 스위치를 누르지 않았는데도 전류값이 읽히는 경우가 있다. 이런 현상을 플로팅 현상이라고 하는데, 스위치를 누르지 않아 핀들이 연결되지 않았음에도 잔류 전류로 인해 전류가 흐르는지 흐르지 않는지 알 수 없는 상태가 된다. 또한 플로팅 현상이 발생하면 원하지 않는 결괏값을 도출할 수 있기 때문에, .. [Arduino] Serial 실습: 시리얼 모니터에 'on'과 'off' 입력(전송)하여 LED On/Off 하기 시리얼 모니터에 'on'과 'off' 입력(전송)하여 LED On/Off 하기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 LED 저항 점퍼 케이블 (회로 연결) int led = 13; void setup() { Serial.begin(9600); pinMode(led, OUTPUT); Serial.println("LED Control"); } void loop() { String ledOnOff; ledOnOff = Serial.readString(); if(ledOnOff == "on"){ digitalWrite(led, HIGH); Serial.println("LED On"); } else if(ledOnOff == "off"){ digitalWrite(led, LOW); Ser.. [Arduino] Serial 실습: 시리얼 모니터에 'o'와 'x' 입력(전송)하여 LED On/Off 하기(flag) 시리얼 모니터에 'o'와 'x' 입력(전송)하여 LED On/Off 하기(flag) (준비물) 아두이노 우노(Arduino Uno) USB 케이블 LED 저항 점퍼 케이블 (회로 연결) int led = 13; char flag = 0; void setup(){ Serial.begin(9600); pinMode(led, OUTPUT); Serial.println("Start LED Control."); } void loop(){ if(flag) // 만약 flag가 1이면, led On digitalWrite(led, HIGH); else digitalWrite(led, LOW); } void serialEvent(){ char ledOnOff; ledOnOff = Serial.read(); // 수신 .. [Arduino] Serial 실습: 시리얼 모니터에 'o'와 'x' 입력(전송)하여 LED On/Off 하기 시리얼 모니터에 'o'와 'x' 입력(전송)하여 LED On/Off 하기 (준비물) 아두이노 우노(Arduino Uno) USB 케이블 LED 저항 점퍼 케이블 (회로 연결) int led = 13; void setup(){ Serial.begin(9600); pinMode(led, OUTPUT); Serial.println("Start LED Control."); } void loop(){ } // 시리얼 통신으로 데이터를 송신 받으면 함수 호출 void serialEvent(){ char ledOnOff; //ledOnOff = Serial.read() 없이, if(Serial.read() == '')를 바로 사용하면 두, 세번 전송을 해주어야 읽어들이기 때문에 느리다. ledOnOff = Seria.. [Arduino] Serial 실습: 시리얼 모니터에 입력·출력하기 (serialEvent) 시리얼 모니터에 입력·출력하기 (serialEvent) (준비물) 아두이노 우노(Arduino Uno) USB 케이블 void setup(){ Serial.begin(9600); // 전송 속도 9600 설정 Serial.print("Serial Test, "); Serial.println("Start!"); } void loop(){ } // 데이터가 수신될 때 함수 호출(즉, 데이터가 존재할 때 호출) void serialEvent(){ // 데이터가 수신되면 호출되는 함수 char data; data = Serial.read(); // 수신된 데이터를 data에 저장 Serial.print(data); // data 출력 } 이전 1 2 3 4 5 6 7 다음