Zum Inhalt springen
Arduino Software IDE

Struktur eines Sketches

    Die grundlegende Programmstruktur eines Arduino-Programms setzt sich aus zwei Methodenblöcken zusammen. Die erste Methode ist void setup(). Hier werden Grundeinstellungen (z.B. ob ein Kanal ein In- oder Output ist) vorgenommen. Diese Methode wird nur beim Programmstart ausgeführt, also genau ein Mal.

    Die void loop() Methode wird im Gegensatz zum Setup ständig wiederholt. Hier wird der eigentliche Programmablauf geschrieben.

    Über dem Setup kann man noch Bibliotheken einbinden und globale Variablen deklarieren. (Wenn du nicht weißt, was global bedeutet, mach dir noch keinen Kopf darum. Das ist für die meisten Arduino-Programme völlig egal.)


    Sieh dir jetzt meinen neuen Arduino-Videokurs an: Jetzt ansehen!


    // Bereich für das Einbinden von Bibliotheken und die Deklaration von Variablen.
    
    void setup() {
    
    }
    
    void loop() {
    
    }

    Weiter mit Variablen.

    10 Gedanken zu „Struktur eines Sketches“

    1. Hallo wo ist denn die Angabe über Ereignisse
      in C (Es ist ja nix anderes als C Mit ner netten Verpackung und ohne nervige Makefiles) sieht es ja ähnlich aus: Initialisierung des Systems
      (Pins/Timer/Register usw. und Variablen/Konstanten) danach die
      void MAIN(void) {for(;;){ //Tu dauernd was Schleife}}
      unterbrochen wird die Schleife in der Regel durch Interrupts also Ereignisse und genau das fehlt mir hier!

    2. Hallo.Wie schliesst man das Arduino uno mit einer Spule und dem dazugehoerigen Hallsensor an?Fuer einen schwebenden Magneten oder Kugel oder Kreisel?Ich brauche dringend Hilfe.Danke.Lg Michael.

    3. Hallo oder Hilfe…
      Ich bin Lehrling als Multimediaelektroniker und bekam von meinem Chef den Auftrag ein Spiel zu bauen. ich habe schon kleine projektchen gemacht, dieses macht mir jedoch ein wenig Kopfschmerzen.
      Das Spiel:
      Eine Bildfolge unserer Arbeiten läuft ab. Eines der Bilder ist jedoch falsch. ab diesem Moment soll eine Art Stoppuhr laufen, die die Reaktionszeit des Spielers misst, bis dieser den Fehler bemerkt hat und auf den Buzzer drückt.
      Wie würdet Ihr vorgehen ?
      Ich hoffe das mir hier jemand auf die Sprünge helfen kann, da ich mich etwas verfahren habe :)

    4. eine dumme Frage vielleicht:
      kann man das/ein Programm beenden, ohne dass man den Arduino aus dem USB-Port entfernt?
      Ich meine, es ist ja irgendwie doof, wenn ein Programm die ganze Zeit läuft, während ich mich mit dem nächsten Programm beschäftige oder, ich bin Lehrer, zwischendrin Schülern eine Erklärung oder eine andere Aufgabe gebe.

    5. Ergänzend hierzu vielleicht noch: LED_1 Fadeing soll parallel und unabhängig laufen, ist dies überhaupt möglich darzustellen?

      Danke

    6. Hi,

      ich bin auch an dem Punkt wo mir der Loop in die Suppe spuckt ;)

      Mein Problem ist folgendes:

      Ich möchte einen Teil immer wieder in der Schleife laufen lassen (LED_1 als Fader). Jedoch zwei weitere Schritte sollen/dürfen nur einmal ausgeführt werden (bis zum Reset):
      LED_2 soll nur 2 Sekunden (einmal) aufleuchten und LED_3 konstant anbleiben.

      Schalter (kein Taster) ist auch noch ein Problem. Das oben beschriebene Problem soll starten, sobald der Schalter ein konstantes Signal hat.
      Ich stehe noch ganz weit vorne am Einarbeiten mit Arduino, man möge mir bitte für vielleicht doofe Fragen verzeihen :)
      Danke

    7. @Marvin: Das loop() lässt das Programm ja immer wieder aufs neue durchlaufen. Um es nur einmal durchlaufen zu lassen gibt es viele Möglichkeiten. Eine wäre:

      boolean executed=false;

      void loop(){
      if (executed==false){
      executed=true;
      // hier kann alles rein, was nur einmal ausgeführt werden soll

      }
      }

    8. Hallo,
      gutes Tutorial nebenbei… :)
      gibt es einen Befehl anstelle des loop() mit dem ich das Programm nur einmal ausführen lassen kann?

    9. Moin Moin,
      ich hab mal eine Frage zum Debugging der Arduino- Boards. geht das Debuggen über die icsp- Schnittstelle oder über die USB- Schnittstelle?
      Gruss
      Marco

    Die Kommentarfunktion ist deaktiviert.