Zoeken…


Syntaxis

  • Serial.begin(baudrate) // Set baud rate (bits per second) for serial data transmission
  • Serial.println(value) // Print data to serial port followed by Carriage Return \r and Newline character \n
  • serial.Serial((port=None, baudrate=9600, bytesize=EIGHTBITS, parity=PARITY_NONE, stopbits=STOPBITS_ONE, timeout=None, xonxoff=False, rtscts=False, write_timeout=None, dsrdtr=False, inter_byte_timeout=None) // Initialize serial port with all parameters
  • serial.readline() // Read serial data which contains Carriage Return \r and Newline character \n

parameters

Parameter Details
serie- Python-pakket bevat klassen en methoden voor toegang tot seriële poort
tijd Python-pakket bevat tijdgerelateerde functies

Opmerkingen

Ik gebruik een Arduino Uno met Arduino IDE 1.6.9 en Python 2.7.12 die worden uitgevoerd in Windows 10.

Eerste seriële communicatie tussen Arduino en Python

In dit allereerste voorbeeld wordt een standaard seriële schrijfbewerking gestart vanaf een Arduino-apparaat.

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("Hello World!");
  delay(100);
}

In setup() stelt de functie Serial.begin(9600) de baudrate in voor seriële datacommunicatie. In dit voorbeeld wordt een baudrate van 9600 gebruikt. Andere waarden kunnen hier worden gelezen: Arduino Serial.begin () functie

In loop() is het eerste bericht dat we willen verzenden "Hallo wereld!". Dit bericht wordt verzonden met behulp van Serial.println("Hello World!") het deze tekenreeks naar de seriële poort in ASCII-indeling verzendt. Aan het einde van het bericht staan Carriage Return (CR, \r) en Newline-teken (\n) . Ook wordt een vertraging van 100 milliseconden gebruikt telkens wanneer het programma naar de seriële poort wordt afgedrukt.

Upload vervolgens deze Arduino-schets via de COM-poort (onthoud dit nummer van de COM-poort zoals deze zal worden gebruikt in het Python-programma).

Het Python-programma dat seriële gegevens leest die zijn verzonden vanaf het Arduino-apparaat, wordt hieronder weergegeven:

import serial
import time

ser = serial.Serial('COM8', 9600)
while (1):
    print ser.readline()
    time.sleep(0.1)

Eerst moet pyserieel pakket worden geïmporteerd. Raadpleeg deze instructie voor meer informatie over het installeren van pyserial in Windows-omgeving: Python en pyserial installeren . Vervolgens initialiseren we de seriële poort met COM-poortnummer en baudrate. De baudrate moet hetzelfde zijn als in de Arduino-schets.

Ontvangen bericht wordt tijdens de lus afgedrukt met de functie readline() . Een vertraging van 100 milliseconden wordt hier ook gebruikt als hetzelfde als in Arduino-schets. Merk op dat de readline() functie een time-out vereist bij het openen van een seriële poort (pyserial documentatie: PySerial ReadLine ).



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow