Pins werden ungewollt angesteuert beim Neustart bzw. beim Hochladen

Hey :slight_smile:

Ich hab zwei Probleme:
Erstes Problem ist wie schon oben geschrieben, wenn ich ein neues Programm in den Arduino lade oder wenn ich ihn neu starte, gibt er Signale auf die Pins, die ich nirgends so eingestellt habe. Das zeigt sich zum Beispiel dadurch, dass irgendwelche LEDs blinken oder Motoren einfach angehen. Kann mir jemand erklären wieso das geschieht? Bzw. muss ich irgendetwas ergänzen? Ich pack euch meinen setup Schritt und die globalen Var mal noch mit rein.

Mein zweites Problem ist, dass wenn ich die Verbindung zum Rechner trenne, nachdem ich alles hochgeladen habe, Macht der Arduino wieder nicht mehr was er soll und fängt wahllos an Sachen zu steuern… Wieso?? :smiley:

Hier der Setup Code:

#include <Servo.h>
#include <Stepper.h>

#define STEPS 32

Servo servo1;
Servo servo2;
Servo servo3;

Stepper stepper(STEPS, 8, 10, 9, 11);

int LEDs = 13;
int Luefter = 12;
int Taster_1 = A0;
int Taster_2 = A1;
int Magnet = 2;


int hilf_1 = 0;
int hilf_2 = 0;

int servo_pin1 = 6;
int servo_pin2 = 5;
int servo_pin3 = 3;

int pos1 = 0; //Mittleres Gelenk
int pos2 = 180; //Unterstes Gelenk
int pos3 = 90; //Drehen der Lego Figur
int steps = 0;

const int Groesse=10;
char zeichen[Groesse];
int Zahl = 0;
int Grad = 0;

void setup() {
  // put your setup code here, to run once:
  servo1.attach(servo_pin1);
  servo2.attach(servo_pin2);
  servo3.attach(servo_pin3);

  stepper.setSpeed(1000);

  pinMode(LEDs, OUTPUT);
  pinMode(Luefter, OUTPUT);
  pinMode(Taster_1, INPUT_PULLUP);
  pinMode(Taster_2, INPUT_PULLUP);
  pinMode(Magnet, OUTPUT);
  
  Serial.begin(9600);
   Serial.println("");
  Serial.println("--- Willkommen bei Robotersteuerung von Bob! ---");
  Serial.println("");
  delay(2000);
  Serial.println("+------------------------------------------------------+");
  Serial.println("|--> Gebe eine Zahl ein um eine Aktion auszuwählen. <--|");
  Serial.println("+------------------------------------------------------+");
  Serial.println("  1 = Mittleres Gelenk auswählen");
  Serial.println("  2 = unterstes Gelenk auswählen");
  Serial.println("  3 = Figur oben drehen");
  Serial.println("  4 = Basis drehen");
  Serial.println("  5 = LEDs an/aus machen");
  Serial.println("  6 = Lüfter an/aus machen");
  Serial.println("  7 = Zustände ausgeben lassen");
  Serial.println("  8 = Bob vor den Lüfter fahren");
  Serial.println("  9 = Bob TANZT");
  Serial.println("");

  servo1.write(pos1);
  servo2.write(pos2);
  servo3.write(pos3);
  digitalWrite(LEDs, false);
  digitalWrite(Luefter, false);
  digitalWrite(Magnet, false);

  
    
  }

Hoffe ihr habt eine Idee :slight_smile:

Liebe Grüße
Sven

Verschiebe diese Zeilen mal am Anfang vom Setup:

  digitalWrite(LEDs, false);
  digitalWrite(Luefter, false);
  digitalWrite(Magnet, false);
  pinMode(LEDs, OUTPUT);
  pinMode(Luefter, OUTPUT);
  pinMode(Magnet, OUTPUT);

Gruß Tommy

Ändert leider nichts.

sventhimsen:
Hoffe ihr habt eine Idee :slight_smile:

Also das setup sollte eigentlich funktionieren:

