Tutorial Arduino programmieren,

Antworten
sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Tutorial Arduino programmieren,

Beitrag von sstvmaster »

ich habe mal noch ein probiert, weil das Options Form unter Windows in der ecke links oben "kleben" bleibt. Ich habe es auf poDesktopCenter gestellt so sollte bei MultiMonitor betrieb auch nicht zu problemen kommen.

Ausserdem habe noch ein paar andere Änderungen/Verbesserungen/Verschlimmerungen gemacht, schau mal ob dir das so gefällt.
Wenn nicht, ist es auch ok.

LG Maik
Dateianhänge
patches.zip
(2.08 KiB) 97-mal heruntergeladen
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Ausserdem habe noch ein paar andere Änderungen/Verbesserungen/Verschlimmerungen gemacht, schau mal ob dir das so gefällt.

Für Kritik bin ich dankbar, nur so kann man etwas verbessern. :wink:
Ich habe die Patches angeguckt.

Das Auslagern der Konstanten ist eine gute Idee, aber bei den Baudraten beim Programmer, wird nicht die ganze Palette gebraucht, mir sind da nur die beiden 57600 und 115200 bekannt.

Hat es bei dir mit der Speicherung der Form-Pos nicht geklappt, das du es geändert hast ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Tutorial Arduino programmieren,

Beitrag von sstvmaster »

nein das speichern hat nicht funktioniert. Die ganzen Baudraten habe ich auf der Arduino Seite gefunden und deshalb habe ich es so übernommen. -> https://www.arduino.cc/en/Serial/Begin
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

nein das speichern hat nicht funktioniert.

Dies müsste ich mal mit einem kleinen Test-Programm unter Windows testen.
Mit Linux geht es bei mir.

Die ganzen Baudraten habe ich auf der Arduino Seite gefunden und deshalb habe ich es so übernommen. -> https://www.arduino.cc/en/Serial/Begin

Diese Baudraten haben nichts mit dem Programmer zu tun, dies sind für die Kommunikation, zB. mit einem Serial-Monitor.
Übrigens gehen auch folgende hohen Raten 230400,250000,500000,1000000,2000000, Arduinos Serial.begin unterstützt dies obwohl nicht dokumentiert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Tutorial Arduino programmieren,

Beitrag von sstvmaster »

ja dann sollten die gängisten Baudraten für die Programmer als Konstante eingetragen werden.

Wenn du ein Testprogramm hast probier ich das. Funktioniert das mit poDesktopCenter denn unter Linux?
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

ja dann sollten die gängisten Baudraten für die Programmer als Konstante eingetragen werden.

Eben nicht, dies ist vom Bootloader abhängig.
Beim alten Nano ist es 57600 beim neunen Nano und beim Uno sind es 115200.

Funktioniert das mit poDesktopCenter denn unter Linux?

Sollte auch gehen, aber ich finde dies Speicherung der letzten Position besser.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Tutorial Arduino programmieren,

Beitrag von sstvmaster »

wenn es halt nur 2 Baudraten gibt, dann halt diese.

Ist ja dein Projekt, war nur ein Vorschlag und Test meiner Seite.

LG Maik
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

wenn es halt nur 2 Baudraten gibt, dann halt diese.

Ich habe genauer geguckt, in der averdude-source sind noch ein wenig kleiner Baudraten vorhanden, aber dies sind mit bei einem arduino nicht bekannt.

https://www.mikrocontroller.net/topic/52982

Ist ja dein Projekt, war nur ein Vorschlag und Test meiner Seite.
Tests sind immer gut.
Wen ich dazumal nicht so gehandelt hätte, könnte man wahrscheinlich noch kein AVR mit Lazarus programmieren. :wink:

Aber momentan kann ich an meinem Project nicht mehr sehr viel machen, da in Lazarus immer noch ein Bug vorhanden ist: https://bugs.freepascal.org/view.php?id=34283
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Tutorial Arduino programmieren,

Beitrag von sstvmaster »

ja deinen Bugtracker verfolge ich auch. Mal sehen was und wie schnell Juha das was tun kann.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: Tutorial Arduino programmieren,

Beitrag von thosch »

Wo finde ich da Infos darüber, wie ich den Port für die Kommunikation mit meinem Arduino Nano festlegen kann?

Ich erhalte immer wieder Upload Fehler:

avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x9a

Habe noch keine Reset Taste angeschlossen. Stromversorgung erfolgt ausschließlich per USB Anschluss.
Ich habe an mein Arduino Nano meine Leuchtdiode per 555Ohm Widerstand an Pin D2 und die Kathode der Leuchtdiode auf Masse (GND) gelegt. Die leuchtet nun ständig. 
 
Nun habe ich das folgende Programm geschrieben, laut Arduino Anleitung aus dem Internet:

Code: Alles auswählen

 
void setup() {
  // put your setup code here, to run once:
  pinMode(2,OUTPUT);    //Ich meine hier den digitalen PIN D2! ist das so richtig?
}
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(2,LOW);
  delay(1000);
  digitalWrite(2,HIGH);
}
 
 

Wenn Pins hier wirklich nur mit ihrer Nummer bezeichnet werden, wie kann ich da zwichen Analog und Digitalpins unterscheiden? Muss ich da evtl. noch etwas vereinbaren. Ich will schließlich meine LED am Digitalpin D2 anschließen. Ich habe da einen Stecker mit 5 Buchsen, den ich auf die Pins des Arduino stecken kann und da ist der erste digitale Pin halt D2, der von meinem 5 poligen Stecker erreichbar ist.
 
