AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

daten von serieller Schnittstelle

Ein Thema von binderj1 · begonnen am 11. Jul 2014 · letzter Beitrag vom 19. Jul 2014
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: daten von serieller Schnittstelle

  Alt 11. Jul 2014, 18:25
Der Event heisst onRxChar
Markus Kinzler
  Mit Zitat antworten Zitat
binderj1

Registriert seit: 17. Okt 2006
11 Beiträge
 
Delphi 6 Enterprise
 
#12

AW: daten von serieller Schnittstelle

  Alt 11. Jul 2014, 18:41
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);

begin

  vacomm1.Open;

 end;




procedure TForm1.OnRxChar(Sender: TObject; Count: Integer);
   var
     s: string;
begin
 vaComm1.ReadChar(s, Count);
     label1.Caption:= s;

end;
so??
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#13

AW: daten von serieller Schnittstelle

  Alt 11. Jul 2014, 19:18
Brauchst Du nicht auch ein Programm für den ARDUINO als ADC?

Z.B.
Delphi-Quellcode:
// ADC

int ADC0=0;
int value;
int LEDpin=13;


void setup()

  Serial.begin(9600);


void loop()

  value=analogRead(ADC0);
  Serial.print("ADC0 = ");
  Serial.println(value);
  delay(1000);
// alle nötigen Klammern entfernt - sind verwirrend...
Zum Testen: LED blinken lassen mit einstellbarer Frequenz durch Poti

Delphi-Quellcode:
// LED Blinkfrequenz über ADC einstellen

int ADC0=0;
int value;
int LEDpin=13;


void setup()
//{
  pinMode(LEDpin,OUTPUT);
//}

void loop()
//{
  value=analogRead(ADC0);
  digitalWrite(LEDpin, HIGH);
  delay(value);
  digitalWrite(LEDpin, LOW);
  delay(value);
//}

Geändert von hathor (11. Jul 2014 um 19:28 Uhr)
  Mit Zitat antworten Zitat
binderj1

Registriert seit: 17. Okt 2006
11 Beiträge
 
Delphi 6 Enterprise
 
#14

AW: daten von serieller Schnittstelle

  Alt 11. Jul 2014, 19:58
Delphi-Quellcode:
const int analogInPin = A0;
int sensorValue = 0;
int winkel =0;
#include <LiquidCrystal.h>

 

LiquidCrystal lcd(12, 11, 6,5, 4, 3);

 

void setup() {
 
  lcd.begin(16, 2);
  Serial.begin(9600);
}


void loop() {

  sensorValue = analogRead(analogInPin);           

  winkel = sensorValue /2.841;
 
delay (500)
Serial.println(winkel); 

 
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Winkel = ");
lcd.print(winkel);

}
das ist das Arduino-Programm
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#15

AW: daten von serieller Schnittstelle

  Alt 12. Jul 2014, 08:25
Was zeigt das LCD an?
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#16

AW: daten von serieller Schnittstelle

  Alt 12. Jul 2014, 08:28
Delphi-Quellcode:
procedure TForm1.OnRxChar(Sender: TObject; Count: Integer);
   var
     s: string;
begin
 vaComm1.ReadChar(s, Count);
     label1.Caption:= s;

end;
so??
Ne.
Du musst Dir einen Ringpuffer erstellen, an den die per ReadChar empfangenen Bytes angehängt werden.
Den Ringpuffer kannst Du dann auslesen und weiterverarbeiten (ausgeben, speichern, wasAuchImmer).

Ich hänge Dir mal ein XE2 DataModule an, das ich damals für einen Drehzahl Messplatz gebaut habe.
Für Delphi 6 wirst Du vermutlich einige Dinge anpassen müssen.
Dort verwendete ich die ComPort Library für die Serielle Kommunikation.

Es gibt sicher bessere Lösungen dafür. Schlechtere aber auch.
Das Prinzip sollte jedenfalls klar werden.
Schaue es den Code an und nimm, was Du davon verwenden möchtest.
Angehängte Dateien
Dateityp: zip Source.zip (3,2 KB, 34x aufgerufen)
  Mit Zitat antworten Zitat
binderj1

Registriert seit: 17. Okt 2006
11 Beiträge
 
Delphi 6 Enterprise
 
#17

AW: daten von serieller Schnittstelle

  Alt 12. Jul 2014, 11:07
was zeigt das lcd an?
2014-07-12-11.04.01.jpg
  Mit Zitat antworten Zitat
binderj1

Registriert seit: 17. Okt 2006
11 Beiträge
 
Delphi 6 Enterprise
 
#18

AW: daten von serieller Schnittstelle

  Alt 12. Jul 2014, 11:13
ich muss jetzt auf eine Hochzeit, am Montag mache ich wieder weiter.

Danke an alle die mir bis jetzt ihre Zeit geopfert haben.

mfG
Johannes
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

AW: daten von serieller Schnittstelle

  Alt 12. Jul 2014, 11:52
Diese ComPort-Komponente bietet nicht zufällig eine Möglichkeit an, die Daten zeilenweise auszulesen, oder bis zu einem definierbarem Stoppzeichen?

Man kann mantürlich die empfangenen Daten selber Cachen und an den Trennzeichen aufsplitten, um die Daten zu bekommen,
oder man lässt es automatischmachen.
Code:
Serial.println(...);
Trennt die einzelnen Werte ja mit einem Zeilenumbruch und an diesem kann man sie auch auftrennen.


PS: Man kann das ganze natürlich auch andersrum gestalten, indem das Arduino-Programm den aktuellen Wert nur auf Anfrage rausrückt,
oder zumindestens doppelte Werte weglässt. (z.B. nur bei Änderung "schnell" die Werte rausrückt und ansonsten längere Pausen lässt ... gibt weniger Probleme bei der Auswertung, da man bei einer Auslastung im PC nicht so schnell in ein Pufferüberlauf läut und auch so weniger "unnötige" Daten auswerten muß)
$2B or not $2B
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#20

AW: daten von serieller Schnittstelle

  Alt 13. Jul 2014, 14:49
Hier gibt es ein kostenloses Paket mit Sourcecode + Beispielprogrammen:
http://comport.sf.net/

Das MiniTerm-Programm passt perfekt zum ARDUINO.
Miniaturansicht angehängter Grafiken
delphi_miniterminal-0.jpg   delphi_miniterminal-2-setup.jpg  
Angehängte Dateien
Dateityp: zip _MINITERMexe.zip (712,4 KB, 13x aufgerufen)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz