Oct
14

Arduino의 직렬에서 문자열을 읽는 방법

10/14/2023 04:30 PM ~에 의해 Admin 입력 Iot


이 빠른 튜토리얼에서는 Arduino 직렬 모니터 또는 기타 직렬 터미널에서 사용자 입력 문자열을 읽는 방법을 살펴보겠습니다. 빠른 단계.

  • 기대하는 최대 사용자 입력이 될 serial_buffer_len을 정의하세요.
  • 원하는 직렬 전송 속도를 설정합니다.
  • Serial.available()을 사용하여 사용 가능한 직렬 데이터가 있는지 확인하세요.
  • 사용자 정의 read_serial_input() 함수를 호출하여 serial_buffer를 로드합니다.
//Serial buffer
#define serial_buffer_len  80
char serial_buffer[serial_buffer_len];
String user_input = "";

void setup() { 
	Serial.begin(9600);
}

void loop() {
	if (Serial.available() > 0){
		if (read_serial_input(Serial.read(), serial_buffer, serial_buffer_len) > 0) {
			user_input = String(serial_buffer);
		}
		Serial.println("serial user input:" +user_input);	
	}
}

// funtion to read user serial input
int read_serial_input(int read_ch, char *buffer, int len) {
    static int pos = 0;  
    int rpos;   
    if (read_ch > 0) {
        switch (read_ch) {
            case '\r': // Ignore CR
                break;
            case '\n': // Return on new-line
                rpos = pos;
                pos = 0;  // Reset position index ready for next time
                return rpos;
            default:
                if (pos < len-1) {
                    buffer[pos++] = read_ch;
                    buffer[pos] = 0;
                }
        }
    }
    return 0;
}

샘플 코드를 업로드한 후 시리얼 모니터를 열고 hello world와 같은 내용을 입력하면 시리얼 모니터에 출력되는 것을 볼 수 있습니다. 이는 사용자로부터 문자열을 입력하고 그에 대한 작업을 수행하려는 경우에 매우 유용한 코드 조각입니다.


당신의 생각

검색
스폰서
크립토워치
우리를 따르라
공지 사항

새로운 도구가 추가되었습니다: SVG 확대/축소 치수 계산기.

스폰서