Monday, March 25, 2013

Communicate with Arduino in Python programmatically

The previous post demonstrate "Talk with Arduino Due in Python Shell". It will be implement programmatically in module.

  • After open the port, the Arduino will reset. So I insert delay for 3 seconds after serial.Serial('/dev/ttyACM1', 9600).
  • In my board, 115200 seem not too stable. I modify the baud rate to 9600.

Python code:
import serial
import time

# assign your port and speed
ser = serial.Serial('/dev/ttyACM1', 9600)
print("Reset Arduino")
ser.write(bytes('L', 'UTF-8'))

print('Enter 1 to Turn Arduino LED ON')
print('Enter 0 to Turn Arduino LED OFF')
print('Enter Q/q to quit:')

char_in = ''
while char_in not in ['Q', 'q']:
    char_in = input()

    if char_in == '0':
        print("LED OFF")
        ser.write(bytes('L', 'UTF-8'))
    if char_in == '1':
        print("LED ON")
        ser.write(bytes('H', 'UTF-8'))

Arduino code:
int led = 13;
int incomingByte = 0;

void setup() {
    pinMode(led, OUTPUT);
    //Setup Serial Port with baud rate of 9600
    Serial.println("Press H to turn LED ON");
    Serial.println("Press L to turn LED OFF");

void loop() {
    if (Serial.available() > 0) {
        // read the incoming byte:
        incomingByte =;
        if(incomingByte == 'H'){
            digitalWrite(led, HIGH);
            Serial.println("LED ON");
        }else if(incomingByte == 'L'){
            digitalWrite(led, LOW);
            Serial.println("LED OFF");

Communicate with Arduino with Python programmatically
Communicate with Arduino with Python programmatically

- Control Arduino LED using Python with GUI

No comments:

Post a Comment