Beispielprogramm funktioniert nicht!

Hallo,

ich bin Einsteiger im Mikrocontroller programmieren und habe mir vor kurzem den Arduino UNO und das Einsteiger-Kit
von Saintsmart gekauft. Dieses enthält neben zahlreichen Sensoren und Aktoren auch Tutorials mit Beispielprogrammen,
die ich momentan ausprobiere. Eines davon arbeitet mit dem IC 74HC595. Wenn ich jedoch das Beispielprogramm in den Compiler eintippe und den Quelltext prüfen lasse, kommt immer eine Fehlermeldung mit der ich nichts anfangen kann, obwohl ich mir sicher bin, dass ich alles richtig abgetippt habe (siehe Anhang).

Es wäre nett wenn ihr mir bei meinem Problem helfen könntet!

Gruß Markus

Sorry! Hier den Quelltext mit Fehlermeldung!!

Na, da steht's doch groß geschrieben: updateLEDs ist nirgends zu sehen.
Da hast Du also einen Teil vergessen beim Abtippen.

Und wo wir beim Tippen sind: lass mal die Screenshots weg und häng beim nächsten Mal einfach den Code hier rein, ist für alle einfacher. Code-Tags nicht vergessen!

Markus_M:
Sorry! Hier den Quelltext mit Fehlermeldung!!

Den ersten Fehler machst Du, wenn Du Quelltexte “abtippst”, die Du einfach auch downloaden und direkt verwenden könntest - ohne Tippfehler und Auslassungen.

Den zweiten Fehler machst Du, wenn Du hier Screenshots von Quellcode und Screenshots von Fehlermeldungen postest.

Betriebssysteme haben heute üblicherweise eine (wie sie unter Windows heißt) “Zwischenablage”, wo Du Quelltext und Textmeldungen reinkopieren und dann wieder irgendwoanders (z.B. im Browser beim Schreiben eines Beitrags) einfügen kannst. Code hier im Forum am besten zwischen “Code-Tags”, die Du beim Schreiben eines Beitrags mit Klick auf “#” in der Editor-Funktionsleiste einfügen und den Quellcode dann dazwischensetzen kannst.

Deine Fehlermeldung besagt, dass Du wohl nur einen kleinen Teil des Programms abgetippt hast und wenigstens eine Funktion fehlt.

Um welches Programm aus dem Tutorial geht es denn, nenne doch bitte mal das Kapitel/Chapter!

Nachtrag: Ich glaube, ich hab’s gefunden, das ist Dein Programm (nein, ich habe es nicht “abgetippt”):

const int ON =  HIGH ;
const int OFF = LOW ;

int latchPin = 5;
int clockPin = 4;
int dataPin = 2;

int ledState = 0;

void setup() {
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}
void loop() {
  int delayTime = 100 ;
  for(int i=0;i<256;i++)
  {
     updateLEDs(i);
     delay(delayTime);
  }
}
void updateLEDs(int value)
{
  digitalWrite(latchPin,LOW);
  shiftOut(dataPin, clockPin, MSBFIRST, value);
  digitalWrite(latchPin,HIGH);
}

void updateLEDsLong(int value)
{
  digitalWrite(latchPin,LOW);
  for(int i=0;i<8;i++)
  {
    int bit = value&B10000000;
    value = value<<1;
    if(bit==128)
    {  
        digitalWrite(dataPin,HIGH);
    }
    else
    {  
        digitalWrite(dataPin,LOW);
    }
    digitalWrite(clockPin,HIGH);
    delay(1);
    digitalWrite(clockPin,LOW);
  }
  digitalWrite(latchPin,HIGH);
}

int bits[] = {B00000001,B00000010,B00000100,B00001000,B00010000,B00100000,
B01000000,B10000000};
int masks[] = {B11111110,B11111101,B11111011,B11110111,B11101111,B11011111,
B10111111,B01111111};
void changeLED(int led,int state)
{
  ledState = ledState & masks[led];
  if(state == ON){ ledState = ledState|bits[led]; }
  updateLEDs(ledState);
}

Nun übe mal schön, den Text des Programms aus Deinem Browser heraus in die Zwischenablage zu kopieren, und von dort dann in einem leeren Editor-Fenster der Arduino-IDE wieder einzufügen!

Der Fehler ist genau was da steht.

Du versucht eine Funktion namens UpdateLEDs() aufzurufen die nicht existiert. Da drin sollte ja der eigentliche Teil mit den SR stehen. Also Latch Pin auf Low, Shift Out und Latch Pin High

Siehe auch hier:

Latch ist übrigens Low-aktiv und sollte daher als Ausgangszustand HIGH haben

Okey, habs verstanden! Danke für die Antworten!

jurs:
...
Den ersten Fehler machst Du, wenn Du Quelltexte "abtippst", die Du einfach auch downloaden und direkt verwenden könntest - ohne Tippfehler und Auslassungen.
...

Abtippen finde ich nicht soooo falsch wie Du das darstellst. Falsch abtippen schon aber richtig abtippen ergibt auch ein lernen was den Sketch ausmacht. Auch mit eine Fehlersuche mit unserer Hilfe lernt Markus_M. Wenn er mal was falsch schreibt, wie zB Strichpunkte vergißt, Klammern offen läßt, Variablennamen, dannlernte er es und macht es nicht nochmal oder weiß wo er suchen muß.

Ich persönlich lerne am besten wenn ich was (ab)schreibe.
Ein Copy and Paste bringt nichts mit lernen.

Markus_M als Anfänger muß einfach sich an die Fehlermeldungen gewöhnen. Wenn er mal selbst ein Programm schreibt und etwas falsch macht bekommt er die Fehlermeldungen doch auch und muß aus ihnen eine Hilfe für die Fehlersuche finden.

Grüße Uwe

Ich kann Uwe da nur voll und ganz zustimmen.

Als ich anfing zu Programmieren, da wurden Listings aus der c't oder dem Amiga-Joker abgetippt.

Durch C&P wird man nie so viel lernen, wie durch das abtippen.
Denn da passieren halt keine Fehler aus denen man lernt.

Ich bring mit gerade Python bei ... das mach ich bewusst auf der Interpreter-Console, weil ich heir alles abtippen muss :wink:

Happy hacking