void setup() {
  pinMode(LEDs, OUTPUT);
  pinMode(Luefter, OUTPUT);
  pinMode(Magnet, OUTPUT);
  digitalWrite(LEDs, false);
  digitalWrite(Luefter, false);
  digitalWrite(Magnet, false);

  pinMode(Taster_1, INPUT_PULLUP);
  pinMode(Taster_2, INPUT_PULLUP);


  Serial.begin(9600);
  Serial.println("");
  Serial.println("--- Willkommen bei Robotersteuerung von Bob! ---");
  Serial.println("");
  delay(2000);
  Serial.println("+------------------------------------------------------+");
  Serial.println("|--> Gebe eine Zahl ein um eine Aktion auszuwählen. <--|");
  Serial.println("+------------------------------------------------------+");
  Serial.println("  1 = Mittleres Gelenk auswählen");
  Serial.println("  2 = unterstes Gelenk auswählen");
  Serial.println("  3 = Figur oben drehen");
  Serial.println("  4 = Basis drehen");
  Serial.println("  5 = LEDs an/aus machen");
  Serial.println("  6 = Lüfter an/aus machen");
  Serial.println("  7 = Zustände ausgeben lassen");
  Serial.println("  8 = Bob vor den Lüfter fahren");
  Serial.println("  9 = Bob TANZT");
  Serial.println("");
  servo1.attach(servo_pin1);
  servo2.attach(servo_pin2);
  servo3.attach(servo_pin3);
  stepper.setSpeed(1000);
  servo1.write(pos1);
  servo2.write(pos2);
  servo3.write(pos3);
}

Hab das eins zu eins so aber er steuert trotzdem wahllos sachen an kurz bevor das programm voll geladen ist.

Wenn das Programm einmal geladen ist funktioniert alles perfekt.

sventhimsen:
Hab das eins zu eins so aber er steuert trotzdem wahllos sachen an kurz bevor das programm voll geladen ist.

Kannst Du ein Foto von Deinem Aufbau machen?

Dann hier als attachment anhängen. Nicht bei irgendwelchen bilderhostern - das sehe ich nicht.

Hier ist mein Setup.
Nicht erschrecken. Das Steckbrett ist noch recht unordentlich weil ich da grad noch etwas rumprobiere.

Liebe Grüße

Hier noch das letzte Bild

sventhimsen:
Nicht erschrecken.

Schmerz las nach…

Ich denke, Du fängst Dir etwas nach dem reset ein.

Um das mal auszutesten folgender Code:

#include <Servo.h>
#include <Stepper.h>

#define STEPS 32

Servo servo1;
Servo servo2;
Servo servo3;

Stepper stepper(STEPS, 8, 10, 9, 11);

int LEDs = 13;
int Luefter = 12;
int Taster_1 = A0;
int Taster_2 = A1;
int Magnet = 2;


int hilf_1 = 0;
int hilf_2 = 0;

int servo_pin1 = 6;
int servo_pin2 = 5;
int servo_pin3 = 3;

int pos1 = 0; //Mittleres Gelenk
int pos2 = 180; //Unterstes Gelenk
int pos3 = 90; //Drehen der Lego Figur
int steps = 0;

const int Groesse = 10;
char zeichen[Groesse];
int Zahl = 0;
int Grad = 0;

void setup() {
  digitalWrite(LEDs, LOW);
  digitalWrite(Luefter, LOW);
  digitalWrite(Magnet, LOW);
  pinMode(LEDs, OUTPUT);
  pinMode(Luefter, OUTPUT);
  pinMode(Taster_1, INPUT_PULLUP);
  pinMode(Taster_2, INPUT_PULLUP);
  pinMode(Magnet, OUTPUT);
  digitalWrite(LEDs, LOW);
  digitalWrite(Luefter, LOW);
  digitalWrite(Magnet, LOW);

  Serial.begin(115200);
  Serial.println(F("Start...."));
  unsigned long startmillis = millis(); // in einer früheren Version standen hier 3 l
  while (millis() - startmillis < 5000) // Zeit in millisekunden
  {
  digitalWrite(LEDs, LOW);
  digitalWrite(Luefter, LOW);
  digitalWrite(Magnet, LOW);
 
  }
  Serial.println(F("StartPause vorbei..."));

  Serial.println("--- Willkommen bei Robotersteuerung von Bob! ---");
  Serial.println("");
  delay(2000);
  Serial.println("+------------------------------------------------------+");
  Serial.println("|--> Gebe eine Zahl ein um eine Aktion auszuwählen. <--|");
  Serial.println("+------------------------------------------------------+");
  Serial.println("  1 = Mittleres Gelenk auswählen");
  Serial.println("  2 = unterstes Gelenk auswählen");
  Serial.println("  3 = Figur oben drehen");
  Serial.println("  4 = Basis drehen");
  Serial.println("  5 = LEDs an/aus machen");
  Serial.println("  6 = Lüfter an/aus machen");
  Serial.println("  7 = Zustände ausgeben lassen");
  Serial.println("  8 = Bob vor den Lüfter fahren");
  Serial.println("  9 = Bob TANZT");
  Serial.println("");

  servo1.attach(servo_pin1);
  servo2.attach(servo_pin2);
  servo3.attach(servo_pin3);

  stepper.setSpeed(1000);

  servo1.write(pos1);
  servo2.write(pos2);
  servo3.write(pos3);
}
void loop()
{}

einfach in die IDE kopieren, und rauf damit.
WICHTIG! Der SerMon läuft mit 115200.

Oh gut zu wissen... Ich hatte irendwo das wohl falsch aufgeschnappt.

Also wir haben ein Teil Erfolg erreicht. Die Servos fahren nicht mehr irgendwelche Positionen an die sie nicht sollten. GUT! Jedoch flacken die LEDs noch immer rum und der DC-Motor fängt auch trotzdem das laufen an bis das Programm komplett rüber gespielt ist.

Na dann wollen wir mal:

#include <Servo.h>
#include <Stepper.h>

#define STEPS 32

Servo servo1;
Servo servo2;
Servo servo3;

Stepper stepper(STEPS, 8, 10, 9, 11);

int LEDs = 13;
int Luefter = 12;
int Taster_1 = A0;
int Taster_2 = A1;
int Magnet = 2;


int hilf_1 = 0;
int hilf_2 = 0;

int servo_pin1 = 6;
int servo_pin2 = 5;
int servo_pin3 = 3;

int pos1 = 0; //Mittleres Gelenk
int pos2 = 180; //Unterstes Gelenk
int pos3 = 90; //Drehen der Lego Figur
int steps = 0;

const int Groesse = 10;
char zeichen[Groesse];
int Zahl = 0;
int Grad = 0;

void setup() {
  digitalWrite(LEDs, LOW);
  digitalWrite(Luefter, LOW);
  digitalWrite(Magnet, LOW);
  pinMode(LEDs, OUTPUT);
  pinMode(Luefter, OUTPUT);
  pinMode(Taster_1, INPUT_PULLUP);
  pinMode(Taster_2, INPUT_PULLUP);
  pinMode(Magnet, OUTPUT);
  digitalWrite(LEDs, LOW);
  digitalWrite(Luefter, LOW);
  digitalWrite(Magnet, LOW);

  Serial.begin(230400);
  Serial.println(F("Start...."));
  unsigned long startmillis = millis(); // in einer früheren Version standen hier 3 l
  while (millis() - startmillis < 5000) // Zeit in millisekunden
  {
    Serial.print(digitalRead(LEDs));
    Serial.print("\t");
    Serial.print(digitalRead(Luefter));
    Serial.print("\t");
    Serial.println(digitalRead(Magnet));
    digitalWrite(LEDs, LOW);
    digitalWrite(Luefter, LOW);
    digitalWrite(Magnet, LOW);
  }
  Serial.println(F("StartPause vorbei..."));

  Serial.println("--- Willkommen bei Robotersteuerung von Bob! ---");
  Serial.println("");
  delay(2000);
  Serial.println("+------------------------------------------------------+");
  Serial.println("|--> Gebe eine Zahl ein um eine Aktion auszuwählen. <--|");
  Serial.println("+------------------------------------------------------+");
  Serial.println("  1 = Mittleres Gelenk auswählen");
  Serial.println("  2 = unterstes Gelenk auswählen");
  Serial.println("  3 = Figur oben drehen");
  Serial.println("  4 = Basis drehen");
  Serial.println("  5 = LEDs an/aus machen");
  Serial.println("  6 = Lüfter an/aus machen");
  Serial.println("  7 = Zustände ausgeben lassen");
  Serial.println("  8 = Bob vor den Lüfter fahren");
  Serial.println("  9 = Bob TANZT");
  Serial.println("");

  servo1.attach(servo_pin1);
  servo2.attach(servo_pin2);
  servo3.attach(servo_pin3);

  stepper.setSpeed(1000);

  servo1.write(pos1);
  servo2.write(pos2);
  servo3.write(pos3);
}
void loop()
{}

Den code einspielen.
Der serMon beginnt jetzt mit Achtung!: 230400

Die Ausgabe bei mir:

21:42:56.142 -> Start....
21:42:56.142 -> 0	0	0
.....
21:43:01.140 -> 0	0	0
21:43:01.140 -> 0	0	0
21:43:01.140 -> StartPause vorbei...
21:43:01.140 -> --- Willkommen bei Robotersteuerung von Bob! ---
21:43:01.140 -> 
21:43:03.139 -> +------------------------------------------------------+
21:43:03.139 -> |--> Gebe eine Zahl ein um eine Aktion auszuwählen. <--|
21:43:03.139 -> +------------------------------------------------------+
21:43:03.139 ->   1 = Mittleres Gelenk auswählen
21:43:03.139 ->   2 = unterstes Gelenk auswählen
21:43:03.172 ->   3 = Figur oben drehen
21:43:03.172 ->   4 = Basis drehen
21:43:03.172 ->   5 = LEDs an/aus machen
21:43:03.172 ->   6 = Lüfter an/aus machen
21:43:03.172 ->   7 = Zustände ausgeben lassen
21:43:03.172 ->   8 = Bob vor den Lüfter fahren
21:43:03.172 ->   9 = Bob TANZT
21:43:03.172 ->

Ich will Deine gesamte Ausgabe sehen.

Ok ich denk auch ich weiß warum die Servos jetzt nichts machen.
Es scheint so also würde das Programm nicht aus der while Schleife rauskommen die du eingesetzt hast. Die Ausgabe auf dem Serial ist :
Start....
$:⸮7⸮o0қ⸮⸮4⸮⸮ۛ⸮ ⸮lcZS⸮⸮⸮=⸮r⸮0X&

sventhimsen:
Ausgabe auf dem Serial ist :
Start…
$:⸮7⸮o0қ⸮⸮4⸮⸮ۛ⸮ ⸮lcZS⸮⸮⸮=⸮r⸮0X&

Nein, die Ausgabe ist schnuppe.
Naja, nicht wirklich. der kommt aus der while schon raus, weil die Zeit als Abbruchbedingung drin ist.

Nimm meinen letzten Code.
Bitte unten im seriellen Monitor unbedingt die Baudrate einstellen, die ich vorgebe! Sonst kommt nur Müll raus - das setup als solches funktioniert aber trotzdem.

Ok hab das Problem gefunden.
Mein Serial war falsch eingestellt mit der Baurate. Jetzt bekomm ich die selbe Ausgabe wie du.

Start…
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0

0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
StartPause vorbei…
— Willkommen bei Robotersteuerung von Bob! —

±-----------------------------------------------------+
|–> Gebe eine Zahl ein um eine Aktion auszuwählen. <–|
±-----------------------------------------------------+
1 = Mittleres Gelenk auswählen
2 = unterstes Gelenk auswählen
3 = Figur oben drehen
4 = Basis drehen
5 = LEDs an/aus machen
6 = Lüfter an/aus machen
7 = Zustände ausgeben lassen
8 = Bob vor den Lüfter fahren
9 = Bob TANZT

sventhimsen:
Ok hab das Problem gefunden.
Mein Serial war falsch eingestellt mit der Baurate. Jetzt bekomm ich die selbe Ausgabe wie du.

0 0 0
...
0 0 0

NAA!!
Ich will die ganze Ausgabe sehen!
Lückenlos.
In Codetags!
Und eine Aussage ob in den - von mir eingestellten 5 Sekunden - sich irgendwas ergiesst oder ob es still bleibt.

Wie tu ich die Ausgabe in Codetags schreiben?
Weil wenn ich es so hochlade stürzt die Seite ab.

sventhimsen:
Wie tu ich die Ausgabe in Codetags schreiben?
Weil wenn ich es so hochlade stürzt die Seite ab.

Die hat heute wirklich wieder erhebliche Probleme… Du bist nicht allein…
Also:
Nimm Deinen Editor auf Deinen rechner, kopier die Ausgabe des SerMon da rein und schreibe am Anfang ein mit den eckigen Klammern [ und ] eingefasstes code und am Ende von Deinem text ein von den eckicken Klammern [ und ] eingefasstes[edit] /code [/edit] Danke wno158…
Den ganzen Teil kopierst in Deine Nachricht.

ALTERNATIV! Kannst Du auch im Foreneditor den text einfügen, markieren und oben links auf das Zeichen < / > klicken.

Am Ende kein Backslash!

[code]...[/code]
Start....
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0
0	0	0