Arduino Uno testen, MPCNC Bau

Kann man die anderen Boards eigentlich testen?

Ich baue gerade eine MPCNC.

Erst lief sie, dann lief die Z Achse plötzlich nur noch eine Richtung. Ich habe dann alle Kabel getestet, und mal testweise das Z Kabel auf y gesteckt. Da gingen beide Richtungen.

Also habe ich erst ein neues CNC Shield gekauft, das lief 3 Minuten, dann nicht mehr. Dann habe ich ein anders Board von meinem Mitbewohner genommen, das garnicht lief. Also habe ich das CNC shield zurück geschickt und ein neues Shield und ein neues Board gekauft.

Und nun bekomme ich das neue Board nicht zum laufen (siehe meinen anderen Thread)!?

Kann es sein, dass das CNC Shield vom Board gecrashed wurde?
Kann man die alten Boards testen?

Wen du meinst die UNO dann ja, einfachen Blink Sketch drauf

/*
  Blink

  Turns an LED on for one second, then off for one second, repeatedly.

  Most Arduinos have an on-board LED you can control. On the UNO, MEGA and ZERO
  it is attached to digital pin 13, on MKR1000 on pin 6. LED_BUILTIN is set to
  the correct LED pin independent of which board is used.
  If you want to know what pin the on-board LED is connected to on your Arduino
  model, check the Technical Specs of your board at:
  https://www.arduino.cc/en/Main/Products

  modified 8 May 2014
  by Scott Fitzgerald
  modified 2 Sep 2016
  by Arturo Guadalupi
  modified 8 Sep 2016
  by Colby Newman

  This example code is in the public domain.

  https://www.arduino.cc/en/Tutorial/BuiltInExamples/Blink
*/

// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin LED_BUILTIN as an output.
  pinMode(LED_BUILTIN, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);                       // wait for a second
  digitalWrite(LED_BUILTIN, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);                       // wait for a second
}

Es sollte eine LED auf dem Board blinken jede sekunde

...das ist alles? Ok, das geht! Wenn das geht, ist das board in jedem Fall ok?

Es bedeutet das es Lebt, konkret, andere Beispiele ausprobieren, oder Pin Test machen.
@my_xy_projekt hat sowas mall gebaut. Ich schätze Er ist beschien verärgert.

Was für ein CNC-Shield? Link bitte.
Was treibst du damit? Link bitte.
Schaltplan?

Wie soll man Fehler erkennen, ohne das man weis was du machst?

Worüber?

Na Du bist ja gut...
Ich such mal, was ich finde. Ich hatte mal einen, der mit einem zweiten kommuniziert hat.
Irgendwo ist noch ein anderer, den ich mal für mich gebaut habe, der nur mit dem PIN 13 auf einem Mega alles abgefragt hat. Mal sehen...

Schau mal in Deine Zauberkiste Du hast ein Sketch vorgestellt mit dem im SerMon wird angezeigt wie sich die Pins verhalten. Habe mir das an die Seite gelegt, Titel geblieben Inhalt anderer. :see_no_evil: :rage:

Hab's nachgebaut, Meine das war so:

byte i = 0;
byte test = 0;
void setup() {
  Serial.begin (9600);

  for ( i = 2; i <= 19; i++) {
    pinMode(i, OUTPUT);
    digitalWrite (i, HIGH);
    test = digitalRead (i);
    Serial.print("PIN " );
    Serial.print(i );
    Serial.print("== " );
    Serial.println(test);
  }
  Serial.println("High test Ende");

  for ( i = 2; i <= 19; i++) {
    pinMode(i, OUTPUT);
    digitalWrite (i, LOW);
    test = digitalRead (i);
    Serial.print("PIN " );
    Serial.print(i );
    Serial.print("== " );
    Serial.println(test);
  }
  Serial.println("Low test Ende");
}
void loop() {
  // put your main code here, to run repeatedly:

}