Das will ich nun auf mein Arduino Nano Board hoch laden, was jedoch fehl schlägt und mit folgender Meldung quittiert wird:
 
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x9a
 
Ich habe noch keine Reset Taste angeschlossen. Sollte ich das zuerst tun?
 
Stromversorgung erfolgt ausschließlich per USB Anschluss.
 
Vorher hatte ich die LED mit gleichem Vorwiderstand an 5V Pin des Arduino und die Kathode der LED an PIN D2. Da habe ich denselben Fehler erhalten. Und das Board wurde beängstigend warm, so dass ich, als ich die Erwärmung bemerkt habe, sofort die USB Verbindung getrennt habe.
 
Zum Programmieren des Arduino nutze ich die Software Arduino 1.8.7 und habe dort Arduino Nano als Board ausgewählt. Prozessor ATMEGA 328p (NICHT old bootlader).
 
Ich bekomme 2 Serielle Schnittstellen COM1 und COM6 angezeigt im Auswahlmenü. Der Fehler tritt aber bei beiden COM Ports auf. Mein Arduino Nano hat einen Micro USB Anschluss für den PC, der COM Port wird also emuliert. Aber welcher ist es dann, den ich wählen muss und wie kann ich dann mein Programm auf das Arduino hoch laden. Wie lege ich überhaupt den COM Port fest, der ja dann von der USB Schnittstelle emuliert werden muss? Und wie lange daurt das Hochladen gewöhnlich und wie lange mindestens, im Fall meines einfachen Programmes.

Ich benutze zum Programmieren die IDE Arduino 1.8.7.
 
.

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

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Prozessor ATMEGA 328p (NICHT old bootlader).
Genau dort könnte das Problem liegen, die meisten Nanos brauchen den alten Bootloader.

Ein blinkende LED wirst du mit folgendem Code nicht bekommen, sie wird auch nicht leuchten.
Du schaltest aus, machst eine Pause schaltest ein und sofort wieder aus. Du musst nach dem HIGH auch ein Delay einfügen.

Code: Alles auswählen

void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(2,LOW);
  delay(1000);
  digitalWrite(2,HIGH);
}


Mache mal folgenden Code für den Anfang, dabei wird die Onboard LED blinken.

Code: Alles auswählen

void setup() {
  // put your setup code here, to run once:
  pinMode(13,OUTPUT);    //Ich meine hier den digitalen PIN D2! ist das so richtig?
}
 
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(13,LOW);
  delay(1000);
  digitalWrite(13,HIGH);
}


Und wie lange daurt das Hochladen gewöhnlich und wie lange mindestens, im Fall meines einfachen Programmes.

Dies geht sehr schnell.

Ich bekomme 2 Serielle Schnittstellen COM1 und COM6 angezeigt im Auswahlmenü.

Dies wird die COM6 sein, gucke mal im Auswahlmenü, was passiert, wen dein Arduino nicht angeschlossen ist. Dann sollte COM6 verschwinden.
Wen nicht, ist COM6 ein anderes Gerät und nicht dein Arduino.

Noch eine Frage, welches OS verwendest du ?
Ist es ein original Arduino oder ein Chinese ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

thosch
Beiträge: 324
Registriert: Mo 10. Jul 2017, 20:32

Re: Tutorial Arduino programmieren,

Beitrag von thosch »

Es ist COM6. So sagt es mir auch der Gerätemanager, wo ich sicherheitshalber noch mal nachgeschaut habe. Dort wird mein Arduino Nano aber als USB Serial CH340 angezeigt, nicht als Arduino Nano. Unter "Anschlüsse (COM & LPT)".

Ich verwende Windows 10 als Programmierplattform mit dem Programm Arduino 1.8.7.

Mein Programm lässt sich aber noch immer nicht hoch laden.

Ich habe das Arduino Nano geschenkt bekommen, kann daher nicht sagen, ob es Original oder China Kopie ist. Gibt es da ein Unterscheidungsmerkmal, an dem ich erkenne was Original und was Kopie ist, wie beim IPhone die nicht exakte Displayfarbe oder anderes?

Leider kann ich in Knoppix nichts nachinstallieren, da dort immer irgendwelche Bibliotheken fehlen. Hab mir sagen lassen dass beim neusten Unbuntu wieder ein KDE ähnlicher Desktop dabei sei. Wenn dem so ist beschaffe ich mir Ubuntu. Weißt Du näheres. Der Desktop von Version 14 gefällt mir nicht. Gnome, XFCE, KDE ... sind da wesentlich komfortabler.

Meine Arduino-IDE läuft unter Windows 10, altuelles Update. In meinem Knoppix habe ich die Arduino IDE 1.8.7 noch nicht installiert.

.

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Tutorial Arduino programmieren,

Beitrag von sstvmaster »

Der USB Serial CH340 ist der China Clone.

Den aktuellen Treiber bekommst du hier: http://www.wch.cn/download/CH341SER_EXE.html
Das ist die Herstellerseite des Clone Chips.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

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

Re: Tutorial Arduino programmieren,

Beitrag von Mathias »

Sollten bei Win10 dabei sein.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Timm Thaler
Beiträge: 1224
Registriert: So 20. Mär 2016, 22:14
OS, Lazarus, FPC: Win7-64bit Laz1.9.0 FPC3.1.1 für Win, RPi, AVR embedded
CPU-Target: Raspberry Pi 3

Re: Tutorial Arduino programmieren,

Beitrag von Timm Thaler »

AAAAHHHHHH!!!!!

AUGENKREBS!!!!!!

Könnt ihr bitte mal aufhören, das Forum mit diesen häßlichen C-Klammern zu verunstalten? Das hält man ja im Kopf nicht aus.

Antworten