- Labornetzteil AliExpress         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 23

Thema: Modellbahnübergang mit schranken

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Eigentlich sollte man ein vernünftiges Buch über C und viele Übungen, am besten am PC mit all seinen Tools, empfehlen. Nun sind aber die Arduinios billiger als ein gutes Buch. Da brauchts dann einen Vorleser ...

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    16.02.2014
    Beiträge
    80
    Zitat Zitat von Klebwax Beitrag anzeigen
    Eigentlich sollte man ein vernünftiges Buch über C und viele Übungen, am besten am PC mit all seinen Tools, empfehlen. Nun sind aber die Arduinios billiger als ein gutes Buch. Da brauchts dann einen Vorleser ...

    MfG Klebwax
    Im Prinzip hast Du völlig Recht - aber ein Búch über C wird vermutlich mehr Verwirrung stiften als es hilft. Ich würde schon eher eine Lektüre speziell zum Arduino empfehlen. Gerade als Anfänger wird man sonst über die Unterschiede stolpern.

    Ich bin für meinen kleinen Horizont ganz gut mit im Internet lesen, ausprobieren und Arduino Kochbuch hingekommen. Das kann man bis ins 2. Kapitel hinein lesen/überfliegen um eine Grundstruktur zu bekommen und der Rest des dicken Wälzers ist ein wirklich gutes Nachschlagewerk zu allen denkbaren Aspekten rund um dieses Controllerchen.

    Genauer gesagt hatte ich mir seinerzeit versehentlich (LOL) die englische Ausgabe Arduino Cookbook gekauft, aber wenn ich mir die deutschen Amazonbewertungen so anschaue ist das wohl eher als Glücksfall zu bezeichnen. Neben einigen Übersetzungsproblemchen hat man bei der deutschen Ausgabe einfach die letzten beiden Kapitel weggelassen und gerade das letzte beschäftigt sich mit der speziellen Arduino-Hardware - das ist für meinen Geschmack wirklich ein tragischer Verlust!

    Gruß, Dieter

  3. #3
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Ein C Buch lesen wäre eine Möglichkeit, dann kann man die Grundsprache.
    Wenn man dann auf C++ umsteigt komm aber noch was Dazu und falls man am PC mit C# anfängt muß man bei Arduino dann wieder einen Schritt zurück machen.

    Man kann auch die Arduino Tutorials die es im Internet gibt runterladen und durcharbeiten.
    Dann lernt man halt spezifisch für das Zielsystem.

    Weil Arduino Buch und vernünftig oder gar Gut und eventuell auf deutsch, weis ich nicht ob es da was gibt.
    Ich hatte mir letzten Dezember das "Roboterbauen mit Arduino" geholt.
    Nehme ich meine anderen Bücher über den Selbsbau von mobilen Robotern als Referenz, Sage ich mal "wäre schön wenn es das Buch in GUT gäbe".
    Momentan steht es im Regal in der Hoffnung das mein Großneffe doch mal wieder weiter machen will.

    Dank Internet, findet man da aber zu allem und jedem rund um Arduino auch online was.

    Aber egal wie man es macht, die Lernkurve muß halt den eigenen Möglichkeiten angpasst sein, sonst funktioniert weder das eine noch das andere.
    Je nach Vorwissen kann man entweder einiges überspringen (Hello world/Blink), oder man muß halt z.B. zu einem Bereich verschiedene Quellen studieren und Übungen durchführen bis der Groschen fällt.

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    14.12.2010
    Ort
    NRW
    Beiträge
    223
    es gibt auch diese Sunfounder Kits als Einstieg, da ist die erste Übung schon mal ein blinkende LED meist

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    07.03.2011
    Beiträge
    1.899
    Zitat Zitat von cdk Beitrag anzeigen
    Im Prinzip hast Du völlig Recht - aber ein Búch über C wird vermutlich mehr Verwirrung stiften als es hilft. Ich würde schon eher eine Lektüre speziell zum Arduino empfehlen. Gerade als Anfänger wird man sonst über die Unterschiede stolpern.
    Das seh ich anders. Um das grundsätzliche Verständniss von C bzw. C++ kommt man nicht herum. Und das kann man aus der speziellen Arduino Literatur sicher nicht lernen. Beispiele findet man hier im Forum. Da wird schon mal ein Stück Code, das nicht übersetzt, kräftig mit "Semikolons", "geschweiften Klammern" und "Sternchen" nachgewürzt bis der Compiler zufrieden ist. Zielfördernd ist das natürlich nicht. Und der Versuch, den Sourcecode eines fremden Programms (um mal den Begriff "Sketch" zu vermeiden) zu verstehen, wird dann auch scheitern.

    Mal etwas ketzerisch formuliert: Eigentlich Ist das Arduino System nicht eines für Anfänger, sondern eher eins für erfahrene Programmierer. Es macht sie schneller, es erspart ihnen das erneute Schreiben von Treibern oder Algorithmen, die sie schon oft geschrieben haben. Die erkennen auch schneller, wie man mit Defiziten von von vorhandenen Libraries/Sketchen umgehen muß. Der Anfänger, der möglicherweise noch nicht mal rudimentär C kann, ist da schnell zweiter Sieger.

    MfG Klebwax
    Strom fließt auch durch krumme Drähte !

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    Ich denke schon das auch viele C Anfänger mit der Arduino Sprachreferenz und Einsteiger Tutorials
    http://www.netzmafia.de/skripten/har...erhandbuch.pdf
    C lernen könnten, was ich allerdings zunehmend feststelle ist unabhängig von C, da generell der Trend da ist, weg vom "selbst Denken" und strukturierten, systematischen Vorgehen, hin zu "einfach ein paar Komponenten zusammenstecken". Sei es Hardware oder Software.

    Ich merke das heutzutage schon bei vielen Kindern. Ich sehe 10-12 Jährige die mit Lego Mauern ohne Verbund der Steine zusammenstecken (Minecraft lässt grüßen) und das Spielzeug ist scheiße weil das gebaute nicht hällt. Zu meiner Zeit war diese planlose Art zu Bauen üblicherweise bis 6 weg und ab 7-8 wurde mit Fischertechnik komplexe Maschinen gebaut (Grundschule 2-3 Klasse, Werkunterricht).

    Die jenigen die das selber denken nicht anfangern und nur planlos copy & paste ausführen, sind dann immer "zweiter Sieger" unabhängig worum es geht.

    Bei diesem Tread fand ich es schon gut, das der TE bereits eigenen Code hat und man davon ausgehen kann das der Prozess des Nachdenkens eingesetzt hat. Sprich man kann Denkanstöße geben und auf Fehler in bereits entwickeltem aufmerksam machen.
    Geändert von i_make_it (01.11.2016 um 06:53 Uhr)

  7. #7
    Neuer Benutzer Öfters hier
    Registriert seit
    30.10.2016
    Beiträge
    14
    Hallo 1_make_it,
    ich habe zur Zeit einen Arduino uno und wenn meine Lieferung aus China kommt gibt es einen Aruino Nano.
    Also etwas habe ich schon ausprobiert und die Servosteuerung finde ich auch echt super.
    Leider bringt es mir halt nicht sehr viel wenn ich den Arduino immer wieder wenn er etwas machen soll ein Netzteil ind die Steckdose stecken muss und wenn der Sketch am ende ist und wieder in diesen blöden loop hinein geht den Stecker zu ziehen.

    Zu meiner Schulzeit habe ich mit meiner alten Modelleisenbahn herum gebastelt und ganz wilde Relaisstuerungen dafür gebaut.
    Also wenn ich das mit dem Bahnübergang so nicht mehr hin bekommen sollte dann bleibt mir nur das mit der Sromversorgnung und einer kleinen Relaissteuerung die halt ein Anfangs und Endpunkt mechanisch steuert.

    Jetzt noch einmal einen Versuch...heißt der Schuß ging wieder einmal wie erwartet nach hinten los.
    //Variablen Deklaration
    unsigned long prevmicros = 0;

    void setup() {
    Servo myservo; // create servo object to control a servo
    // twelve servo objects can be created on most boards

    int pos = 0; // variable to store the servo position
    int pinEingang = 2;
    int pinAusgang = 9;

    void setup() {
    pinMode(pinEingang, INPUT_PULLUP);
    pinMode(pinAusgang, OUTPUT);
    myservo.attach(9); // Was halt beim Initialisieren so alles einmalig laufen soll
    }

    void loop() {
    // hier kann Code hin
    do {
    int zustand = digitalRead(pinEingang);
    if (zustand == HIGH) {
    digitalWrite(pinAusgang, LOW);
    } else { //zustand == LOW
    }
    for (pos = 50; pos <= 150; pos += 1) { //
    //
    myservo.write(pos); //
    delay(50); //
    }
    delay(20000);
    for (pos = 150; pos >= 50; pos -= 1) { //
    myservo.write(pos); //
    delay(50); // n
    }
    delay(10000); // hier kann Code hin
    unsigned long curmicros = millis();
    prevmicros = curmicros;
    } while (curmicros - prevmicros <= 5000);
    ????? // hier kann Code hin
    }

    Bei den ganzen Fragezeichen da passt ein Code hinein 123 hat er leider auch nicht verstanden!!!

  8. #8
    Erfahrener Benutzer Robotik Visionär Avatar von 021aet04
    Registriert seit
    17.01.2005
    Ort
    Niklasdorf
    Alter
    37
    Beiträge
    5.091
    Mit Arduino kenne ich mich zwar nicht aus, aber der Code ist extrem unleserlich, da es keine Formatierung gibt. Poste den Code mit den Code Tags (#-Button) und passender Formatierung.

    MfG Hannes

  9. #9
    Erfahrener Benutzer Robotik Einstein Avatar von i_make_it
    Registriert seit
    29.07.2008
    Ort
    Raum DA
    Alter
    56
    Beiträge
    2.814
    So, kann das nicht funktionieren:
    Mit copy & paste ohne nachzudenken und die absoluten Grundlagen zu verstehen kann man kein Programm schreiben.
    Klicke auf die Grafik für eine größere Ansicht

Name:	struct.jpg
Hits:	12
Größe:	121,3 KB
ID:	32173
    Zitat Zitat von i_make_it Beitrag anzeigen
    Der Prinzipielle Aufbau eines Arduino Sketchs:
    void setup() //wird genau einmal ausgeführt.
    void loop() // wird als Endlosschleife (loop) immer wieder ausgeführt.
    Zitat Zitat von i_make_it Beitrag anzeigen
    Ich denke schon das auch viele C Anfänger mit der Arduino Sprachreferenz und Einsteiger Tutorials
    http://www.netzmafia.de/skripten/har...erhandbuch.pdf
    C lernen könnten,
    Es darf in einem Arduino Sketch nur genau einen
    void setup () {
    }
    Block und nur genau einen
    void loop () {
    }
    Block geben.

    Geschweifte Klammern markieren immer Anfang und Ende von Funktionen und Anweisungsblöcken.
    Es muß also zu jeder "{" auch eine "}" geben.

    Dein erster Fehler: das erste "void etup()" wird nirgendwo beendet.

    Zweiter Fehler es gibt mehr als ein "void setup()".

    Unschön sind die fehlenden Einrückungen, denn diese hätten Dir sofort das fehlen einer "}" gezeigt und erhöhen die Lesbarkeit ungemein.
    Unnütz und der Übersichtlichkeit abträglich, Remark (Kommentar) Zeichen "//" am Ende vieler Zeilen ohne das dort überhaupt ein Kommentar steht.

    Das zur allgemeinen Programmstruktur.

    Sinnhaftigkeit / Sinnlosigkeit des Code

    Die DO-WHILE Schleife wird solange durchlaufen, solange sie Abbruchbedingung nicht wahr ist.
    Nicht wahr ist sie solange "curmicros - prevmicros <= 5000", also das Ergebniss der Berechnung kleiner oder gleich 5000 ist.
    Da das nur ein Codebeispiel ist, habe ich sinnigerweise "prevmicros = curmicros" direkt in die Zeile davor gesetzt.
    Das Ergebniss der Berechnung wird also meist 0 oder 1 sein und so nie die 5000 übersteigen kann, was zu einer Endlosschleife führt (Für die ist aber ja schon "void loop()" zuständig).
    Versteht man das Konstrukt, fällt einem das auf und man weiß das diese Zeile vor die DO Zeile muß.
    Ich erkenne also das Du den Code nur kopiert hast ohne darüber nachzudenken.

    Aber selbst wenn das korrekt implementiert wäre, ist die Do Schleife immer noch sinnlos.
    Da "unsigned long curmicros = millis()" die Variable curmicros mit dem aktuellen Wert der Funktion "millis()" füttert.
    Sprich das Konstrukt prüft in diesem Fall ob mehr als 5 Sekunden vergangen sind.
    in der Gesamten DO-WHILE Schleife, sind aber:
    delay(50)
    delay(20000)
    delay(50)
    delay(10000)
    -------------
    = 30100

    Delays für 30,1 Sekunden drin.
    Das heist beim einmaligen Durchlaufen der DO-WHILE Schleife vergeht schon mehr als die achtfache Zeit der Abbruchbedingung. Damit würde die Schleife immer nach einem Durchlauf beendet.
    Womit eine Schleife an dieser Stelle keinen Sinn macht.
    Vor allem da das Konstrukt ja die Delays ersetzen soll (diese aber immer noch vorhanden sind.)

    Also noch mal, fang mit ganz kleinen Schritten bei Null an.
    Zitat Zitat von i_make_it Beitrag anzeigen
    Erster Sketch, alternierendes Blinken von zwei LEDs mit Delay.

    Zweiter Sketch, alternierendes Blinken von zwei LEDs mit Timer bzw. millis() (siehe Beispiel).

    Dritter Sketch, alternierendes Blinken von zwei LEDs, über eine bestimmte Dauer, gestartet durch Taster.

    Vierter Sketch, alternierendes Blinken von zwei LEDs, gestartet durch Interrupteingang.

    Fünfter Sketch, Schalter entprellen.

    Sechster Sketch, Servo bewegen.
    Du willst einen Sprintwettkampfe gewinnen, must aber erst mal Laufen lernen.
    Genaugenommen sehe ich Dich momentan noch nicht einmal krabbeln.
    Geändert von i_make_it (02.11.2016 um 06:47 Uhr)

  10. #10
    Erfahrener Benutzer Robotik Einstein Avatar von inka
    Registriert seit
    29.10.2006
    Ort
    nahe Dresden
    Alter
    77
    Beiträge
    2.180
    also was vor allem fehlt sind die code tags

    für die bearbeitung des posts:
    Code:
    text markieren, codebutton # anklicken, fertig
    gruß inka

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. ACHTUNG!!! FEHLER BEI SIMPLEN IR-SCHRANKEN AUFGEDECKT!!!
    Von bexter im Forum Sensoren / Sensorik
    Antworten: 11
    Letzter Beitrag: 16.05.2005, 18:04

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress