CodingMaker

파이썬에서 아두이노로 문자 또는 숫자 보내기 본문

Python

파이썬에서 아두이노로 문자 또는 숫자 보내기

메이커K 2018. 4. 17. 10:56

윈도우 cmd에 들어가서 명령 프롬프트 창이 열리면

pip install pySerial 을 입력한다.


설치가 끝나면 업데이트 하라는 메세지가 뜬다.


python -m pip install -U pip 입력하고 업데이트를 한다.


COM3 -->  COM6 으로 바꿔준다.


아두이노 스케치를 열어 코드를 작성한다.

y를 누르면 13번 LED가 커지고 n을 누르면 13번 LED가 꺼진다.

코드작성이 완료되면 아두이노에 업로드 한다.







파이썬에서 on을 입력하면 불이 켜지고 off를 입력받으면 불을 꺼지게 하는 코드를 작성해본다.

import serial


arduino = serial.Serial('COM6', 9600)


while(1):

    c = input()

    if c=='q':

        break

    elif c=='on':

        arduino.write(b'y')

    elif c=='off':

        arduino.write(b'n')

    else:

        c= c.encode('utf-8')

        arduino.write(c)

"""

파이썬에서 on을 입력하면 불이 켜지고

off를 입력받으면 불을 꺼지게 하는 코드를 작성해본다.

"""


아두이노에서 숫자를 보내는 코드를 작성해본다. 

void setup() {

  Serial.begin(9600);


  pinMode(13, OUTPUT);

}


void loop() {

  while (Serial.available() > 0) {

    long value = Serial.parseInt(); //숫자로 된 문자열을 숫자값으로 바꿔준다. 

    if( value >= 100) { // 들어온 값이 100보다 크면 불이 켜진다.

      digitalWrite(13, HIGH);

    } else {

      digitalWrite(13, LOW);

    }

  }

}



아두이노 스케치에서 아래의 조건으로 코딩한다.

조건 : 이전 값보다 큰 값이 들어오면 불이 켜지고

작은 값이 들어오면 불이 꺼지게 코딩한다.

void setup() {

  Serial.begin(9600);


  pinMode(13, OUTPUT);

}

long old =100;

void loop() {

  while (Serial.available() > 0) {

    long value = Serial.parseInt(); //숫자로 된 문자열을 숫자로 바꿔준다.

    if( value >= old) {

      digitalWrite(13, HIGH);

    } else {

      digitalWrite(13, LOW);

    }

    old = value;

  }

}


// 이전 값보다 큰 값이 들어오면 불이 켜지고

// 작은 값이 들어오면 불이 꺼진다.

코드 작성 완료후 아두이노에 업로드 한다.


파이썬에서 아래와 같은 코드를 작성한다. Run Module    F5   실행한다. 

import serial


arduino = serial.Serial('COM6', 9600)


while(1):

    c = input()

    if c=='q': 

        break

    else:

        c= c.encode('utf-8')

        arduino.write(c)



파이썬에서 작은 숫자를 입력하면 꺼지고 큰 숫자를 입력하면 켜진다.

'q'를 누르면 해당 파이썬을 종료한다.



숫자를 입력하면 입력한 숫자만큼 LED가 깜빡이게 하는 코딩을 아두이노 스케치에서 작성한다. 

작성한 코드를 아두이노에 업로드한다.

void setup() {

  Serial.begin(9600);


  pinMode(13, OUTPUT);

}

long old =100;

void loop() {

  while (Serial.available() > 0) {

    long value = Serial.parseInt(); //숫자로 된 문자열을 숫자로 바꿔준다.

    for(long i=0; i<value; i++){

      digitalWrite(13, HIGH);

      delay(500);

      digitalWrite(13, LOW);

      delay(500);

    }

  }

}


// 입력한 숫자 만큼 13번 LED가 깜빡인다.

 


파이썬에서 숫자를 키보드로 입력하면 아두이노에서 LED가 깜빡인다.

숫자 2를 입력하면 두번 LED가 깜빡인다.

'Python' 카테고리의 다른 글

Python  (0) 2019.12.03
Python 제어문  (1) 2019.12.02
Python에서 아두이노 서보 모터 움직이기  (0) 2018.05.08
아두이노에서 Python으로 문자열 보내기  (1) 2018.04.24
Python 사진,영상 불러오기  (0) 2018.04.05