Hallo Gast, Sie können sich registrieren oder einloggen
 

Artikeltexte auf dem Artikelportal veröffentlichen

Nachrichten, freie Meinungen, Berichte, Infos und Meinungen als Artikeltext aus unserer Gesellschaft von freien Redakteuren
» Startseite Artikel / Artikel lesen  
Computer und Software 27.06.2019 15:12

Arduino - Serieller Port Lesen / Schreiben

(Artikel mit 1 Seite)
Der universelle asynchrone Empfänger / Sender (UART) ist das Hauptkommunikationssubsystem für den Entwurf des eingebetteten Systems.

Arduino - Serieller Port Lesen / Schreiben


Abstrakt
Der universelle asynchrone Empfänger / Sender (UART) ist das Hauptkommunikationssubsystem für den Entwurf des eingebetteten Systems. Durch asynchrone Übertragung können Daten übertragen werden, ohne dass der Sender ein Taktsignal an den Empfänger senden muss. Stattdessen müssen sich Sender und Empfänger im Voraus auf Zeitparameter einigen, und zu jedem Wort werden spezielle Bits hinzugefügt, die zum Synchronisieren der Sende- und Empfangseinheiten verwendet werden. Das LCD-Display [16x2 LCD] dient zur Anzeige der empfangenen UART-Bytes. Bei dieser Funktion geht es um das Senden / Empfangen von Daten über UART mit dem Arduino-Mikrocontroller.

Teile und Komponenten:
Arduino Uno-Board

16x2 LCD

1 kOhm Potentiometer

Schritt 1: Schema


Das 16x2 ist eine häufig verwendete LCD-Konfiguration, die zwei Anzeigezeilen enthält. Jede der beiden Zeilen kann bis zu 16 5x7- oder 5x8-Punktmatrixzeichen anzeigen.
In diesem Beispiel verwende ich ein 16-poliges LCD mit Kontrasteinstellung und Hintergrundbeleuchtung für eine bessere Anzeige. Es zeigt Punktmatrix-Zeichen mit einer Auflösung von 5 x 8 an.
Wir verbinden die analogen E / A-Pins A0, A1, A2, A3, A4 und A5 des Arduino mit der LCD-Anzeigeeinheit. Die Pins des Arduino müssen so konfiguriert sein, dass sie digitale Ein- und Ausgangssignale verarbeiten können, die mit dem 4-Bit-Datenmodus des LCD kompatibel sind.
Wenn Sie Probleme mit der Sichtbarkeit des Displays haben, passen Sie den Kontrast an. Das sollte es beheben.
Der serielle Hardwareanschluss des Mikroprozessors muss auf 9600, 8N1-Modus / Baudrate konfiguriert sein.
Anschließend schließen wir ein Proteus COMport Physical Interface Module (COMPIM) an den seriellen Port des Arduino an. Das COMPIM ist identisch mit 9600, 8N1-Modus / Baudrate konfiguriert.
Dann erstellen wir virtuelle serielle Ports mit dem Virtual Serial Port Driver (VSPD).
Diese Konfiguration ermöglicht es uns, serielle Daten vom COMPIM über die neu erstellten virtuellen Ports zu übertragen. Die Daten können am seriellen Terminal des Computers überwacht werden.
Die seriellen COMPIM-Daten werden an die virtuellen seriellen VSPD-Ports weitergeleitet und am seriellen PC-Terminal, in unserem Fall dem LCD, überwacht.

Schritt 2: Software
Das LCD-Gerät verwendet die Arduino LiquidCrystal-Bibliothek. Dieses Display fungiert als serielles Terminal und ermöglicht die Anzeige der übertragenen Daten der seriellen Schnittstelle.
Testzeichenfolgen werden alle 500 ms über die serielle Schnittstelle gesendet. Sie werden empfangen und auf dem LCD angezeigt, das als Tool zur Überwachung der seriellen Schnittstelle dient.
CODE:
/*
 Demonstrates the use of a serial port.
 Serial received bytes are displayed on 16x2 LCD screen.
 
 The Arduino circuit connection for LCD:
 * LCD RS pin to analog pin A0
 * LCD Enable pin to analog pin A1
 * LCD D4 pin to analog pin A2
 * LCD D5 pin to analog pin A3
 * LCD D6 pin to analog pin A4
 * LCD D7 pin to analog pin A5

 Name:- M.Pugazhendi
 Date:-  08thAug2016
 Version:- V0.1
 e-mail:- muthuswamy.pugazhendi@gmail.com
 */

// include the library code:
#include <LiquidCrystal.h>

//Initialize the library with the numbers of the interface pins
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);

// a string to hold incoming data
String inputString = "";

// whether the string is complete         
boolean stringComplete = false; 

void setup() 
{
  //Initialize serial port
  Serial.begin(9600);
  
  // set up the LCD's number of columns and rows:
  lcd.begin(16, 2);
  
  // Print a message to the LCD.
  lcd.print("Serial TEST");

  // reserve 200 bytes for the inputString:
  inputString.reserve(200);
  
}

void loop() 
{
  Serial.write("This a test \n");

 // print the string when a newline arrives:
  if (stringComplete) 
  {
   //lcd clear
   lcd.clear();
    lcd.print(inputString);
    // clear the string:
    inputString = "";
    stringComplete = false;
  }
  
  //500smS Delay
  delay(500);
}

/*
  SerialEvent occurs whenever a new data comes in the
 hardware serial RX.  This routine is run between each
 time loop() runs.  500mS delay inside loop can delay
 response.  Multiple bytes of data may be available.
 */
void serialEvent() 
{
  while (Serial.available()) 
  {
    // get the new byte:
    char inChar = (char)Serial.read();
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag
    // so the main loop can do something about it:
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}


Schritt 3: Fazit

Wir haben den seriellen Monitor erfolgreich mit Proteus implementiert. Sie können diese serielle Schnittstelle als Kommunikationsschnittstelle für viele verschiedene eingebettete Projekte verwenden.

Drucken | Artikel wurde 209 mal aufgerufen


Artikel als Bookmark speichern bei ...
Ähnliche Artikel
# Artikeltitel Arikeldatum
1. Lavazza Kaffee 05.09.2009 14:48
2. Informationen über Bio-Lebensmittel lesen 18.03.2011 14:58
3. PDF-XChange erstellt Druckbefehle aus jeder Windows-Anwendung 02.04.2011 02:42
 
Impressum | Datenschutzhinweise | Nutzungsregeln/AGB