Arduino
-
버튼 누른 회수 구하기Arduino/Button 2020. 10. 22. 18:01
소스 코드 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(7,INPUT); } int count = 0; // 버튼을 누른 회수 void loop() { // 버튼이 눌렸을 때 if (digitalRead(7) == HIGH) { while (1) { if (digitalRead(7) == LOW) { Serial.println(count++); delay(100); break; } } } } 소스 코드 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(7,INPUT); } int count = 0;..
-
LCD의 문자열 출력Arduino/LCD 2020. 10. 22. 17:54
LCD에 "hello" 문자열을 출력하기 기본적인 하드웨어 연결은 LCD의 RX선에 아두이노의 3번핀에 연결한다. 꼭 3번핀이 아니어도 된다. 그리고 LCD의 +선은 아두이노의 5V선에 연결하고, -선은 아두이노의 GND에 연결한다. 소스 코드 // LCD창에 hello 띄우기 // 3번핀을 tx선을 설정하므로 LCD는 rx선에 연결되어야 한다. // LCD는 2 X 16 (2행 16열 사이즈)크기이다. #include SoftwareSerial lcd = SoftwareSerial(2,3); // rx,tx void setup() { // put your setup code here, to run once: lcd.begin(9600); // (1,1)의 위치에 hello!를 LCD에 출력(LCD의 행..
-
버튼 제어Arduino/Button 2020. 10. 21. 17:54
버튼을 아두이노와 연결해보자. 버튼의 입력핀은 11번핀을 사용한다. 저항은 10k이고, 흰색선은 5V에 연결되고, 노란선은 GND에 연결되고 붉은선은 11번핀에 연결되었다. 연결이 다 되어으면, 버튼이 눌렸거나 떼졌을 때를 판단하는 프로그램을 작성해보자. 아래의 소스를 실행해보자. 소스 코드 더보기 // 버튼이 눌리면 1을, 그렇지 않으면 0이 출력되는 예제 void setup() { // put your setup code here, to run once: Serial.begin(9600); pinMode(11,INPUT); // 1번 핀은 입/출력이 다 되는 핀이다. } void loop() { // put your main code here, to run repeatedly: Serial.print..
-
Serial Rx Tx & SoftwareSerial Rx TxArduino/Serial 통신 2020. 10. 20. 19:31
Rx & Tx 소스 코드 // 데이터 송/수신 둘 중에 하나만 해야한다. 주석을 하도록 하자. // void setup() { // put your setup code here, to run once: Serial.begin(9600); } void loop() { /* // 1. 데이터 전송하는 아두이노에서는 선을 tx에 꽂아야 한다. Serial.println("111100"); delay(100); */ } void serialEvent() { // 2. 리시브(받는 부분)하는 아두이노에서는 선을 rx에 꽂아야 한다. char c = Serial.read(); Serial.print("rx : "); Serial.println(c); } SoftwareSerial Rx & Tx 소스 코드 #incl..
-
시리얼 통신에 사용되는 함수Arduino/Serial 통신 2020. 10. 20. 19:22
readBytes함수 & readreadBytesUntil 함수 시리얼 통신에 사용되는 찾기함수이다. 소스 코드 // 함수들에 대해 알아보자. // readBytes함수 void setup() { // put your setup code here, to run once: Serial.begin(9600); Serial.setTimeout(2000); // 기본은 1000(1초)를 의미 } void loop() { // put your main code here, to run repeatedly: char temp[100]; // 입력이 있으면 if (Serial.available() > 0) { // byte len = Serial.readBytes(temp,10); byte len = Serial.re..
-
시리얼 통신과 문자열 활용 - LEDArduino/Serial 통신 2020. 10. 20. 19:16
1. 시리얼 통신을 통해 문자열을 입력받아 출력 아래의 예제를 실행하면 문제가 있다. 그 이유는 입력받아 출력한 문자들이 계속 변수 str 에 쌓여있어서 기존에 입력한 문자들이 같이 출력된다. 소스 코드 // 시리얼 통신을 통해 문자열을 입력받아 출력하기 void setup() { // put your setup code here, to run once: Serial.begin(9600); } char ch; // 전역 변수 String str; // 전역 변수 void loop() { // put your main code here, to run repeatedly: // 입력한 데이터가 있을 때, 버퍼에서 하나씩 데이터를 읽어들인다. while (Serial.available() > 0) { ch =..
-
시리얼 통신의 활용 - 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..