Raspberry zu Arduino per I2C

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

Re: Raspberry zu Arduino per I2C

Beitragvon braspi » 4. Mai 2017, 14:58 Re: Raspberry zu Arduino per I2C

Hallo, habe nochmal ein Beispiel für meinen Raspi.
Downloadbar auf http://teso.de/web.teso_16_raspi/rp2ar.htm
BildBild
Grüße
braspi
 
Beiträge: 37
Registriert: 20. Mär 2016, 16:39

Beitragvon Mathias » 4. Mai 2017, 16:54 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.
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. :wink:

So nebenbei, ich dachte der Raspi hat nur eine I²C-Schnittstelle.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3047
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon braspi » 8. Mai 2017, 15:34 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.
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 10. Mai 2017, 10:38, insgesamt 1-mal geändert.
braspi
 
Beiträge: 37
Registriert: 20. Mär 2016, 16:39

Beitragvon Mathias » 8. Mai 2017, 17:04 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.

... dann muss ich den ersten Eintrag ComboBoxI2C.Text := SLPort[0]; setzen.
Dies ist sehr gefährlich, wen keine I²C-Schnittelle vorhanden ist, dann hast du ein SIGSEV.

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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3047
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

Beitragvon braspi » 10. Mai 2017, 10:36 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.
Bild
Bild
Klappt wunderbar. Merci
Grüße ...
braspi
 
Beiträge: 37
Registriert: 20. Mär 2016, 16:39

Beitragvon Mathias » 10. Mai 2017, 15:52 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 gün
Mit Java und C/C++ sehe ich rot
Mathias
 
Beiträge: 3047
Registriert: 2. Jan 2014, 17:21
Wohnort: Schweiz
OS, Lazarus, FPC: Linux (die neusten Trunc) | 
CPU-Target: 64Bit
Nach oben

• Themenende •
Vorherige

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

porpoises-institution
accuracy-worried