Hallo, habe nochmal ein Beispiel für meinen Raspi.
Downloadbar auf http://teso.de/web.teso_16_raspi/rp2ar.htm
Grüße
Raspberry zu Arduino per I2C
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Raspberry zu Arduino per I2C
Noch ein Verbesserungsvorschlag, du hast Radio-Buttons für die I²C Device.
Ich würde dir eine Combo-Box empfehlen und eine Autoerkennung der vorhandenen Ports.
Somit ist dein Programm gerüstet, wen es mal 3 oder mehr Schnittstellen gibt.
So nebenbei, ich dachte der Raspi hat nur eine I²C-Schnittstelle.
Ich würde dir eine Combo-Box empfehlen und eine Autoerkennung der vorhandenen Ports.
Code: Alles auswählen
var
SLPort: TStringList;
begin
SLPort := FindAllFiles('/dev', 'i2c*', False);
ComboBoxI2C.Items.Assign(SLPort);
SLPort.Free;
Somit ist dein Programm gerüstet, wen es mal 3 oder mehr Schnittstellen gibt.
So nebenbei, ich dachte der Raspi hat nur eine I²C-Schnittstelle.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Raspberry zu Arduino per I2C
Hallo Mathias,
wenn ich das richtig gelesen habe, dann gibt es 2 i2c-Schnittstellen.
Ich habe mal deinen Vorschlag umgesetzt.
... dann muss ich den ersten Eintrag ComboBoxI2C.Text := SLPort[0]; setzen.
Fehlt der Eintrag, dann schmiert das Programm ab, d.h. ich müßte noch eine mögliche Fehlerroutine schreiben.
Der Aufwand ist mir zu groß. Eigentlich ist das "Programm" als Lernhilfe für mich (und andere) gedacht.
Ich wollte so wenig wie möglich in das Programm reinpacken. Ich hasse das, wenn Beispiele das ganze Weltall und alle Möglichkeiten darstellen wollen.
Zum Schluss weiß ich nicht mehr wo der Anfang war.
Trotzdem und sowieso herzlichen Dank für dein Interesse. Ich bin immer für Tipps dankbar.
Und zu C : Im letzten Winter habe ich mir ein ESP8266 zugelegt, Spottbillig und super schnell und mit WLan.
Also mit "C" angefangen. Solange ein Pinchen gesetzt werden soll oder ein DHT22 abgefragt werden soll, ist "C" wirklich einfach.
Grüße
wenn ich das richtig gelesen habe, dann gibt es 2 i2c-Schnittstellen.
Ich habe mal deinen Vorschlag umgesetzt.
Code: Alles auswählen
var
SLPort: TStringList;
begin
SLPort := FindAllFiles('/dev/', 'i2c*', False); // "/" fehlt in '/dev'
ComboBoxI2C.Items.Assign(SLPort);
SLPort.Free;
... dann muss ich den ersten Eintrag ComboBoxI2C.Text := SLPort[0]; setzen.
Fehlt der Eintrag, dann schmiert das Programm ab, d.h. ich müßte noch eine mögliche Fehlerroutine schreiben.
Der Aufwand ist mir zu groß. Eigentlich ist das "Programm" als Lernhilfe für mich (und andere) gedacht.
Ich wollte so wenig wie möglich in das Programm reinpacken. Ich hasse das, wenn Beispiele das ganze Weltall und alle Möglichkeiten darstellen wollen.
Zum Schluss weiß ich nicht mehr wo der Anfang war.
Trotzdem und sowieso herzlichen Dank für dein Interesse. Ich bin immer für Tipps dankbar.
Und zu C : Im letzten Winter habe ich mir ein ESP8266 zugelegt, Spottbillig und super schnell und mit WLan.
Also mit "C" angefangen. Solange ein Pinchen gesetzt werden soll oder ein DHT22 abgefragt werden soll, ist "C" wirklich einfach.
Grüße
Zuletzt geändert von braspi am Mi 10. Mai 2017, 11:38, insgesamt 1-mal geändert.
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Raspberry zu Arduino per I2C
wenn ich das richtig gelesen habe, dann gibt es 2 i2c-Schnittstellen.
Du hast falsch gelesen, die 2 Schnittstellen habe ich bei deinem Bild oben gesehen.
Dies ist sehr gefährlich, wen keine I²C-Schnittelle vorhanden ist, dann hast du ein SIGSEV.... dann muss ich den ersten Eintrag ComboBoxI2C.Text := SLPort[0]; setzen.
Der Aufwand ist mir zu groß. Eigentlich ist das "Programm" als Lernhilfe für mich (und andere) gedacht.
Der Aufwand ist sehr klein, aber dafür wird sich kein Nutzer mit Abstürzen nerven.
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
var
SLPort: TStringList;
begin
SLPort := FindAllFiles('/dev', 'i2c*', False); // "/" fehlt in '/dev'
ComboBox1.Items.Assign(SLPort);
SLPort.Free;
if ComboBox1.Items.Count > 0 then begin
ComboBox1.Text := ComboBox1.Items[0];
end else begin
ShowMessage('Kein I²C-Bus vorhanden, Programm wird beendet !');
Application.Terminate; // Wen nicht in Create, kann es auch Close sein.
end;
end;
// "/" fehlt in '/dev
Bei mir geht es auch ohne den "/" .
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
Re: Raspberry zu Arduino per I2C
Hallo Mathias,
- Bei mir geht es auch ohne den "/" . stimmt, aber ich wollte mal alle Dateien anzeigen lassen. Da ging es nicht ohne. EGAL.
- Deinen Vorschlag habe ich eingeabeitet und steht zum Download bereit.
Klappt wunderbar. Merci
Grüße ...
- Bei mir geht es auch ohne den "/" . stimmt, aber ich wollte mal alle Dateien anzeigen lassen. Da ging es nicht ohne. EGAL.
- Deinen Vorschlag habe ich eingeabeitet und steht zum Download bereit.
Klappt wunderbar. Merci
Grüße ...
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Raspberry zu Arduino per I2C
Wen du auf deinem PC Linux hast, wird dein Programm auch dort laufen, und die I²C erkennen.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot