Serieport

Hva er serieport

Når vi snakker om serieport, mener vi vanligvis en enkel protokoll for kommunikasjon over USB kabelen mellom PC og Arduino. Vi kan bruke serieport til:

  • Å programmere Arduino (fra Arduino IDE på PCen)
  • Hvis du har programmert Arduinoen til å sende data fram, og eller tilbake til PCen via  serieport kommunikasjon, kan du for eksempel:
    • overføre data til og fra Arduino via medfølgende Arduino IDE serial monitor eller plotter,
    • overføre data til og fra Arduino fra egen Pyton kode på PC (eller andre programmeringsspråk, for eksempel Java i Processing IDE)
  • Data er i denne sammenheng variable av type bytes (8bit)

Drivere

For at serieport-protokollen skal kunne brukes må man vanligvis installere drivere for dette. Disse kan man laste med fra Arduino

Å finne navnet på aktuell serieport på PCen

Når rett driver er installert, vil PCen registrere at man kobler til Arduino via USB. Man kan koble til flere Arduinoer på hver sin USB ledning hvis man vil, og hvert Arduino kort vil da bli tildelt et unikt serieport navn/nummer som man kan finne på forskjellige måter på PCen.

Navn/nummer på serieport når Arduino er tilkoblet PC med USB:

  • Navnet er ofte tilgjengelig i Arduino IDE menyen under Tools. Hvis ikke, kan man sjekke:

WIN

  • Åpne opp Device Manager - kategori: Ports
    • Her vil navn være typisk COM3, COM4 osv

MAC/Linux

  • I terminal, skriv: ls /dev
    • Her vil navn være typisk "tty" (Linux) evt. "cu" (Mac) - etterfulgt av et navn eller kode

Merk at navn på serieport blir tilegnet i det øyeblikk man kobler til Arduino med USB og kan variere fra gang til gang

Typiske problem

  • Man glemmer å velge serieporten i drop-down menyen i Arduino IDE (husk også å velge rett Arduio type i samme meny)
  • Man velger gal serieport i drop-down menyen i Arduino IDE
  • Man spesifierer galt navn på serieporten i den Python/Java koden på PC som skal kommunisere med Arduino
  • Serieporten vil ikke åpne - mulige årsaker
    • Den er åpen i en annen prosess, fordi den ble ikke lukket av den siste prosessen som brukte den. Eksempel:
      • Man hadde den åpen i Python/Java og glemte å lukke den før den på nytt blir åpnet av Arduino IDE i forbindelse med reprogrammering av Arduinoen
      • Den er åpen av Arduino IDE eller Arduino serial monitor, og man vil kommunisere PC/Arduino via egen Python/Java kode
  • Man har ikke rettigheter til å åpne serieporten
    • Typisk problem på de stasjonære PCene på Assembler. Skyldes at andre brukere er logget inn og har allokert serieporten. Løsning: reboot PCen
  • Man har brukt forskjellig baudrate (bruk 9600) i Arduino og i det programmet man kommuniserer fra på PC.
  • Det er også mulig i noen program på PCen å sette opp spesielle kommunikasjons parametere, disse må stemme med det Arduino bruker (default kan være feil). Noen av disse er
    • Antall databits, vanlig er 8
    • Parity, vanlig er "none"
    • Stop bit, vanlig er 1
  • Noen gang kan visse USB porter på PCen eller UBS hubber ikke opptre stabile, prøv da en annen USB port, gjerne direkte på PCen

Typisk problem på Linux PCene på Assembly

Hvis en annen person er logget inn på PCen og har åpnet serieporten, vil man kunne få problem med å selv åpne serieporten. Løsning: Reebot PCen, evt slå av/på strømmen

 

Publisert 7. des. 2023 12:01 - Sist endret 4. mars 2026 12:36