Tag 7 (special): Hinweis für Arduino Neulinge – Teil 2

Der erste Teil Arduino Beginner Kurses war scheinbar für viele sehr hilfreich. Deswegen habe ich mich dazu entschlossen, auch den zweiten Teil des Handbuches zu überarbeiten und online zu stellen.

In diesem zweiten Teil geht es nun darum, Programme selbst zu schreiben und dabei auch etwas von den Grundlagen in der Arbeit mit Mikrocontrollern zu lernen. Diese Anleitung habe ich bewusst erst heute veröffentlicht, da an dem heutigen Tag auch alle nötigen Bauteile aus dem Adventskalender vorhanden sind, um die kleinen Projekte selbst testen zu können.

Viel Spaß beim ausprobieren :)

Link zum Artikel: Teil 2 – Schnellstart mit dem NanoESP für Arduino Neulinge

16 Kommentare

  1. Calis

    Ein Fehler hat sich noch eingeschliechen:
    unter „Die erste LED“ passt der Widerstandscode nicht:

    “ In meinem Fall habe ich 1,0 kOhm (Farbringe: Braun, Schwarz, Schwarz) “

    sollte wohl Braun-Schwarz-Rot heissen :)

    1. Calis

      Oops, bevor sich Hr. Duden wieder meldet, in meinem obigen Beitrag hat sich auch ein Fehler eingeschlichen (kein „ie“ ;)

      Und noch was Konstruktives: Beim Rechenbeispiel koennte man noch anmerken, dass die Werte 3.3 V (Spannungsabfall) und 20 mA (erlaubter Strom) der Diode nicht vom Himmel fallen oder Naturkonstanten sind, sondern vom Hersteller im Datenblatt angegeben werden sollten..

  2. Konrad Duden

    Na wenn der Kurs nur scheinbar hilfreich war, dann hätten Sie sich die Arbeit auch sparen können.

  3. Merlin S.

    Mich würde mal interessieren ob man mit dem NanoESP auch einen TeamSpeak3 Musikbot machen könnte (so wie SinusBot, Software läuft auf dem Board, steuern über den Computer). Es würde auch reichen wenn man ein Onlineradio wie von laut.fm damit abspielen könnte.
    Freue mich auf Antworten

    Mfg Merlin

    1. Antonireykern

      Nein ich glaube das geht nicht.

      Denn der Atmega328 ist nur ein 8-Bit Prozessor und der maximale Datenstream von 19200 Baud für SoftwareSerial würden nicht ausreichen für einen Stream..

      SoftwareSerial generiert Fehler bei hohen Baudraten wie 250000Baud

  4. Michael

    Hallo,

    erstmal vielen Danke für diese tollen Anleitungen. Allerdings hat sich neben den bereits erwähnten fehlerhaften Pinbelegungen noch ein andere Fehler bei der Regelung über den Poti eingeschlichen:

    Die Variable „helligkeit“ ist vom Typ byte deren Wertebereich nur von 0 bis 255 reicht, weshalb die Division durch 4 nicht das gewünschte Ergebniss erzielt. Man erhält stattdessen beim hochdrehen des Potis insgesamt 3 mal einen Sprung auf 0 – nämlich beim Überlauf des Wertes.

    int helligkeit = 0;
    sollte das Problem lösen :)

  5. werner

    Ist der Controller kaputt ?!

    AT
    OK

    AT+GMR
    2.1.56

    AT+RST
    ERROR

    Beispiel Programm laden:
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30

    1. Klaus

      Hast Du irgendwas an der Firmware gespielt?
      Normalerweise sieht das so aus:
      AT+GMR

      AT version:0.22.0.0(Mar 20 2015 10:04:26)
      SDK version:1.0.0
      compile time:Mar 20 2015 11:00:32

      Angeblich sind alle Boards mit der gleichen Firmware. Die Ausgabe bei Dir ist aber definitiv eine andere Version.

  6. Leo

    Hallo,
    passt bisher alles gut.
    Klasse wäre noch im Stile der „Schnellstarttips“
    ein paar Worte über UDP, Access Port, APN…
    zu verlieren. Dann wären 10 Punkte drin!
    Grüsse Leo.

  7. Skayo

    Welchen Port muss man benutzen??

  8. Skayo

    Wen es bei jemanden beimm Poti knapp wird, mit dem USB-Kabel Anschluss, einfach den Mircrocontroller eine Reihe in Richtung GND bzw. in die Richtung des LEDs bewegen.

  9. anonym

    Beim Potentiometer verändert sich die Hellichkeit nicht konstand sondern ungefähr so: Schwach–>Hell–>noch_Heller–>am_Helsten–>Schwach–>Hell—>usw….
    wie kann man programmieren dass sich die Hellichkeit konstand verändert?

    1. SmenTrick

      Hast du den Poti einfach zwischen LED und Versorgung/Port? Den das klappt nur mit speziellen LEDs.
      Um die LED zu Dimmen musst du PWM nutzen.
      Machst du das eh schon, dann prüf ob dein Übergabewert möglicherweise hüpft (z.B. auf Grund deiner Division) oder nur selten geschrieben wird.

    2. Roman_2

      Hatte das selbe Problem…
      Bei mir ging der Analogeingang im seriellen Monitor mehrmals von 0 auf 255 (wenn ich das poti von 0 auf Vollausschlag drehte)
      Abhilfe: die „map“ Funktion ein paar Zeilen darunter.
      Sieht bei mir so aus:

      void loop() {

      helligkeit = map(analogRead(LDR), 0, 1023, 0, 255); //Helligkeit 10-bit (0 bis 1023) messen und auf 8-Bit (0-255) skalieren

      Serial.print („Helligkeit: „); //Schreibe „Text“ auf serielle Schnittstelle

      Serial.println(helligkeit); //Messergebnis an PC senden

      analogWrite(led, helligkeit); //skalierte Helligkeit an LED ausgeben (0-255)

      delay(10); //Wartezeit

      }

  10. Klaus

    Finde ich super! So hatte ich mir das vorgestellt. Es gibt noch ein paar Fehler in der Anleitung:

    „Die erste LED“:
    digitalWrite(led,HIGH); //Pin0 auf HIGH setzen
    muss heißen
    digitalWrite(led,HIGH); //Pin9 auf HIGH setzen

    „Schalter“:
    digitalWrite(led,digitalRead(schalter)); //Pin0 auf den Wert von Pin6 setzen
    muss heißen
    digitalWrite(led,digitalRead(schalter)); //Pin9 auf den Wert von Pin6 setzen

    digitalWrite(led,!digitalRead(schalter)); //Pin9 auf den Wert von Pin5 setzen
    muss heißen
    digitalWrite(led,!digitalRead(schalter)); //Pin9 auf den Wert von Pin6 setzen

    „PWM“:
    In dem nächsten Beispiel wird nicht mehr Pin0 sondern Pin3 benutzt, da sich Pin0 nicht mit PWM ansteuern lässt
    kann entfallen, da die LED schon vorher an Pin 9 hing.

  11. anonym

    Danke!!!

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.