Tutorial Arduino programmieren,

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

AM2320 sind gar nicht mal so schlecht, habe davon einige.....
Sind deutlich günstige finde ich als die AM2302 und haben den vorteil, dass sie per I2C angesprochen werden können.

DS3231 von den habe ich auch einige, mal sehen, ob ich damit rumspiele...
Ich habe die mit 4 Pins, eigentlich gedacht für den Raspberry PI, jedoch gibt es auch libs für Arduino...
MFG
Michael Springwald

Mathias
Beiträge: 4868
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

DS3231 von den habe ich auch einige, mal sehen, ob ich damit rumspiele...
Ich habe kurz die DS3231.cpp angeguckt, ich denke dies sei auch in Lazarus machbar.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

https://draeger-it.blog/arduino-lektion ... tc-ds3231/
noch nicht mal eine Lib, reiner "Arduino Code"

Ich glaube aber ich werde mal einige LCD'S ausprobieren.... zum Beispiel, die eine oder andere Segmentanzeige oder so ein OLED LCD
MFG
Michael Springwald

Mathias
Beiträge: 4868
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

https://draeger-it.blog/arduino-lektion ... tc-ds3231/
noch nicht mal eine Lib, reiner "Arduino Code"
Das sieht sehr schön schlank aus. Dies würde eine Umsetzung einfacher machen. Der Unterscheid zur Lib, bei der Lib kann man alles einzel schreiben und lesen. Bei deinem Link wird alles an einem Block gelesen/geschrieben.

Ich glaube aber ich werde mal einige LCD'S ausprobieren.... zum Beispiel, die eine oder andere Segmentanzeige oder so ein OLED LCD

Für eine LCD-Anzeige habe ich schon was fertiges.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

Für eine LCD-Anzeige habe ich schon was fertiges.

Habe ich gesehen, ist das für ein 4 Zeilen LCD mit 20 Zeichen?
MFG
Michael Springwald

Mathias
Beiträge: 4868
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Habe ich gesehen, ist das für ein 4 Zeilen LCD mit 20 Zeichen?

Nein, für einen 2-Zeiler. Typ 1602A

Aber es sollte mit einem 4-Zeiler auch gehen.
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

Nein, für einen 2-Zeiler. Typ 1602A

Aber es sollte mit einem 4-Zeiler auch gehen.
Mit

Werde ich bei nächster Gelegenheit testen...

Ich glaube die sind Kompatibel.... wenn es der gleiche Controller ist(Das A im Name verunsichert mich gerade ein wenig)...
Ich habe noch weitere Display's z.b. den ST7735S, aber das ist ein Farb LCD oder die Nokia LCD 5110....

Sehr Spannend, hätte ich nicht gedacht...
MFG
Michael Springwald

Mathias
Beiträge: 4868
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Ich habe noch weitere Display's z.b. den ST7735S, aber das ist ein Farb LCD oder die Nokia LCD 5110....

Die werden ganz anders sein, das Nokia wird über SPI angesteuert. So eines liegt bei mir auch rum. Wäre mal ein Versuch wert. :wink:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

Die werden ganz anders sein, das Nokia wird über SPI angesteuert. So eines liegt bei mir auch rum. Wäre mal ein Versuch wert.

Ich weiß, aber ich habe auch einige LCD 20X4....
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

Das RTC Beispiel von Sfaizst(Seite 7) klappt auch.... es gibt nur eine Eigenart, die ich nicht verstehe:
Sieht zwar nicht schön aus, geht aber:

Code: Alles auswählen

 
    rtc_recv(rtcTime);
    str(rtcTime.mday,S1);
    str(rtcTime.mon,S2);
    str(rtcTime.year,S3);
 
    str(rtcTime.h,S4);
    str(rtcTime.m,S5);
    str(rtcTime.s,S6);
    UARTSendString(S1+'.'+S2+'.'+S3+' ' + S4+':'+S5+':'+S6+#10);
 


so geht es nicht:

Code: Alles auswählen

 
    rtc_recv(rtcTime);
    str(rtcTime.mday,S1);
    str(rtcTime.mon,S2);
    str(rtcTime.year,S3);
 
//    str(rtcTime.h,S4);
//    str(rtcTime.m,S5);
//    str(rtcTime.s,S6);
 
 
    UARTSendString(S1+'.'+S2+'.'+S3+{' ' + S4+':'+S5+':'+S6+}#10);
 

Tag stimmt, aber Monat und Jahr stimmen nicht..... finde ich eigenartig.
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

habe versucht das LCD Beispiel zum "laufen" zu bekommen: Zum Teil klappt es, ich habe das LCD im 4 Zeilen mod mit 20 Zeichen.
Problem ist aber das der "String" nur Schmierzeichen enthält....

Code: Alles auswählen

constructor TLCD.Create(ADevice_Addr: integer);
begin
  displayControl := $08;
  displayFunction:=LCD_4BITMODE or LCD_1LINE or LCD_5x8DOTS or LCD_2LINE or LCD_5x10DOTS;
 
  Device_Addr := ADevice_Addr;
 
  backlightStsMask := BACKLIGHT_MASK;
 
  write4Bits($03 shl 4);
  delay_ms(4);
 
  write4Bits($03 shl 4);
  delay_ms(4);
 
  write4Bits($03 shl 4);
  delay_ms(4);
 
  write4Bits($02 shl 4);
 
  command(LCD_FUNCTIONSET or displayFunction);
 
  display(True);
 
  clear();
 
  displayMode := LCD_ENTRYLEFT or LCD_ENTRYSHIFTINCREMENT;
 
  command(LCD_ENTRYMODESET or displayMode);
  home;
 
 

Das habe ich vom "LiquidCrystal_I2C"........
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

mit ein paar delay_ms scheint es zu klappen, jedoch ist der text Unten Rechts.

Code: Alles auswählen

 
  display(True);
  delay_ms(2);
 
  clear();
  delay_ms(2);
 
  displayMode := LCD_ENTRYLEFT or LCD_ENTRYSHIFTINCREMENT;
 
  command(LCD_ENTRYMODESET or displayMode);
  delay_ms(2);
 
 
MFG
Michael Springwald

Mathias
Beiträge: 4868
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

100% geht es bei mir auch nicht. Mit den Benutzerdefinierten Zeichen habe ich Probleme. Für den PC mit dem I²C des VGA-Anschlusses, geht es. komisch. :roll:
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

pluto
Lazarusforum e. V.
Beiträge: 7077
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Tutorial Arduino programmieren,

Beitrag von pluto »

Ich glaube das ist ein delay Problem.... bei jedem zweiten Start klappt es nicht.... mal sehen....

Ich glaube wir brauchen eine "delayMicroseconds" Funktion wo man eine Zeit angeben kann.... bin aber nicht in der Lage sowas zu schreiben....
MFG
Michael Springwald

Mathias
Beiträge: 4868
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunc)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Du kannst so was nehmen:

Code: Alles auswählen

  procedure mysleep(t: int32);
  var
    i: Int32;
  begin
    for i := 0 to t do begin
      asm NOP; end;
    end;
  end

oder: http://wiki.freepascal.org/AVR_Embedded ... _Delays/de
Mit Lazarus sehe ich gün
Mit Java und C/C++ sehe ich rot

Antworten