Für UNO inklusive Analog Pins A0=14 bis A5 = 19.
Info für "Nachmacher" :wink:
Für Test jeden Pin einzeln mal mit +5V, Reset betätigen, nachher auf GND und Resetten.
Im SerialMonitor wird angezeigt ob alles OK

Stimmt, das war damals der Test ob beim Schreiben auf dem Pin irgendwo ne Zinnperle was kurzgeschlossen nach 5V / GND hat.

Ich hab noch einen anderen, der schreibt und liest wechselseitig, wenn sichergestellt ist, das ein PIN funktioniert. - das ging nur mit Pin 13 als "SensorPin" da der die LED mit dran hat.

Ich schau mal....

Der ist 19. :wink:

void setup()
{
  delay(300);
  Serial.begin(115200);
  Serial.println(F("Start..."));
  Serial.println(F("ALLE Kabel und Verbindungen entfernen!"));
  Serial.println(F("Dann auf Senden klicken!"));
  Serial.println();
  wait2Start();
  for (byte b = 2; b < 20; b++)
  {
    pinMode(b, OUTPUT);
    digitalWrite(b, LOW);
    pinMode(b, INPUT);
  }
  bool isOk = true;
  digitalWrite(LED_BUILTIN, LOW);
  pinMode(LED_BUILTIN, OUTPUT);
  if (digitalRead(LED_BUILTIN))
  {isOk = false;}
  pinMode(LED_BUILTIN, INPUT);
  if (digitalRead(LED_BUILTIN))
  {isOk = false;}
  if (!isOk)
  {
    Serial.println(F("Fehler beim Init OnBoard_LED_PIN!"));
    while (1);
  }
  else
  {
    Serial.println(F("OnBoard_LED muss blinken"));
    pinMode(LED_BUILTIN, OUTPUT);
    for (byte b = 0; b < 10; b++)
    {
      digitalWrite(LED_BUILTIN, HIGH);
      delay(250);
      digitalWrite(LED_BUILTIN, LOW);
      delay(250);
    }
  }
}
//
bool pruefPin(byte testPin)
{
  wait2Start();
  Serial.println(F("Starte Test"));
  digitalWrite(LED_BUILTIN, LOW);
  pinMode(LED_BUILTIN, INPUT);
  pinMode(testPin, OUTPUT);
  digitalWrite(testPin, LOW);
  delay(1);
  if (digitalRead(LED_BUILTIN))
  {
    Serial.println(F("Pin ist False-HIGH!"));
    return false;
  }
  digitalWrite(testPin, HIGH);
  delay(1);
  if (!digitalRead(LED_BUILTIN))
  {
    Serial.println(F("Pin send HIGH Fail!"));
    return false;
  }
  digitalWrite(testPin, LOW);
  pinMode(testPin, INPUT);
  pinMode(LED_BUILTIN, OUTPUT);
  digitalWrite(LED_BUILTIN, HIGH);
  delay(1);
  if (!digitalRead(testPin))
  {
    Serial.println(F("Pin read HIGH Fail!"));
    return false;
  }
  digitalWrite(LED_BUILTIN, LOW);
  return true;
}
//
void wait2Start()
{
  while (Serial.read() >= 0) {};
  while (Serial.read() == -1) {};
}
//
void loop()
{
  Serial.println(F("PIN-Test"));
  for (byte b = 2; b < 20; b++)
  {
    if (b == LED_BUILTIN)
    { b++; }
    Serial.print(F("Bitte PIN "));
    Serial.print(b);
    Serial.print(F(" mit LED_PIN "));
    Serial.print(LED_BUILTIN);
    Serial.println(F(" verbinden und auf Senden klicken!"));
    Serial.print(pruefPin(b) ? F("ist") : F("**NICHT**"));
    Serial.println(F(" OK"));
  }
}

Braucht ein Käbelchen...

Habe gesehen, Abakus hat geholfen :wink:

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.